什么是JDK?
JDK(Java开发环境,Java Development Kit)是用于支持Java程序开发的最小环境,由一个处于操作系统之上的开发环境和运行环境组成,JDK除了包括编译(javac)、解释(java)、打包(jar)等工具,还包括开发工具及开发工具的应用程序接口。当Java程序编译完毕后,如想运行,还需JRE。
什么是JRE?
JRE(Java运行环境,Java Runtime Environment)是运行Java程序所必需的环境的集合,包含JVM(Java 虚拟机)标准实现及Java核心类库。
JDK和JRE的区别?
在Java技术体系上,JDK包含了JRE,JRE是JDK的子集。
JRE面向的是程序的使用者,JDK面向程序的开发者,也就是说,如果仅仅想运行Java程序,安装JRE就可以了(安装过程自动添加path);如果想开发Java程序,就需要安装配置JDK(需要配置环境变量)。
Java技术体系
1、Java SE(Standard Edition,标准版):支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供完整的Java核心API。
2、Java EE(Enterorise Edition,企业版):以Java SE为基础,往外延伸,增加了许多支持企业内部使用的扩充类,支持使用多层架构的企业应用的Java平台。除了提供Java SE API之外,还做了大量的扩充并提供了相关部署支持。
3、Java ME(Micro Edition,微型版):以Java SE为基础,向内精简。它所支持的只有核心类的子集和,支持程序运行在移动终端上的平台,加入了针对移动端的支持,它主要进行嵌入式开发,目前渐渐被Android开发替代。
4、Java Card(智能卡版):比Java ME更加精简,支持一些小程序(Applets)运行在小内存设备(如容量小于64K的智能卡)的平台上。
环境变量
1、JAVA_HOME:该变量是指安装Java的JDK路径,他告知操作系统在哪里可以找到JDK。
2、Path:该变量是告诉操作系统可执行文件的搜索路径,即可以在哪些路径下找到要执行的可执行文件,注意它仅对可执行文件有效。当运行一个可执行文件时,用户仅仅给出该文件名,操作系统首先会在当前目录下搜索该文件,若找不到,再根据Path设置的路径,逐条到Path目录中搜索该可执行文件。
3、ClassPath:该变量是用来告诉Java解释器(即java命令)在哪些目录下可以找到所需要执行的class文件(即javac编译生成的字节码文件)。
Java程序运行流程
所有的Java源代码(以.java为扩展名),通过Java编译器javac编译成字节码(以.class为扩展名),然后利用命令java(java命令在Windows下不区分大小写,而在Linux下必须小写)将对应的字节码通过Java虚拟机(JVM)解释为特定操作系统能理解的机器码,最终Java程序得以执行。
Java相对C++的一些特性
1、提供了对内存的自动垃圾回收,在程序中无需进行分配、释放内存;
2、抛弃了C++中的指针,用诸如“引用”的方法取而代之;
3、取消了多重继承。