由于之前,阅读过两次,因此打算这次两天读完,之后学习框架,因为真的菜到爆!

第一章有如下点加强理解

 

1.编译型语言和解释性语言

编译型:高级代码---先针对特定的平台编译---编译成该平台可执行的二进制---直接运行

【缺点:需针对特定平台编译,每种平台都需要编译,被编译成特定平台的机器码,可移植性低,脱离编译器,快】

解释性:高级代码---边解释边运行

【缺点:不能脱离解释器,跨平台(解释器是跨平台的),慢,这也是为什么java开发的软件都有jre的原因了】

java先编译在解释

java----先javac编译class字节码文件-----边解释java边运行,(class字节码可运行在jvm虚拟机上,因此实现跨平台)

所以说语言跨平台很容易:解释性语言+解释器,由虚拟机的垃圾回收线程进行垃圾回收,

所以所,每一种跨平台语言呢,他的解释器-----虚拟机值得深度思考,因为虚拟机具有真实操作系统的特性,

虚拟机相当于一个转换器,他对上连接高级程序,对下连接真实操作系统

jvm:指令集+寄存器+栈+垃圾回收堆+存储区,

 

2.jdk jre

jdk:java  .class+javac .java

jre:虚拟机+类库api

 

3java se ee me

se:是ee me的基础,----jdk

ee:企业级应用-----服务器------sdk(包含jdk)

me:桌面,android移动应用---客户端

 

4系统变量+用户变量

针对所有用户+针对特定用户

linux/ewindows都有环境变量,所谓的环境变量其实都是为了操作系统方便的

path环境变量:定位命令路径,方便jvm找到java/javac命令

class环境变量:定位类的路径,方便jvm搜索类

 

5java程序的组织形式:类

java的解释器规定:如果某个类能被解释器直接解释执行,则这个类中必须包含main方法,而且main方法必须使用public static void修饰,且main方法的形参必须是字符串数组类型,java虚拟机从main方法开始解释执行 ,其他类都用于被main方法直接或间接调用

 

6类文件如何命名

public修饰的 类=文件名

 

7java垃圾回收

由jvm虚拟机分线程gc进行回收,jvm本身是虚拟机,但其具备指令集+寄存器+栈+垃圾回收堆+存储区,有因此需要管理其内存

jvm的垃圾回收线程只负责jvm存储区的堆内存的回收,想想真实机器一定存在后台线程对真实内存进行整理

jvm的垃圾回收线程一般在jvm存储区堆内存吃紧的时候执行,或者cpu空闲的时候,回收线程才有可能执行