java本纪
Java虚拟机的起源与构造
当我们说到“Java”这个词的时候,指的是四个相互关联的概念:Java语言、Java API、Java Class文件格式、Java虚拟机。整个Java体系是基于Java 虚拟机构造的,正因为如此,才能实现Java的安全性和网络移动性。Java并非是第一个采用“虚拟机”概念的体系,但却是第一个得到广泛运用的虚拟机平台。 “虚拟”,是一种隔离物理资源与逻辑资源的手段。Java虚拟机的“虚拟”,则是用来隔离物理机器、底层操作系统与Java语言规范实现的手段。
虽然Java是一种面向对象的语言,我们平时大量使用的,是对象间的多态、组合(Composition)、委派(Delegation),但当我们讨论虚拟机的时候,我们看见的基本概念却是“栈(Stack)”和“堆(Heap)”。根据冯诺依曼的“存储计算”模型,所有的代码都保存在代码空间中,随着程序计数器指针的变化进行程序的执行、跳转。Java虚拟机中没有寄存器的概念,方法调用是采用“栈”进行的,这是一种安全、简洁的方法。
Java虚拟机通过类装载器支持对类的隔离,这也是Java实现安全性的基础。每个类都具有自己的命名空间,在具有不同安全级别的沙箱中运行,因此不会产生低安全级别的代码来越权访问高级别代码的机会。类装载器的出现是Java虚拟机与大部分用C实现的虚拟机的显著不同之处。
Java虚拟机的另外一个显著特点就是实现了自动的垃圾收集。在往常,写程序的时候要牢记对象之间的关联,在每个程序块中假若申请了对象空间,就必须在出口释放掉,方法调用往往同时也就是对象的边界。而自动垃圾收集带给开发者的最大好处,就是可以非常方便地从整体上把系统的对象组织成一张对象图,只需往这张图中添加对象,维护对象之间的关联,却不需要自己做复杂的清扫工作。正是有了这种思维单纯的对象图的支持,OR Mapping(关系数据库与对象映射)技术在最近得以大行其道,设计模式也更容易被Java群体所接受。
虚拟机的优化
1995年第一代的Java出台之时,其虚拟机执行是依靠“字节码解释器(Byte Code Interceptor)”的,也就是说每条指令都由虚拟机来当场解释执行,这造成速度令人抓狂地缓慢。更有甚者有人开始总结许多的“速度优化经验”,比如说:“尽量把所有的代码都放在较大的方法中执行”与“少用接口”等等,这完全与Java语言的设计目的背道而驰,现在看起来是多么可笑的奇谈
相关文档:
JAVA异常可以分为三种:
1.checked 异常
编译器保证所有的checked异常都会得到处理,这样就可以在编译期检查异常处理。通常自定义的异常应该为此类型
2.runtime异常
是JVM在程序运行期发现的无效操作,例如NullPointerException
3.Errors
由JVM检测到的失败操作,例如OutOfMe ......
一 JSmooth
1.出品
Jsmooth,Sourceforge.net
2. 类型
free
3. 下载
http://jsmooth.sourceforge.net/download.php
4. 步骤
a)利用Eclipse将所需要的主类打成可独立运行的jar包,注意添加manifest属性和MainClass。
b)新建一个Jsmooth工程
c) 在sketlon中选择“Console“ 或者 “Windowe ......
在java环境变量配置上抓住 “两添加,以修改就OK了”
按住windows键+PauseBreak键直接在高级中的环境变量处设置
1.添加
CLASSPATH
.;C:\Program Files\Java\jdk1.6.0_02\lib;(这是你Jdk安装的目录下的包)
2.添加
JAVA_HOME
C:\Program Files\Java\jdk1.6.0_02
3.修改
修改path变量
C:\Progra ......