【Java面试笔记】主要涵盖了Java语言的一些核心概念和面试中常见的问题。以下是对这些知识点的详细解释: 1. **final, finally, finalize的区别** - `final`:用于声明不可变的类、变量或方法。当一个类被声明为final,意味着它不能有子类。一个final变量一旦初始化后,就不能再改变其值。final方法也不能被子类重写。 - `finally`:在异常处理中使用,无论是否发生异常,finally块中的代码都会被执行。这是确保清理工作得以完成的关键。 - `finalize`:是Object类的一个方法,用于在对象被垃圾收集器回收前进行清理工作。但不应依赖此方法进行关键的资源释放,因为它并不总能得到调用。 2. **匿名内部类**:匿名内部类可以直接实现接口或继承类,但不能同时进行。它可以用于快速实现简单的类或接口实例。 3. **&和&&的区别** - `&`:位运算符,用于按位与操作。在布尔表达式中,它表示逻辑与,无论两侧表达式的结果如何,整个表达式都会被计算。 - `&&`:逻辑与运算符,只有当左侧表达式为真时,才会计算右侧表达式。 4. **HashMap和Hashtable** - `HashMap`:非同步,允许null键和null值,无排序。 - `Hashtable`:同步,不允许null键和null值,比HashMap慢。 5. **Collection和Collections** - `Collection`:是所有集合接口的根接口,定义了集合的基本操作。 - `Collections`:是工具类,提供了对集合的各种操作的静态方法。 6. **GC(Garbage Collection)** - GC是Java的自动内存管理机制,负责回收不再使用的对象,以避免内存泄漏。GC的存在使得程序员无需手动管理内存。 7. **String对象的创建** 创建`String s = new String("xyz")`会产生两个对象,一个是字符串常量"xyz",另一个是引用对象s指向"xyz"。 8. **Math.round()** `Math.round(11.5)`返回12,`Math.round(-11.5)`返回-11。 9. **short变量的加法** `short s1 = 1; s1 = s1 + 1;`是错误的,因为s1+1的结果是int型,需要显式转换。而`s1 += 1`是正确的,编译器会自动处理类型转换。 10. **sleep()和wait()** - `sleep()`:使当前线程休眠指定的时间,不会释放对象锁。 - `wait()`:使线程等待,释放对象锁,等待其他线程调用`notify()`或`notifyAll()`来唤醒。 11. **length()方法** - 数组通过`.length`属性获取长度,而不是`.length()`方法。 - `String`类有`.length()`方法用于获取字符串的字符数量。 12. **Overload和Override** - **Overload(重载)**:在同一个类中,方法名相同但参数列表不同的方法称为重载方法,返回类型不影响重载。 - **Override(重写)**:子类重新定义父类中已经存在的方法,保持方法名、参数列表和返回类型一致,但可以改变方法体实现。重写用于多态性。 以上就是Java面试笔记中涉及到的主要知识点,这些内容对于理解和解答Java面试问题非常关键。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助