尚学堂JavaSE面试题参考答案
JavaSE面试题总结
第一章JavaSE基础 (1)
1.Java的跨平台原理(字节码文件、虚拟机) (1)
2.简述Java的垃圾回收机制 (1)
3.类和对象的关系 (2)
4.面向过程和面向对象的区别 (2)
5. private/默认/protected/public权限修饰符的区别 (2)
6.方法重载和方法重写(覆盖)的区别 (3)
7.this和super关键字的作用 (3)
8.static关键字的作用(修饰变量、方法、代码块) (3)
9.final和abstract关键字的作用 (4)
10.final、finally、finalize的区别 (4)
11.写出java.lang.Object类的六个常用方法 (4)
12.继承条件下构造方法的执行过程 (5)
13.多态的技能点(前提条件,向上转型、向下转型) (5)
14.接口和抽象类的异同之处 (5)
15.String、StringBuffer、StringBuilder区别与联系 (6)
16.==和equals的区别和联系 (6)
17.String类型是基本数据类型吗?基本数据类型有哪些 (7)
18.String s="Hello";s=s+"world!";执行后,原始String内容是否改变? (7)
19.String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? . 8
20.下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; (8)
21.&和&&的区别和联系,|和||的区别和联系 (8)
22.用最有效率的方法算出2乘以8等于多少 (9)
23.Error和Exception的区别 (9)
24.Checked异常和Runtime异常的区别 (9)
25.Java异常处理try-catch-finally的执行过程 (9)
26.异常处理中throws和throw的区别 (10)
27.请使用递归算法计算n! (10)
28.请写出冒泡排序代码 (10)
29.请写出选择排序的代码 (11)
30.请写出插入排序的代码 (12)
第二章JavaSE高级 (13)
1.基本数据类型和包装类 (13)
2、Integer与int的区别 (13)
3.Java集合体系结构(List、Set、Collection、Map的区别和联系) (14)
4.Vector和ArrayList、ArrayList和LinkedList的区别和联系 (15)
5.HashMap和Hashtable的区别和联系 (15)
6.HashSet的使用和原理(hashCode()和equals()) (15)
java面试题及答案20207. TreeSet的原理和使用(Comparable和comparator) (16)
8.集合和数组的比较(为什么引入集合) (16)
9.Collection和Collections的区别 (16)
10.使用JDBC进行数据库操作的基本步骤 (16)
11.Statement和PreparedStatement的区别 (17)
12.为什么引入事务?事务的基本特性。JDBC和Hibernate中如何使用事务 (18)
13.Java反射技术的主要实现类有哪些,其作用分别是什么? (18)
14.Class类的作用?生成Class对象的方法主要有哪些? (18)
15.反射的使用场合和作用、及其优缺点 (19)
16.进程和线程有什么联系和区别? (19)
17.创建线程的两种方式分别是什么? (20)
18.如何实现线程同步? (21)
19.Java中实现线程通信的三个方法的作用是什么? (22)
20.IP地址和端口号 (22)
21.介绍OSI七层模型和TCP/IP模型 (23)
22.TCP协议和UDP协议的比较 (23)
23.什么是Socket编程 (24)
24.简述基于TCP和UDP的Socket编程的主要步骤 (25)
25.面向对象设计原则有哪些 (26)
26.什么是设计模式,设计模式的作用。 (26)
27.23中经典设计模式都有哪些,如何分类。 (27)
28.写出简单工厂模式的示例代码 (27)
29.写出单例模式的示例代码 (28)
30.请对你所熟悉的一个设计模式进行介绍 (29)
第一章JavaSE基础
1.Java的跨平台原理(字节码文件、虚拟机)
a)C/C++语言都直接编译成针对特定平台的机器码。如果要跨平台,需要使用相应的编译器重新编译。
b)Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运
行。解释是通过Java虚拟机来执行的。
c)字节码文件不面向任何具体平台,只面向虚拟机。
d)Java虚拟机是可运行Java字节码文件的虚拟计算机。不同平台的虚拟机是不同的,但它们都提供了相
同的接口。
e)Java语言具有一次编译,到处运行的特点。就是说编译后的.class可以跨平台运行,前提是该平台具
有相应的Java虚拟机。但是性能比C/C++要低。
f)Java的跨平台原理决定了其性能没有C/C++高
2.简述Java的垃圾回收机制
a)传统的C/C++语言,需要程序员负责回收已经分配内存。显式回收垃圾回收的缺点:
i.程序忘记及时回收,从而导致内存泄露,降低系统性能。
ii.程序错误回收程序核心类库的内存,导致系统崩溃。
b)Java语言不需要程序员直接控制内存回收,是由JRE在后台自动回收不再使用的内存,称为垃圾回收
机制。
i.可以提高编程效率。
ii.保护程序的完整性。
iii.其开销影响性能。Java虚拟机必须跟踪程序中有用的对象,确定哪些是无用的。
c)垃圾回收机制的特点
i.垃圾回收机制回收JVM堆内存里的对象空间,不负责回收栈内存数据。
ii.对其他物理连接,比如数据库连接、输入流输出流、Socket连接无能为力。
iii.垃圾回收发生具有不可预知性,程序无法精确控制垃圾回收机制执行。
iv.可以将对象的引用变量设置为null,暗示垃圾回收机制可以回收该对象。
v.现在的JVM有多种垃圾回收实现算法,表现各异。
vi.垃圾回收机制回收任何对象之前,总会先调用它的finalize方法(如果覆盖该方法,让一个新的引用

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。