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主要是任务:发现无用对象,对无用对象进行回收,以便空间被程序再次使用。对于不再使用的对象,不要再引用它,否则内存会越来越小,垃圾回收的频率越来越快,系统性能降低。
垃圾回收机制的精确性:标记引用对象还活着,确定对象之间的引用关系。保证所有的对象都会被回收,所有空间都会被重新分配,减少内存碎片。
编译型语言:使用专门的编译器,针对特定的平台将高级程序语音翻译成能被该平台识别的机器码。通过编译后需要将多个目标代码链接成可执行程序。可以脱离开发环境独立运行,运行效率高,但无法移植到其他平台。如果要移植的话,需要复制源代码到特定平台进行修改,并且在特定平台的编译器中重新编译。(不需要每运行一次,就编译一次,速度快)
解释型语言:每次执行解释型语言的程序都必须进行一次编译,所以不能脱离解释器独立运行。但是解释型语言跨平台性好,只要提供特定平台的解释器,牺牲代码执行效率为代价。(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主要是任务:发现无用对象,对无用对象进行回收,以便空间被程序再次使用。对于不再使用的对象,不要再引用它,否则内存会越来越小,垃圾回收的频率越来越快,系统性能降低。
垃圾回收机制的精确性:标记引用对象还活着,确定对象之间的引用关系。保证所有的对象都会被回收,所有空间都会被重新分配,减少内存碎片。
相关文章推荐
- Eclipse Android 开发环境搭建
- Java中文件的拷贝
- java内部类种类解读
- JAVA继承和多态
- 有一百盏灯,全部亮着并且从一到一百进行编号,对每盏灯做如下处理,如果该灯的编号能被1整除则拨一下开关,能被二整除再拨一下,以此类推,直到该灯的编号(不含编号本身)为至,问最后哪几盏灯亮着。
- eclipse 向HDFS中创建文件夹报错 permission denied
- java中的spring框架(1)
- maven打包错误: -source 1.5 中不支持 diamond 运算符以及@Override is not allowed when implementing interface method
- [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)
- JAVA和.NET互调用
- hdu1250(Java)大数相加的问题
- java基础知识
- 遍历map的方法
- Java类库及其组织结构
- 数组中重复的数字 java
- RxJava 与 Retrofit 结合的最佳实践
- Java IO操作——字节流(OutputStream、InputStream)和字符流(Writer、Reader)
- JavaWeb(四)
- JavaWeb(三)
- Java线程详解