最近开始学习Java,学习过程中找到的一些资料和笔记。

1、JAVA  SE、JAVA  EE和JAVA  ME有什么区别?

Java的发展到现在已经不单纯仅仅是一种语言,从更加广泛的范围上来说,Java代表了一个技术体系。在这个体系中,JAVA SE、JAVA EE、JAVA ME则分别代表了不同的方向。

Java SE全称为:Java Standard Edition (J2SE也就是Java SE)标准版

Java SE版本为Java程序提供了最基本的环境,是Java技术的核心和基础。Java EE和Java ME都建立在Java SE的基础之上。

重点学习:集合类、文件操作、I/O流、线程、序列化和GUI窗体编程等内容

 

Java EE全称为:Java Enterprise Edition (J2EE也就是 Java EE)企业版

Java EE是基于服务器分布式企业应用提供开发和运行环境,是目前Java应用最广泛的部分。Java EE不仅继承了Java SE的许多优点,同时还提供了EJB、JSP、Servlet、XML的全面支持,降低了企业级开发的复杂度。

重点学习:JSP、Servelet、JDBC、EJB以及Struts、Spring、Hibernate等轻量级框架

 

Java ME全称为:Java Micro Editon (J2ME也就是Java ME)微缩版

Java ME为嵌入式应用提供开发和运行环境

重点学习:配置(Configuration)和简表(Profile)等

 

2、JAVA语言的运行机制如何?

 

计算机高级编程语言按照程序的执行方式分为:编译型语言和解释型语言

C、C++)

解释型语言:使用专门的解释器,将源程序代码逐条地解释成特定平台的机器指令,解释一句执行一句(PHP、ASP等)

 

Java字节码具有平台无关性,所以可以跨平台,只是Java虚拟机需要对应相应平台

Java语言并不属于以上分类,Java是编译型和解释型的综合体

首先,Java采用通用的编译器将源程序编译为与平台无关的字节码文件(class文件)

然后,Java虚拟机(JVM)对字节码文件解释执行

下图为Java代码的具体的执行过程:

ee还是se java java se和java ee是什么_java

 

3、什么是JVM?有什么作用?工作机制?

定义:

(Java Virtual Machine)意思为Java虚拟机。可在实际计算机上模拟各种计算机功能。有自己完善的硬件架构,例如处理器、堆栈和寄存器等还具有相应的指令系统。

 

作用:

中类的装载是由类加载器(ClassLoader)和它的子类实现,其负责在运行时查找和装入类文件的类。

、JVM是Java字节码的执行引擎,为Java程序的执行提供必要的支持。

、优化Java字节码,使之转化为更有效率的机器指令。

、JVM屏蔽了与具体操作系统相关的信息,Java程序生成能够在JVM上运行的字节码文件(class文件),JVM负责将每一条要执行的字节码送给解释器,解释器再将相应的字节码转化为对应平台的机器指令并执行,由此实现跨平台。(不同平台,不同的JVM)

 

工作原理:

JVM在整个JDK中处于最底层,负责与操作系统的交互,用来屏蔽操作系统环境,提供一个完整的操作系统环境。

操作系统中的JVM通过JDK中的java.exe来实现,主要通过以下步骤:

(1)创建JVM装载环境和配置

(2)装载jvm.dll

(3)初始化jvm.dll

(4)调用JNIEnv实例装载并处理class类

(5)运行Java程序

 

4、什么是JRE(J2RE)?

简介:JRE是Java Runtime Enviroment的简称,及Java运行时环境,是Java程序运行的必要环境集合,主要由:Java虚拟机、Java平台核心类以及若干支持文件组成。

Sun公司的JRE产品包括:Java Runtime Enviroment和Java Plug-in Java Runtim Enviroment两部分,是可以运行、测试和传输应用程序的Java平台。

如果需要在浏览器中运行Java Applet程序,JRE需要辅助软件:Java Plug-in。该软件可以使Java Applet和JavaBeans组件在使用Sun公司的JRE环境的浏览器环境中运行。该软件可以在Navigator和IE中,微软自带的虚拟机对Java环境支持并不完全,最好安装一个Sun公司的JRE或者JDK。

 

JRE的版本管理:

同一台计算机上安装多个不同版本的JRE并不影响程序的运行,因为控制台使用java.exe工具执行java程序时,操作系统将按照如下顺序查找JRE环境:

(1)先查找当前目录下是否有JRE

(2)再查找父目录下是否有JRE

(3)接着再在环境变量PATH指定的路径中查找JRE

(4)注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Enviroment\查看 CurrentVersion的键值指向哪一个JRE

最常用的是在PATH中查找JRE环境,一般情况下,每一种Java软件在运行之前都会在批处理文件之中临时设置PATH值,然后把自己使用的JRE路径放置在PATH路径的最前端,所以肯定会使用自带的JRE,不会造成版本混乱

 

JRE的基础类库:

JRE自带的基础类库主要在JRE\lib\rt.jar文件中,该文件包括JAVA 2平台中运行的所有类库,与JRE的版本一致。

程序运行时,ClassLoader查找和加载程序引用到的基类库和其他类库。

基类库:ClassLoader会自动到rt.jar中加载(操作系统通过PATH环境变量定位JRE,再确定基类库的位置)

其他的类库:ClassLoader在环境变量CLASSPATH中指定的路径搜索,按照先来先到的原则搜索,放在CLASSPATH前面的类库优先被搜到

由此可知:在JAVA程序启动之前,先设置好PATH和CLASSPATH的环境变量