Java面试必备:核心知识点详解
需积分: 9 8 浏览量
更新于2024-08-01
收藏 298KB DOC 举报
"Java面试和笔试题集合"
Java面试中常常涉及到的关键概念和知识点:
1. **final, finally, finalize的区别**:
- `final`:用于声明类、方法或变量,表示不可变性。当类被声明为final时,不能有子类;方法声明为final则不能被重写;final变量一旦赋值后就不能更改。
- `finally`:在异常处理中使用,无论是否发生异常,finally块中的代码都会被执行,通常用于清理资源。
- `finalize`:是Object类的一个方法,用于对象被垃圾收集器回收前执行的清理工作。但不保证一定会执行,因为垃圾收集行为是不确定的。
2. **AnonymousInnerClass(匿名内部类)**:
- 可以继承其他类,并且可以实现一个或多个接口。匿名内部类通常用于简洁地定义一个仅需一次性使用的类。
3. **StaticNestedClass与Inner Class的区别**:
- Inner Class(内部类):非静态嵌套类,持有对外部类的隐式引用,可以访问外部类的私有成员。内部类实例必须依赖于外部类实例。
- Static Nested Class(静态嵌套类):静态内部类,不持有对外部类的引用,可以独立存在,类似于普通的静态类。可以直接通过类名创建实例。
4. **& 和 && 的区别**:
- `&`:按位与运算符,用于两个操作数的逐位与。在布尔表达式中,`&`运算符始终会计算两边的操作数,即使左边已经确定结果。
- `&&`:逻辑与运算符,短路运算。如果左侧操作数为假,不会计算右侧操作数。
5. **HashMap和Hashtable的区别**:
- `HashMap`:线程非同步,允许null键和值,迭代顺序不是固定的。
- `Hashtable`:线程同步,不允许null键和值,迭代顺序与插入顺序无关。
6. **Collection和Collections的区别**:
- `Collection`:接口,是所有单列集合的顶级接口,如List、Set等。
- `Collections`:工具类,提供了对集合的一系列操作方法,如排序、查找、填充等。
7. **assert的使用**:
- `assert`:用于断言,用于测试代码中假设的正确性。在开发阶段启用,生产环境中通常关闭。
8. **GC(垃圾收集)**:
- 垃圾收集是Java的自动内存管理机制,负责回收不再使用的对象所占用的内存空间,以避免内存泄漏。`System.gc()`是建议进行垃圾回收,但不保证立即执行。
9. **Strings=new String("xyz");创建了几个StringObject?**
- 创建了两个对象,一个在字符串常量池,一个在堆内存。因为"xyz"在常量池中存在,而`new String("xyz")`会创建一个新的堆对象。
10. **Math.round(11.5)等于多少? Math.round(-11.5)等于多少?**
- `Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。`Math.round()`方法将浮点数四舍五入为最接近的整数,对于正数,超过0.5的部分会被向上舍入;对于负数,小于-0.5的部分会被向下舍入。
2010-12-23 上传
2008-05-23 上传
2008-05-03 上传
2009-10-21 上传
2024-10-31 上传
2024-10-31 上传
yinhao223
- 粉丝: 37
- 资源: 81
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库