Java面试题-Java核心基础-第一天(基础概念与常识)

目录

一、Java语言有什么特点

二、JDK、JRE、JVM的区别

三、JavaSE和JavaEE的区别

四、什么是字节码,使用字节码的好处

五、为什么说Java语言是编译与解释并行

六、OpenJDK和OracleJDK的区别

七、Java和C++的区别


一、Java语言有什么特点

答:

1. 面向对象 具备面向对象的三大特性(封装、继承、多态)

2. 其次最大的特点就是简单,相较于c++来说已经很简单了。而且Java语言的设计初衷就是为了提供一种比c++容易学,而且各方面也不错的一种面向对象的语言,所以就诞生了Java

....可以扯上它两的区别  指针 释放要自己管理内存 继承

2. 其次还有跨平台,由于Jvm的存在,使得只需要生成一次字节码,就能够到处运行

3. 安全

3.1 最大的就是使用jvm的垃圾回收机制  不需要我们程序员手动的去管理内存,降低了内存泄漏的风险

3.2 从Java语言本身的特性语法来考虑

异常机制、封装使用权限修饰符

4. 多线程

可以很简单进行多线程编程

二、JDK、JRE、JVM的区别

先说JVM  JVM就是java虚拟机   它的作用就是起到一个翻译的作用

然后加上核心内库 = JRE JRE就已经有了Java代码的运行环境了 所以说如果只是单纯的跑代码 安装JRE就行了

在JRE的基础再加上一点Java的工具 就变成了JDK了 Java的工具就是bin包下面的一些命令 java javac javap javadock jconsole jms

三、JavaSE和JavaEE的区别

JavaSE是Java基础类库JVM的核心组件

JavaEE是JavaSE的升级版  Java企业级类库 包含一些规范(Servlet、JSP)专为企业开发打造

还有一个JavaME Java微型类库 为了小电器里面运行

四、什么是字节码,使用字节码的好处

字节码就是通过javac命令得到的这样一种文本  还不能直接运行 

字节码就只面向JVM,只有JVM才懂它   交由JVM翻译成机器码与操作系统打交道

好处:就是实现跨平台性  具体就是说我这个代码只要生成了一个字节码,这个字节码就可以只需要一份 然后交由不同操作系统上面的JVM翻译成对应的操作系统所能理解的机器码

五、为什么说Java语言是编译与解释并行

首先就是要理解什么是编译型语言什么又是解释型语言

编译型语言

很直接  可以直接将源代码一次编译成机器码 所以效率很高 但是开发效率低 c系语言

解释型语言

它是需要逐行进行解释运行,就是解释一行我就运行一行  没有编译的这一说 只有解释

执行效率低下 但是开发效率高

到底为什么Java是编译与解释并行的呢?

因为Java代码首先需要使用javac命令将其编译成字节码 然后需要使用JVM的执行引擎来进行解释

虽然是解释 但是对于热点代码 JVM使用jJIT即时编译器 可以将热点代码直接编译成机器码 以后就不需要再次解释了  直接运行机器码就行了

六、OpenJDK和OracleJDK的区别

1. 是否开源  前者完全开源 后者部分开源

2. 是否免费 前者完全免费 后者部分版本需要收费  但是随着Java版本的推进 就比如JDK11也是免费的

3. 功能性 OpenJDK肯定功能没有OrecleJDK强的  就比如说一些Java工具  OpenJDK就没有

JFR、JMC监控工具

七、Java和C++的区别

1. Java更简单  舍弃了C++中的指针 并且不支持多继承  c++还支持运算符重载 Java不支持

2. Java语言是可以使用JVM的垃圾回收机制自动的进行内存管理  而C++则需要程序员手动的释放内存

3. 安全性 c++可以手动的操作内存 而Java不行

你可能感兴趣的:(Java面试题,Java核心基础,java面试,java核心基础)