首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

学习JAVA回溯与思考

2012-10-26 
学习JAVA回顾与思考????? 学习java语言近五年,使用java语言进行项目开发近两年,期间开发过JAVAEE项目,JAVA

学习JAVA回顾与思考

????? 学习java语言近五年,使用java语言进行项目开发近两年,期间开发过JAVAEE项目,JAVAME项目。从当初毛头小伙学习java,开始接触使用struts,spring,hibernate,那个时候觉得这些框架是多么的深不可测。后来觉得该研究一下这些框架的源码,发现java基础的重要性,学习jvm规范的重要性,设计模式在java框架中起到举足轻重的作用。

????? 现在想来都是java虚拟机对java字节码的管理,java虚拟机在加载java字节码的时候对二进制字节码流进行解析,并创建一个数据结构来保存java类的信息,该数据结构就是对应该类的一个Class对象。有了这个对象之后,那么java反射机制、anotation机制也就就不难理解了,无非就是通过动态的控制java字节码来进行动态改变一个类的行为,这其实也是spring面向切面的实现方式,当然底层是通过ASM框架实现的。

?????? java的一个类是从编写好之后,通过编译成为字节码文件,然后java虚拟机进行加载、连接、初始化。

?????? 加载过程是由虚拟机提供一个类加载子系统完成的,其中启动类加载器是C语言实现的,它创建一个根加载器,在创建一个扩展加载器,然后提供用户自己实现加载器类的机制,实际上有一个委托机制,考虑的是java加载的字节码是否安全的问题。

????? 连接分为三个步骤,分别为验证、准备与解析,验证步骤主要是确保加载进来的字节码符合java语言的语义,例如final类不能被继承等。准备步骤为类变量分配内存。解析步骤将符号引用转化为直接引用。

????? 初始化为类变量初始化在程序中赋予的值。

????? 时间关系先写到这里吧...待续

?

热点排行