1关于eclipse一些常用功能。
其中最熟悉莫过于他能够帮助我们生成doc,jar包
通过project->Generate Javadoc,进去之后,其中的javadoc command 需要我们调出安装jdk里面的bin 中的javadoc.exe命令。
这样我们就能将自己写的程序瞬间变为可读的doc文档。
在这里我们得注意两点:千万不要让我们自己写的类都是裸的,右键点击class,新建一个Package,然后将裸体类全部拖进去
关于在程序里面注释的问题,不要随便/**/,因为不符合规则的,在生成doc后,都是无法显示的 下面我们列举正确的注释模板:
在类的最上方,这里可以是import..语句的上下方都可以,/**
*文字。。。。。
*/
在方法上方也是采用这种格式,eclipse会自动生成我们想不到的效果,但是如果只是注释单个句子,我们可以采用 //文字 这样的格式
关于生成jar,里面是一些.class的文件,一般我们选择某个工程后,右键导出jar file,其中唯一要注意的地方,在我们配置走到
Jar Manifest Specification这页中,最下面有个Main Class空格,我们导入我们工程的主类,然后生成好了jar包,直接运行就可以看到我们程序
演示结果。类似vc里面的debug的.exe。因此是 很可取的
2.再次,我们讨论下java反射机制,作用:动态的加载一个类,动态的new一个对象,动态的去调用这个对象的某些方法
String str="T";//T是类名
Class c=Class.forName(str);//加载T到内存中
Object o=c.newInstance();//实例化,也就是new出来了一个对象 o就是该对象了
这里就不得不研究下java.lang.Class跟java.lang.ClassLoader这两个类
ClassLoader是一个层次化的集团,最顶端的是有本地语言c c++写的bootstrap class loader他负责加载其他用java编写的其他class loader
而第二层extension class loader是负责加载jre/lib/ext就是扩展的意思 第三层application class loader则加载我们用户自定义的class。当然还存在其他的class loader 。
这些都是ClassLoader的对象,他们不是类,但是可以通过引用找到这种层次的loader
每次这些loader加载相应的类的时候,会提前询问他的父引用(这里不是继承的那种,只是一种引用说法),是否加载了 逐层上询问,如果没有则自身加载该class
在程序的运行过程中,ClassLoader会将.class文件全导入到内存的代码段,而这里的.class就是Class对象,运行环境会找到main()方法,进行向下执行
随时加载这些.class,这就是我们所说的动态加载机制。
在java中,动态语句块跟静态语句块,虽然我们平时用到的比较少,但是调式的时候或许会对我们有一定帮助,例如
public class T{
public static void main(String[] args){
new A();
}
class A{
{
System.out.println("a");
}
}
}
上面的class A里面的内容就是一个动态语句块,我们类每次加载到内容一下,就会执行他,但是我们此时不new个对象出来,构造函数是不会执行的。这点他比构造函数牛