读书笔记(七)--Struts技术内幕-深入解析Struts架构设计与实现原理

读书笔记--第7篇--《Struts技术内幕-深入解析Struts架构设计与实现原理
 

0.Java不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛用于嵌入式系统、移动终端、企业服务器和大型机等各种场合。

1.Java的技术体系主要由5部分构成。

  a.Java程序设计语言;

  b.各种硬件平台上的Java虚拟机;

  c.Class文件格式;

  d.Java API类库;

  e.来自商业机构和开源社区的第三方Java类库。

 
2.Java技术的一个重要优点就是,在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性

3.一般情况下,一个程序员只要了解了必要的Java APIJava语法并学习适当的第三方框架,就已经能满足日常开发的需要了,虚拟机会在用户不知不觉中完成对硬件平台和兼容以及内存等资源的管理工作。

4.Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。

5.Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核来说是一个内核)只会执行一条线程中的指令。

6.垃圾收集(Garbage Collection,GC)的历史远远比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的三件事:

  a.哪些内存需要回收?

  b.什么时候回收?

  c.如何回收?

7.理论总是作为指导实践的工具,能把知识投入到实际工作中才是我们的最终目的。

8.给一个系统定位问题的时候,知识和经验是关键基础,数据是依据,工具是运用知识处理数据的手段。

9.工具永远都是知识技能的一层包装,没有什么工具是“秘密武器”,学会了就能解决所有的问题。

10.代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。

11.一次编写,处处运行(Write Once,Run Anywhere),这句话充分表达了软件开发人员对冲破平台界限的渴求。在无时无刻不充满竞争的IT领域,不可能只有Wintel存在,我们也不希望只有Wintel存在,各种不同的硬件体系结构和不同的操作系统定将会长期并存发展。

12.类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足Java Applet的需求而被开发出来的。如今Java Applet技术基本上已经死掉,但类加载器却在类层次划分、OSGi、热部署、代码加密等领域大放异彩,成为了Java技术体系中一块重要的基石,真可谓是失之东隅,收之桑榆

13.“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎和结构体系,并且能够执行那些不被硬件直接支持的指令集格式。

14.从外观上来看,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。

15.基于栈的指令集和基于寄存器的指令集是同时并存和发展的,两者各有优势,如果有一套指令集全面优于另外一套的话,就不存在选择的问题

    基于栈的指令集最主要的优点就是可移植性。寄存器由硬件直接提供,程序直接依赖这些硬件寄存器则不可避免地要受到硬件的约束。基于栈的指令集最主要的缺点就是执行速度相对来说稍慢一些。所有主流物理机的指令集都是寄存器架构也从侧面印证了这一点。

16.从计算机程序出现的第一天起,对效率的追逐就是程序天生的信仰。

17.Java技术的未来

a.模块化。模块化是解决应用系统与技术平台越来越复杂、越来越庞大而产生
的一系列问题的一个重要途径。

b.混合语言。当单一的Java语言已经无法满足当前软件的复杂需求时,越来越多基于Java虚拟机的语言被应用到软件项目中。Java平台上的多语言混合编程正成为主流,各种语言都可以针对自己擅长的方面更好地解决问题。

  通过特定领域的语言去解决特定领域的问题是当前软件开发应对日趋复杂的项目需求的一个方向。

c.多核并行

  CPU硬件的发展方向已经从高频率转变为多核心,随着多核时代的来临,软件开发越来越多关注并行编程的领域。

d.进一步丰富语法,提高编程效率。

e.64位虚拟机

你可能感兴趣的:(java,虚拟机,struts,语言,applet)