首页 > 编程语言 >Java三大版本&JDK、JRE、JVM

Java三大版本&JDK、JRE、JVM

时间:2022-11-15 21:44:58浏览次数:42  
标签:JRE Java JDK 虚拟机 equals 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 不等于写法吗?

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

标签:JRE,Java,JDK,虚拟机,equals,JVM
From: https://www.cnblogs.com/cuijiuba/p/16894087.html

相关文章

  • Java基础语法01
    注释注释不会被执行,属于解释代码的内容单行注释以//开头,只能注释一行文字多行注释以/开头,以/结尾,可以注释多行文字文档注释以/**开头,以*/结尾标识符Ja......
  • 后端程序员必会的前端知识-02:JavaScript
    第二章.Javascript它是一种脚本语言,可以用来更改页面内容,控制多媒体,制作图像、动画等等例子修改页面内容js代码位置<script> //js代码</script>引入js脚......
  • JavaScript基础知识
    变量变量是数据的命名存储,我们可以用变量来保存商品、访客和其他信息。在JavaScript中创建一个变量,需要用到关键字let。例如:letmessage="hello";//将字符串hello保......
  • java类与对象
    1.不是static类型则需要定义一个对象变量,然后“创建(new)”一个对象,赋值给对象变量,现在就可以通过对象变量使用对象,主要方式有:(1)直接调用类的方法;(2)存取类的字段。2.在定义变......
  • 函数_Java
    函数基础一个典型的函数定义包括以下部分:修饰符、返回类型、函数名字、由0个或多个形参组成的列表以及函数体。如以下函数:publicclassMain{privatestaticint......
  • 复习java基础的第二天
    java流程控制1Scanner对象基本语法Scannerscanner=newScanner(System.in);next();一定要读取到有效字符后才可以结束输入。对输入有效字符之前遇到的空......
  • JAVA中字符串的插入
    一、问题描述就是我们现在有一个字符串,我们需要实现一个功能,就是选择在字符串中字符的ASCII码最大的地方,插入字符串。二、解决思路我们直接循环,获取字符串中所有的字符,......
  • java 获取字符串长度
    获取字符串长度/***获取字符串的长度,如果有中文,则每个中文字符计为2位*@paramvalue指定的字符串*@return字符串的长度*/publicstaticintlength......
  • Java Instrumentation
    前言JDK1.5开始,Java新增了Instrumentation(JavaAgentAPI)和JVMTI(JVMToolInterface)功能,允许JVM在加载某个class文件之前对其字节码进行修改,同时也支持对......
  • 常用的JavaScript代码技巧 (一)字符串、数字
    一、字符串类1.比较时间consttime1="2022-03-0510:00:00";consttime2="2022-03-0510:00:01";constovertime=time1<time2;//overtime=>true2.货币格式......