`
ldwcmx
  • 浏览: 8097 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

学习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类不能被继承等。准备步骤为类变量分配内存。解析步骤将符号引用转化为直接引用。

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

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

 

分享到:
评论

相关推荐

    java 编程入门思考

    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...

    计算机程序设计(Java)-教案--单元二--Java语言开发基础.docx.docx

    一、新课导入与工程展示思考:回顾C语言学过的基本语法知识? 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,...

    JAVA基础课程讲义

    进程与程序的区别 168 JAVA中如何实现多线程(重点!!) 168 通过继承Thread类实现多线程 168 通过Runnable接口实现多线程 169 线程状态和sleep/yield/join/stop/destroy方法 170 新生状态 170 就绪状态 170 运行...

    《Java程序设计案例教程》教学课件02Java语言基础.pptx

    2.1 回顾与思考 【例2-1】编写一个Java应用程序,根据所给圆的半径,计算并输出圆的周长。文件名为Example2_1.java,其代码如下。 《Java程序设计案例教程》教学课件02Java语言基础全文共48页,当前为第4页。 2.1 ...

    《Java程序设计案例教程》教学课件09Java数据库编程.pptx

    9.1 回顾与思考 在软件开发过程中,通常情况下都需要利用数据库来存放数据。用Java语言编写的程序也要能实现与数据库进行交互的功能。使用Java语言访问数据库主要包括从数据库中查找符合给定条件的记录、向数据库中...

    《Java程序设计案例教程》教学课件05深入Java面向对象.pptx

    5.1 回顾与思考 在模块4我们以Circle类为例,从类的定义入手,详细分析了类的构成和使用。如果现在面临一个任务:设计一个扇形类Sector,提供计算扇形的弧长、周长和面积的方法。我们该如何解决这个问题?一个办法...

    精通并发与 netty 视频教程(2018)视频教程

    精通并发与netty视频教程(2018)视频教程 netty视频教程 Java视频教程目录: 1_学习的要义 2_Netty宏观理解 3_Netty课程大纲深度解读 4_项目环境搭建与Gradle配置 5_Netty执行流程分析与重要组件介绍 6_Netty回调与...

    《Java-Web应用开发基础》教学课件08课程设计实例.pptx

    8.1回顾和思考 经过前面7个模块循序渐进的学习,我们可以进行一个基本的完整Java Web项目的设计了。在学习了JSP、JavaBean和Servlet技术的基础上,就可以采用MVC设计模式进行项目设计。 《Java-Web应用开发基础》...

    《Java程序设计案例教程》教学课件07异常处理.pptx

    7.1 回顾与思考 Java语言的健壮性确保了在编程过程中出现的错误可以得到及时、有效的控制。但是,并不是所有错误都能在编译阶段被发现。有些错误只有在运行时才会发生。在编译或运行时发生的错误都被称为异常。在...

    Java.zip

    这些笔记记录了我在学习过程中的重要观点和思考,帮助我回顾和巩固所学知识。同时,我还通过写博客和发表文章来分享我的学习成果和经验,这不仅让我得到了更多的反馈和建议,还激发了我进一步学习的动力。 总的来说...

    学习课件JavaScript学习文件.zip

    这些笔记记录了我在学习过程中的重要观点和思考,帮助我回顾和巩固所学知识。同时,我还通过写博客和发表文章来分享我的学习成果和经验,这不仅让我得到了更多的反馈和建议,还激发了我进一步学习的动力。 总的来说...

    精通并发与netty视频教程(2018)视频教程

    77_Java NIO Buffer总结回顾与难点拓展 78_Netty数据容器ByteBuf底层数据结构深度剖析 79_Netty的ByteBuf底层实现大揭秘 80_Netty复合缓冲区详解与3种缓冲区适用场景分析 81_Netty引用计数的实现机制与自旋锁的使用...

    微信小程序学习.zip

    这些笔记记录了我在学习过程中的重要观点和思考,帮助我回顾和巩固所学知识。同时,我还通过写博客和发表文章来分享我的学习成果和经验,这不仅让我得到了更多的反馈和建议,还激发了我进一步学习的动力。 总的来说...

    Scala程序设计(第2版)

    1.5 本章回顾与下一章提要 27 第2章 更简洁,更强大 28 2.1 分号 28 2.2 变量声明 29 2.3 Range 31 2.4 偏函数 32 2.5 方法声明 33 2.5.1 方法默认值和命名参数列表 33 2.5.2 方法具有多个...

    JavaScript的之前学习文件.zip

    这些笔记记录了我在学习过程中的重要观点和思考,帮助我回顾和巩固所学知识。同时,我还通过写博客和发表文章来分享我的学习成果和经验,这不仅让我得到了更多的反馈和建议,还激发了我进一步学习的动力。 总的来说...

    精通并发与netty 无加密视频

    第77讲:Java NIO Buffer总结回顾与难点拓展 第78讲:Netty数据容器ByteBuf底层数据结构深度剖析 第79讲:Netty的ByteBuf底层实现大揭秘 第80讲:Netty复合缓冲区详解与3种缓冲区适用场景分析 第81讲:Netty引用...

    前端学习笔记.zip

    这些笔记记录了我在学习过程中的重要观点和思考,帮助我回顾和巩固所学知识。同时,我还通过写博客和发表文章来分享我的学习成果和经验,这不仅让我得到了更多的反馈和建议,还激发了我进一步学习的动力。 总的来说...

    JSP.zip

    这些笔记记录了我在学习过程中的重要观点和思考,帮助我回顾和巩固所学知识。同时,我还通过写博客和发表文章来分享我的学习成果和经验,这不仅让我得到了更多的反馈和建议,还激发了我进一步学习的动力。 总的来说...

    Vue.zip

    这些笔记记录了我在学习过程中的重要观点和思考,帮助我回顾和巩固所学知识。同时,我还通过写博客和发表文章来分享我的学习成果和经验,这不仅让我得到了更多的反馈和建议,还激发了我进一步学习的动力。 总的来说...

    静态项目的首页定制京东页面.zip

    这些笔记记录了我在学习过程中的重要观点和思考,帮助我回顾和巩固所学知识。同时,我还通过写博客和发表文章来分享我的学习成果和经验,这不仅让我得到了更多的反馈和建议,还激发了我进一步学习的动力。 总的来说...

Global site tag (gtag.js) - Google Analytics