JDK JRE JVM的区别:
Jdk【Java Development ToolKit】就是java开发工具箱, JDK是整个JAVA的核心里边包含了jre,它除了包含jre之外还包含了一些javac的工具类,把java源文件编译成class文件,java文件是用来运行这个程序的,除此之外,里边还包含了java源生的API,java.lang.integer在rt的jar包里边【可以在项目中看到】,通过rt这个jar包来调用我们的这些io流写入写出等
JDK常用的包:
java.lang:这个是系统的基础类,比如:String,Math,Integer,system,thread提供常用的功能。
Java.io这里面是所用输入输出有关的类,比如:文件操作。
java.net:这里面是与网络有关的类,比如URL,URLVonnection等。
Java.util:这个是系统辅助类,特别是集合类conllection,list,map等。
Java.sql:这个是数据操作的类,connection,statememt,resultset等。
JDK有以下三种版本:
J2SE,standard edition,标准版,是我们通常用的一个版本
J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序
J2ME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序
Jre【Java Runtime Enviromental】是java运行时环境,那么所谓的java运行时环境,就是为了保证java程序能够运行时,所必备的一基础环境,也就是它只是保证java程序运行的,不能用来开发,而jdk才是用来开发的,所有的Java程序都要在JRE下才能运行。
包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。
Jre里边包含jvm
Jvm:【Java Virtual Mechinal】因为jre是java运行时环境,java运行靠什么运行,而底层就是依赖于jvm,即java虚拟机,java虚拟机用来加载类文件,java中之所以有跨平台的作用,就是因为我们的jvm
jvm的内存结构:
Java虚拟机的内存结构分为堆(heap)和栈(stack),堆里面存放的是对象实例也就是new出来的对象,栈里面存放的是基本数据类型以及引用数据类型的地址。
关系:
J2se是基于jdk和jre,
JDK是整个JAVA的核心里边包含了jre,
Jre里边包含jvm