进大厂背过的Java面试题系列-5

本文介绍了Java的三大版本(SE、EE、ME),详细讲解了JVM、JDK和JRE之间的关系,以及JVM作为Java跨平台的核心部分。同时,探讨了数据结构的概念及其在Java中的应用,如线性表、链表、栈、队列等,并解释了面向对象编程(OOP)的基本概念。此外,阐述了类与对象的关系,以及Java中的数据类型转换。最后,讨论了Char类型与其他类型的转换规则。
摘要由CSDN通过智能技术生成

欢迎关注公众号:“Java元空间” ,回复“1”,获取本系列pdf,大厂面试资料。这里有Java、SQL、大厂面试经验、面试题,欢迎大家关注交流。

1.Java都有那些开发平台?

1)SE(J2SE),standardedition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。

2)EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK5.0开始,改名为Java EE。

3)ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

2.什么是JVM?java虚拟机包括什么?

JVM:java虚拟机,运用硬件或软件手段实现的虚拟的计算机,Java虚拟机包括:寄存器,堆栈,处理器

3.什么是JDK?什么是JRE?

JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

JDK是java开发工具包,在其安装目录下面有六个文件夹、一些描述文件、一个src压缩文件。bin、include、lib、 jre这四个文件夹起作用,demo、sample是一些例子。可以看出来JDK包含JRE,而JRE包含JVM。

bin:最主要的是编译器(javac.exe)

include:java和JVM交互用的头文件

lib:类库

jre:java运行环境(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)

总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用再单独安装JRE了。 其中的开发工具包括编译工具(javac.exe)打包工具(jar.exe)等

JRE

JRE是指java运行环境。光有JVM还不能完成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。

包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,

如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

 JVM

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

可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式,它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令。让具体平台如window运行这些Java程序。

简单而言:使用JDK开发完成的java程序,交给JRE去运行。

三者之间关系

JDK包含JRE,JRE包含JVM。

4.什么是数据结构?

计算机保存,组织数据的方式数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

5.Java的数据结构有那些?

线性表(ArrayList)
链表(LinkedList)
栈(Stack)
队列(Queue)
图(Map)
树(Tree)

6.什么是OOP?

        面向对象编程,世间万物都可以看成一个对象。每个物体包括动态的行为和静态的属性,这些就构成了一个对象。

7.类与对象的关系?

    类是对象的抽象,对象是类的具体,类是对象的模板,对象是类的实例。

8.Java中有几种数据类型

整形:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean

9.什么是隐式转换,什么是显式转换

    显示转换就是类型强转,把一个大类型的数据强制赋值给小类型的数据;隐式转换就是大范围的变量能够接受小范围的数据;隐式转换和显式转换其实就是自动类型转换和强制类型转换。

10.Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型

       Char在java中也是比较特殊的类型,它的int值从1开始,一共有2的16次方个数据;Char<int<long<float<double;Char类型可以隐式转成int,double类型,但是不能隐式转换成string;如果char类型转成byte,short类型的时候,需要强转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值