您的位置 首页 java

Java三大版本&JDK、JRE、JVM

JAVA 三大版本& JDK JRE JVM

java 三大版本

Write Once、Run Anywhere(一次编写,随处运行)

  • JavaSE :标准版(桌面程序、控制台开发……),Java的基础与核心,也是JavaEE和 JavaME 技术的基础。
  • JavaME:嵌入式开发(手机、小家电……),应用范围较小
  • JavaEE:E企业级开发(web端、服务器开发……),是Java技术应用最广泛的领域,JavaSE是JavaEE的基础。

JDK、JRE、JVM之间的关系

关系:JDK包含JRE,JRE包含JVM

  • JDK( Java Development Kit):Java开发工具包,用于Java程序的开发。
  • JRE(Java Runtime Environment):Java运行时环境,只能运行. class文件 ,不能编译。
  • JVM(Java Virtual Machine): Java虚拟机 ,Java运行时环境。

一、JDK

JDK(Java Development Kit),Java开发工具包,用于Java程序的开发,针对开发者。

JDK是整个Java的核心,包括了Java运行环境 JRE (Java Runtime Envirnment)、 一堆Java工具 ( javac /java/jdb等)和 Java基本的类库 (即Java API包括rt.jar)。

JavaAPI 是Java的应用程序接口,里面有很多已经写好的Java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等,我们可以直接调用使用。

二、JRE

JRE(Java Runtime Environment),Java运行时环境, 只能运行.class文件,不能编译 ,针对用户。JRE,包含了一个 JVM (Java虚拟机),与 Java核心类库 与其所支持的文件。与JDK不同,它不包含开发工具——编译器、调试器和其它工具。

将Java源程序(扩展名为.java的文件)

JRE,是运行Java程序必不可少的,编写好的Java程序必须要JRE才能运行,如果想运行一个开发好的Java程序,计算机中只需要安装JRE即可。

包含关系:

JDK—>JRE、JAVA基础类库

JRE—>JVM、Java核心类库

三、JVM

JVM(Java Virtual Machine),Java虚拟机,Java运行时环境。

Java虚拟机,是一种虚拟出来的计算机,是通过在实际的计算机上模拟仿真各种计算机功能实现的。

JVM功能 :将字节码文件(扩展名为.class的文件)解释成具体系统平台的机器指令。

JVM,是整个Java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

每日三道Java面试题

1.Java有哪几种基本数据类型?

Java有4类8种数据类型,它们分别是

1.整形: byte short 、int、long

2. 浮点型 float 、double

3.字符型: char

4.布尔型: boolean

2.==和equals比较有什么区别?

==:

如果比较的对象是基本数据类型,则比较的是数值是否一致;

如果比较的是引用数据类型,则比较的是对象的地址是否一致。

equals():

equals()默认用来比较对象的地址是是否一致,不能用于比较基本数据类型,如果对象和自身进行比较,则equals()方法与==的作用是一样的。

 public boolean equals(Object obj) {
    return (this == obj);
}  

那为什么常用equals()来比较 String 字符串的内容相等是为什么呢?

那是因为对于String、Date、 Integer 等类型重写了equals方法,使其比较的是存储对象的内容是否相等,而不是内存地址。

String类 ,已经重写了equals方法:

 public boolean equals(Object anObject) {
    if(this == anObject) {
        return true;
    }
    if(anObject  instanceof  String) {
        String anotherString = (String)anObject;
        int n = value.length;
        if(n == anotherString.value.length) {
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            while (n -- != 0) {
                if(v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}  

3.Java支持xx ≠ null 不等于写法吗?

不支持,正常的不等于写法是:!=

文章来源:智云一二三科技

文章标题:Java三大版本&JDK、JRE、JVM

文章地址:https://www.zhihuclub.com/201403.shtml

关于作者: 智云科技

热门文章

网站地图