您的位置:首页 > 编程语言 > Java开发

JAVA疯狂讲义笔记(一)

2016-07-17 22:53 316 查看
编译型和解释型语言:

编译型语言:使用专门的编译器,针对特定的平台将高级程序语音翻译成能被该平台识别的机器码。通过编译后需要将多个目标代码链接成可执行程序。可以脱离开发环境独立运行,运行效率高,但无法移植到其他平台。如果要移植的话,需要复制源代码到特定平台进行修改,并且在特定平台的编译器中重新编译。(不需要每运行一次,就编译一次,速度快)

解释型语言:每次执行解释型语言的程序都必须进行一次编译,所以不能脱离解释器独立运行。但是解释型语言跨平台性好,只要提供特定平台的解释器,牺牲代码执行效率为代价。(Ruby、Python)

Java需要2个步骤,java程序先经过编译->与平台无关的字节码(.class文件,编译器面向JVM的,生产JVM能识别的代码)。-特定平台的JVM对字节码进行解释(不同平台的JVM也是不同的,这一步相当于解释型语言),形成特定平台的机器码。

JAVA:JVM和垃圾回收机制

JRE:JAVA运行环境,包括JVM和一些类加载器、字节码校验器和大量的基础类库。

计算机根据PATH(WINDOWS不分大小写,LINUX分)的路径进行寻找,PATH设置对了后,就不会出现"XXX不是内部或外部指令,也不是可运行的程序或批处理文件"

系统变量对全部用户,用户变量只是针对用户个人,用户变量的优先级>系统变量

classpath:JDK1.5以后基本可以不声明CLASSPATH环境变量。当然如果你设置了ClassPath那么系统会去CLASSPATH的路径上找.class文件,当然也可以临时指定classpath(此时环境变量中的ClassPath失效)  java -classpath dir1;dir2;.....;dirN.当然可以加上当前路径(.)和环境变量中的ClassPath(%CLASSPATH%)

一个JAVA源文件可以有多个类,但是最多只能包含一个PUBLIC类。如果JAVA源文件里包含public类,那么这个源文件必须和这个类同名。(推荐使用:一个类一个源文件,每个源文件中的那个类都是PUBLIC,都与文件名保持一致,增加可读性)

垃圾回收机制:GC ,JRE提供一个超级线程在CPU空闲或内存不足时,对内存进行自动回收,程序员无法确定时间和顺序。当一个对象不再被引用时,被视为“垃圾”。GC主要是任务:发现无用对象,对无用对象进行回收,以便空间被程序再次使用。对于不再使用的对象,不要再引用它,否则内存会越来越小,垃圾回收的频率越来越快,系统性能降低。

垃圾回收机制的精确性:标记引用对象还活着,确定对象之间的引用关系。保证所有的对象都会被回收,所有空间都会被重新分配,减少内存碎片。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: