12-1-18进步一小点

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个对象出来,构造函数是不会执行的。这点他比构造函数牛

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值