Java面试笔记5
---恢复内容开始---
1.JRE和JDK的区别。
2.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
3.是否可以在static环境中访问非static变量
4.什么是自动拆装箱?
5.Java支持多继承么。
不支持,Java不支持多继承。每个类都只能继承一个类,但是可以实现多个接口。
6.什么是值传递和引用传递?
7.创建线程有几种不同的方式?你喜欢哪一种?为什么?
有三种方式可以用来创建线程:
- 继承Thread类
- 实现Runnable接口
- 应用程序可以使用Executor框架来创建线程池
实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。同时,线程池也是非常高效的,很容易实现和使用。
8.线程的几种可用状态。
9.Iterator和ListIterator的区别是什么?
ListIterator范围更广。
10.ArrayList和LinkedList有什么区别?
11.Comparable和Comparator接口是干什么的?列出它们的区别。
12.如何权衡是使用无序的数组还是有序的数组?
有序数组最大的好处在于查找的时间复杂度是O(log n),而无序数组是O(n)。有序数组的缺点是插入操作的时间复杂度是O(n),因为值大的元素需要往后移动来给新元素腾位置。相反,无序数组的插入时间复杂度是常量O(1)。
13.Java集合类框架的最佳实践有哪些?
14.HashSet和TreeSet有什么区别?
15.Java中的两种异常类型是什么?他们有什么区别?
Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。相反,受检查的异常必须要用throws语句在方法或者是构造函数上声明。
16.什么是Applet?解释一下Applet的生命周期。
java applet是能够被包含在HTML页面中并且能被启用了java的客户端浏览器执行的程序。Applet主要用来创建动态交互的web应用程序。
applet可以经历下面的状态:
- Init:每次被载入的时候都会被初始化。
- Start:开始执行applet。
- Stop:结束执行applet。
- Destroy:卸载applet之前,做最后的清理工作。
17.弹出式选择菜单(Choice)和列表(List)有什么区别
Choice是以一种紧凑的形式展示的,需要下拉才能看到所有的选项。Choice中一次只能选中一个选项。List同时可以有多个元素可见,支持选中一个或者多个元素。
18.