Java基础理论
一、JDk,JRE,JVM三者的区别
- JDK:Java开发工具包,用来开发Java程序的,主要针对java开发者。
- JER:java运行时环境,针对java的用户
- jvm:java虚拟机 用来解释执行字节码文件(class文件)的。
1.Jvm是什么
jvm是JRE的一部分,它是一个虚拟出来的计算机,是用过在实际的计算机上仿真模拟各种计算机功能来实现的。Jvm有着自己完善的硬件架构,如处理器、堆栈等,
JVM(java虚拟机)是java实现跨平台最核心得到部分,所有的java程序会首先编译为.clss的类文件,JVM的主要工作是解释自己的指令集(字节码)并映射本地的CPU的指令集或OS的系统调用,java面对不同操作系统使用不同的虚拟机,从而也证明了Java的狂平台性。
2.JRE是什么
JER就是Java的运行环境。在Java平台下,所有Java程序都需要在JRE下才能运行的。只有JVM还不能进行class的执行,因为解释class的时候,JVM需要调用解释所需要的类库lib。JRE里面有两个文件夹分别是bin和lib,这里可以讲bin当作就是JVM,lib就是JVM所需要的类库,而JVM和lib合起来就称为JRE
JRE包括JVM和Java核心类库与支持文件。与JDK不同,它不包含开发工具-编译器、调试器和其他工具
3.JDK是什么
JDk是Java的开发工具包,它包含着上面所说的JRE和JVM,还有一些java工具。
4.总结
在实际开发中,我们利用JDK开发属于自己的JAVA程序后,通过JDK中javac进行编译代码,在JRE上运行这些JAVA字节码,JVM解释这些字节码,映射到CPU指令或OS的系统调用
二、Java内存的分析
Java内存划分
1.栈空间,连续得到存储空间,遵循后进先出的原则,用于存放局部变量。
2.堆空间,不连续的空间,用于存放new出的对象,或者说是类的实例。
3.方法区,方法区在堆空间内,用于存放用于存放①类的代码信息;②静态变量和方法;③常量池
三、JAVA垃圾回收机制
为什么要垃圾回收呢
垃圾回收机制回收也是java语言的的一个特点,它使得java程序员在编写程序的时候不再需要考虑内存的管理。由于有了这个垃圾回收机制,java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效得到防止内存泄露,有效的使用空闲的内存。
内存泄露是指该内存空间使用完毕之后未回收,不涉及复杂数据结构的一般情况下,java的内存泄露表现为一个内存对象的生命周期超出了程序需要它的时间长度,我们有时也将其称为“对象游离”。