Java面试精华:详解常见知识点与误区
需积分: 4 94 浏览量
更新于2024-09-24
收藏 42KB DOC 举报
在Java面试中,面试官通常会考察候选人的基础知识和理解深度。以下是一些关键的Java概念和面试题,涵盖了类的修饰符、匿名内部类、静态嵌套类、运算符、集合框架、异常处理、基础数据类型、多态、并发与同步、接口和抽象类的区别以及线程操作等内容。
1. **final, finally, finalize的区别:**
- `final`用于修饰变量、方法或类,分别表示常量、不可变方法和最终类,不允许子类覆盖或重写。
- `finally`是try-catch-finally语句块的一部分,确保在任何情况下(正常或异常退出)都会执行的代码。
- `finalize`是对象的析构函数,由垃圾收集器在对象即将被回收时自动调用,但并非总能保证执行。
2. **匿名内部类与继承/实现:**
- 匿名内部类不能直接继承其他类,但可以通过实现接口实现多态性。
3. **StaticNestedClass vs Inner Class:**
- Static Nested Class是静态的,它不需要创建实例即可访问,而Inner Class(非静态)通常作为外部类的成员,随外部类实例存在。
4. **运算符&和&&:**
- `&`是位与运算符,用于位操作,`&&`是逻辑与运算符,用于条件判断。
5. **HashMap vs Hashtable:**
- HashMap是非线程安全的,而Hashtable是线程安全的,但性能略低,因为提供了额外的同步机制。
6. **Collection vs Collections:**
- Collection是接口,代表一系列对象的容器,Collections是Java提供的工具类,提供对Collection的实用操作。
7. **assert的使用:**
- 用于在开发阶段检查条件是否满足,编译时不会移除,仅在运行时生效,有助于发现潜在错误。
8. **Garbage Collector (GC):**
- Java的内存管理机制,负责自动回收不再使用的内存,以防止内存泄漏。
9. **String对象创建:**
- `Strings.newString("xyz")`每次都会创建新的String对象,`"xyz"`是字符串字面量。
- 对于`Math.round()`的结果,取决于舍入策略。
10. **基础类型赋值和算术运算:**
- shorts1 = 1; s1 = s1 + 1;有类型不匹配错误,应为`s1 = (short)(s1 + 1)`。
- shorts1 = 1; s1 += 1;是正确的,使用复合赋值运算符。
11. **sleep() vs wait():**
- sleep()使当前线程暂停执行,而wait()使线程放弃对象锁并进入等待状态,直到被唤醒。
12. **Java中的goto:** Java不支持`goto`关键字,避免了控制流程的混乱。
13. **length()方法:**
- 数组有`length`属性,返回数组长度;String也有`length()`方法,返回字符串长度。
14. **Overload和Override:**
- Overload是同名方法但参数列表不同,Override是子类重写父类方法,且返回值类型不能改变。
15. **Set的重复元素检测:**
- 使用`equals()`方法比较元素内容,`equals()`是基于引用,`==`是基于地址。
16. **RuntimeException:**
- 常见的运行时异常,如NullPointerException、ArrayIndexOutOfBoundsException等。
17. **Error vs Exception:**
- Error表示严重问题,通常是JVM内部错误,Exception表示编程错误或预期之外的情况。
18. **继承关系:**
- List, Set, Map都继承自Collection接口。
- AbstractClass不能直接实现接口,但可以继承实体类。
- Interface可以继承接口,但不能继承类。
19. **线程操作:**
- 启动线程使用`start()`方法,而不是`run()`,后者在Thread对象创建后立即执行。
- 构造器不能被override,但可以重载。
- String类是不可继承的。
20. **线程同步:**
- 当一个线程进入synchronized方法,其他线程会被阻塞,直到该线程执行完毕。
2023-04-14 上传
141 浏览量
163 浏览量
2023-10-15 上传
2009-11-03 上传
2007-11-17 上传
zqdjbmc
- 粉丝: 0
- 资源: 10
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全