java动态
Ⅰ java里如何实现动态时间
import java.awt.Font;
import java.util.Date;
import javax.swing.*;
public class ListTime extends JFrame implements Runnable {
JLabel lbl = null;
ListTime() {
setLayout(null);
setTitle("时间显示");
setBounds(200, 200, 400, 300);
lbl = new JLabel("");
lbl.setBounds(20, 20, 300, 200);
lbl.setFont(new Font("Arial", Font.BOLD, 20));
add(lbl);
setVisible(true);
}
public void run() {
while (true) {
try {
Thread.sleep(1000);
lbl.setText(new Date().toString());
} catch (InterruptedException e) {
}
}
}
public static void main(String[] args) {
ListTime f = new ListTime();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Thread myThread = new Thread(f);
myThread.start();
}
}
Ⅱ java中的动态方法和静态方法的区别
静态方法可以直接用类名点出来方法,而普通方法需要创建类的对象后才能调用!
public class Plus1
{
public static void text()
{
System.out.println("静态方法");
}
public void text1()
{
System.out.println("非静态方法");
}
public static void main(String[] args)
{
//静态方法可直接调用,无需创建对象
text();
//非静态方法不可直接调用,需要先创建对象
Plus1 plu = new Plus1();
plu.text1();
}
}
当一个方法在多处被调用的时候,你写成静态方法的话就方便调用了,不然每次调用都要创建对象不麻烦吗?况且创建对象耗内存的啊,所以开发中经常用到的方法都会写成静态放工具类中调用
Ⅲ 在java代码中实现动态编译java文件
importjavax.tools.*;
importjava.io.*;
/**
*@authorhardneedl
*/
finalpublicclassMyCompile{
/**
*@paramargs命令行参数只有1个,即待编译的源代码文件的绝对路径
*@throwsFileNotFoundException
*/
publicstaticvoidmain(String...args)throwsFileNotFoundException{
JavaCompilercompiler=ToolProvider.getSystemJavaCompiler();
intr=compiler.run(null,null,null,args[0]);
System.out.println(r==0?"成功":"失败");
}
}
Ⅳ java 中如何实现 动态声明对象
没太理解你要求的 实现但一般这种动态获取类信息 在java中都是通知反射机制实现的
Java的反射API(ReflectionAPI)
Class类:要正确使用Java反射机制就得使用java.lang.Class这个类。它是Java反射机制的起源。当一个类被加载以后,Java虚拟机就会自动产生一个Class对象。通过这个
Class对象我们就能获得加载到虚拟机当中这个Class对象对应的方法、成员以及构造方法的声明和定义等信息。
反射API用于反应在当前Java虚拟机中的类、接口或者对象信息
功能:(Objectobject=newObject(),下面以对象object进行说明)
1)获取类的Class对象
如果在运行时一个类的实例已经得到,你可以使用
Classc=对象名.getClass();例:Classc=object.getClass();Classs=object.getSuperclass();
如果你在编译期知道类的名字,你可以使用如下的方法Classc=java.awt.Button.class;或者Classc=Integer.TYPE;
如果类名在编译期不知道,但是在运行期可以获得,你可以使用下面的方法Classc=Class.forName(“类的全路径”);
2)获取类的Fields,对Field进行赋值
Field[]fus=object.getClass().getDeclaredField();
Fieldfu=object.getClass().getDeclaredField(fieldName);//获取对象object的名称为fieldName的属性域。
fu.setAccessible(true);//设置属性域的访问属性
fu.set(object,val);//设置object对象的属性值
3)获取类的Method
Method[]ms=object.getClass().getDeclaredMethods()
4)获取类的Constructor
5)新建类的实例
(A)通过Class<T>的函数newInstance
(B)通过Constructor对象的方法newInstance.
Ⅳ java动态生成方法
动态生成方法只能用反射,示例代码如下:
public Object invokeMethod(T obj,String methodName, Object[] args){
Object object = null;
@SuppressWarnings("rawtypes")
Class ownerClass = obj.getClass();
@SuppressWarnings("rawtypes")
Class[] argsClass = new Class[args.length];
for(int i = 0, j = args.length; i < j; i++) {
argsClass[i] = args[i].getClass();
}
Method method;
try {
methodName = "get" + methodName;
method = ownerClass.getMethod(methodName, argsClass);
object = method.invoke(obj, args);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
}
return object;
}
假如有一个对象A,里面有方法A getAbc(Object...obj),首先把方法的参数放入数组中,Object[] args,这样调用invokeMethod(A,Abc,args),这个的返回值就是getAbc的返回值。
Ⅵ java如何定义动态数组
去看看jdk中ArrayList的内部机制就知道如何定义了,它基础原理就是先声明并初始化一个指定大小的数组,当用户往数组里添加元素时去判断是否达到数组是最大下标,如果大于了数组下标会新建一个比原数组大数组再将原数组的内容过来,至于里边的实现和算法肯定不是这么简单,详细了解就去打开来读读
Ⅶ java中可以用动态数组吗
ArrayList<Long>timeBox=newArrayList<Long>();创建一个ArrayList,在onKeyDown中获取时间,然后动态添加进去即可。
longtime=System.currentTimeMillis();
timeBox.add(time);
Ⅷ java如何动态定义变量
Java是一门静态语言,也就是需要经过编译之后确定变量类型,不能动态定义变量。
Java提供了集合保存一些变量,动态添加删除变量,还可以扩充数组大小。
Ⅸ 什么是java动态网页技术
特点:
1, 交互性:网页会根据用户的要求和选择而改变响应。
2, 自动更新:无需手动更新HTML文档,便会自动生成新的页面。
3, 因时因人而变:不同的时间,不同的人访问同一个页面会产生不同的效果。
使用技术:
一CGI:Common Gateway Interface(公用网关接口),以前见过用VB编写的CGI,它的最大的特点是请求的是一个应用程序*.exe。(与COM+有关)。
二,ASP:更精确的说是一个中间件,这个中间件将web上的请求转入到一个解释器中,在这个解释器中将所有ASP的script进行分析,执行它,它可以调用COM对象(Active X控件),对这个对象中的属性和方法进行操作和调用,同时通过COM对象完成更多的工作。所以确切的说ASP的强大不在于VBScript,而在于它调用的COM组件,这些组件无限的扩展了ASP的功能(想起了以前做的一个ASP新闻网站,所有的包括数据处理层与业务逻辑层用VB的类封装并制作为Active X控件。最让人心动的是它的物理四层体系结构,最后面的一层是sqlserver服务器,然后第二台机器是微软的COM+容器,这里面装载着所有Active X,第三台机器是IIS服务器,它里面的ASP调用COM+容器中的组件,这样的话它的代码非常干净,最后一台是客户端访问)。
缺点:
1, 依赖winNT操作系统,依赖COM组件,更要祈祷微软的工程师没别给系统留下太多漏洞,它的安全性,稳定性不容乐观。
2, 无法跨平台。
3, 无法实现企业级功能:完全的群集,负载均衡。
三,PHP(Hypertext Preprocessor)
一种HTML内嵌式的语言,它混合了C,JAVA,PERL。它支持多种数据库sqlserver,mysql,Sybase,oracle,它可以进行面向对象编程,它是可以跨平台的。
缺点:
1, 数据库支持的极大变化。
2, 安装复杂。
3, 缺少企业级的支持。
4, 缺少正规的商业支持,这也是自由软件的缺点(真的吗?)。
5, 无法实现商品化应用的开发。
四,JSP
完全的面向对象,完全的平台无关,完全的安全可靠,完全的复杂难学(作为应用程序员,我们应该喜欢这样的技术,有句话叫“物以稀为贵”,对不对?)。目前发现的唯一缺点:运行速度慢(必须CLASS常驻内存)。
其他优点:
1, 将内容生成与显示分离,这也是JSP规范的终极目标;
使用JSP,WEB开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JAVABEAN组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行,如果核心逻辑被封装在标识和JAVABEAN中,那么其他人,如web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成,(不知道或不用关心内部的具体的实现)。
在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JAVABEAN组件,使用JDBC访问数据库),并且将结果以HTML(或者XML)的形式发送会浏览器材。这有助于保护自己的代码,而有保证任何基于HTML的WEB浏览器的完全可用性。
2, 生成可重用组件;
开发人员能够共享和交换执行普遍操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用(模块化程序设计的一个优点)。
3, 采用标识简化页面开发,开发人员可以定制自己的标记库;
4, 由于转化为Servlet,所以它具有servlet的所有优点。
“JSP是由HTML和嵌入其中的JAVA代码组成”。错,那应该是JSP页面的定义。JSP不是一个产品,它像其他JAVAAPI那样是由SUN提供的由厂商去实现的规范,JSP规范是建立在servlet规范提供的功能之上的。
JSP与servlet的不同之处:
1,servlet是JAVA对CGI的回应,它们在服务器上执行和解释浏览器的请求,承担客户和其他应用程序之间的中间层角色,在完成这些任务时,servlet主要是把动态的内容混合到静态的内容中产生HTML。
2, JSP与J2EE模型更为一致,把静态与动态内容分离开来——分离表示和逻辑——在WEB应用程序中,它的主要目标为:在多层体系结构中简化动态表示层。
Ⅹ java动态创建中的动态是什么意思
java中的动态就是说服务器返回给不同的客户端的数据是不一样的,不像html,html本身写的代码和运行后的代码是相同的,而java中的jsp就不同,你写的代码是相同的,但是根据客户端的具体请求,返回的是不同的。