Java面试题及答案(2023版),适用于应届生、用工作经验的程序员,每道都是认真筛选出的高频面试题,助力大家能找到满意的工作!
下载链接:全部面试题及答案PDF
1.什么是B/S架构?什么是C/S架构
B/S(Browser/Server),浏览器/服务器程序;
C/S(Client/Server),客户端/服务端,桌面应用程序
2.Java都有那些开发平台?
JAVA SE :主要用在客户端开发
JAVA EE :主要用在web应用程序开发
JAVA ME :主要用在嵌入式应用程序开发
3.什么是JVM? java虚拟机包括什么?
JVM : java虚拟机,运用硬件或软件手段实现的虚拟的计算机
Java虚拟机包括: 寄存器,堆栈,处理器
4.Java是否需要开发人员回收内存垃圾吗?
大多情况下是不需要的。Java提供了一个系统级的线程来跟踪内存分配,不再使用的内存区将会自动回收
5.类与对象的关系?
类是对象的抽象,对象是类的具体,类是对象的模板,对象是类的实例
6.Super与this表示什么?
Super表示当前类的父类对象
This表示当前类的对象
7.什么是隐式转换,什么是显式转换?
显示转换就是类型强转,把一个大类型的数据强制赋值给小类型的数据;隐式转換就是大范围的变量能够接受小范围的数据;隐式转换和显式转换其实就是自动类型转换和强制类型转换。
8.什么是拆装箱?
拆箱:把包装类型转成基本数据类型
装箱:把基本数据类型转成包装类型
9.java中有没有指针?
有指针,但是隐藏了,开发人员无法直接操作指针,由jvm来操作指针。
10.java中是值传递引用传递?
理论上说,java都是引用传递,对于基本数据类型,传递是值的副本,而不是值 本身。对于对象类型,传递是对象的引用,当在一个方法操作操作参数的时候, 其实操作的是引用所指向的对象。
11.假设把实例化的数组的变量当成方法参数,当方法执行的时候改变了数组内的元素,那么在方法外,数组元素有发生改变吗?
改变了,因为传递是对象的引用,操作的是引用所指向的对象
12.实例化数组后,能不能改变数组长度呢?
不能,数组一旦实例化,它的长度就是固定的。
13.Java中操作字符串使用哪个类?
String, StringBuffer, StringBuilder
14.StringBuffer, Stringbuilder有什么区别?
StringBuffer 与 StringBuilder 都继承了 AbstractStringBulder 类
在做字符串拼接修改删除昔换时,效率比string更高。
StringBuffer是线程安全的,StringBuilder是非线程安全的。所以StringBuffer 比StringBuilder效率更高,StringBuffer的方法大多都加了synchronized关键字