Java面试题
一、Java入门知识面试题
1、C、C++、Java比较区别?
C语言: 面向过程
C++语言:基于对象编程
Java语言:完全面向对象
- 语法:Java语法与C++相似
- 平台:仅Java可以跨平台执行
- 速度:C/C++稍快于Java
- 内存:Java中内存自动管理,C/C++手工编程管理;Java有自动回收垃圾的机制,C/C++手动回收垃圾
- 应用领域:
- C主要用于智能硬件开发、算法、底层系统开发、OS系统层软件开发、硬件设备驱动及智能电子设备软件开发,比如:租车计价器中的软件开发、车牌识别算法、Linux操作系统等。
- C++主要用于图形处理软件、控制软件、通信软件、GUI软件开发、控制系统软件开发、游戏开发、主要开发C/S架构的软件,比如:美图秀秀,迅雷下载,暴风影音,QQ等
- Java主要用于开发大型企业管理系统,大数据开发,Android开发等,使用量最大;B/S结构软件基本使用
2.JDK/JRE/JVM关系是什么?
-
JDK: Java Development Kit 必须有的Java开发环境
-
JRE:Java Runtime Enviroment Java运行时环境
-
JVM:Java Virtual Machine Java虚拟机
-
三者关系:JDK里面包含JRE,JRE里面包含JVM
3.J
ava程序的执行过程是什么?
Java编译器将.Java结尾的源文件,编译为.class结尾的字节码文件,由Java虚拟机执行.class文件
-
.class是什么文件?
字节码文件
-
.class文件包含说明内容?能打开看内容吗?
.class文件包含的针对JVM的指令。内容是16进制表示的,能看到里面的内容。
-
.class是平台相关还是平台无关?
平台无关
-
JVM的作用是什么?
将.class文件翻译成特定的机械指令
-
JVM是平台相关还是平台无关?
相关,不同的操作系统安装不同的JDK,也就是不同的JVM
4.Java语言是编译语言还是解释语言?
编译和解释的结合体
5.Java语言的最大特点是那些?
Java官网提出了10个特点,最典型的如下:
- 跨平台:编写一次到处运行。
- 开源:源代码公开,文档公开
- 面向对象
6.Java平台的划分?
- ava SE( Java Platform Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案。 JavaSE是三个平台中最核心的部分, JavaEe和 JavaME都是从 JavaSE的基础上发展而来的, JavaSE平台中包括了Java最核心的类库,如集合、IO、数据库连接以及网络编程等。
- Java EE( Java Platform Enterprise Edition)企业版,是为开发企业级应用程序提供的解决方案。 JavaEE可以被看作一个技术平台,该平台用于开发、装配以及部署企业级应用程序,其中主要包括 Servlet、JSP、 Javabean、JDBC、EJB、Web等技术°
- Java ME( Java Platform Micro Edition)小型版,是为开发电子消费产品和嵌入式设备提供的解决方案。 JavaME主要用于小型数字电子设备上软件程序的开发例如,为家用电器增加智能化控制和联网功能,为手机增加新的游戏和通讯录管理功能。此外,JavaME提供了HTTP等高级Internet协议,使移动电话能以Client/ Server方式直接访问 Internet的全部信息,提供最高效率的无线交流。
7.Java语言出现的时间和发布时间?
- 1991年出现
- 1995年5月23日正式发布,风靡全球二十多年
8.在Windows/Linux下Javac和Java命令区分大小写吗?
在Windows下面Java和javac命令不区分大小写,但是在Linux系统下区分大小写
9.在Windows/Linux下环境变量Path和CLASSPATH名字大小写区分吗?
在Windows下面Java和javac命令不区分大小写,但是在Linux系统下区分大小写
10.在Windows/Linux下Javac编译时文件名大小写区分吗?
在Windows下面Java和javac命令不区分大小写,但是在Linux系统下区分大小写
11.在Windows/Linux下Java执行文件名时,文件名的大小写区分吗?
在Windows下面Java和javac命令不区分大小写,但是在Linux系统下区分大小写