Java面试必备:基础陷阱与核心知识点解析
需积分: 10 2 浏览量
更新于2024-10-18
收藏 38KB DOC 举报
"java陷阱--面试(题集)杂谈"
面试是评估技术能力的重要环节,而Java面试往往侧重于基础知识的考察。以下是一些常见的Java面试题及其详细解答:
1. **final, finally, finalize的区别**:
- `final` 是一个修饰符,用于变量、方法和类,表示不可变或不可重定义。
- `finally` 用于异常处理,无论是否发生异常,finally块中的代码总会被执行。
- `finalize` 是Object类的一个方法,用于对象销毁前进行清理工作,但不保证一定会被调用,且不推荐直接使用。
2. **匿名内部类** 可以直接继承其他类或实现接口,但只能做一次,并且没有名字,通常用于简化代码和创建回调函数。
3. **StaticNestedClass和Inner Class**:
- StaticNestedClass 是静态嵌套类,它不持有对外部类的引用,可以直接实例化,类似于普通类。
- Inner Class(非静态内部类)与外部类有紧密关系,持有对外部类的隐式引用,需要外部类实例才能创建。
4. **& 和 && 的区别**:
- `&` 是位运算符,对两个操作数的每一位进行按位与操作;在布尔表达式中,`&`始终会计算两边的操作数。
- `&&` 是逻辑与运算符,只有当左侧表达式为真时,才会评估右侧表达式,用于短路逻辑判断。
5. **HashMap和Hashtable的区别**:
- HashMap 不是线程安全的,允许null键和null值,迭代时可能会有并发修改问题。
- Hashtable 是线程安全的,不允许null键和null值,适用于多线程环境。
6. **Collection和Collections的区别**:
- Collection 是接口,是所有单列集合的父接口。
- Collections 是工具类,提供了一系列静态方法,用于操作集合,如排序、查找、填充等。
7. **assert** 用于断言,用于在开发阶段检查程序的正确性,生产环境中默认关闭,通过 `-enableassertions` 或 `-ea` 开启。
8. **GC(Garbage Collector)** 是Java的内存管理机制,自动回收不再使用的对象以释放内存,避免内存泄露。
9. **Strings = new String("xyz"); 创建了几个StringObject?**
在Java中,创建字符串时会创建一个新的对象,所以这里创建了两个对象:一个在常量池,一个在堆。
10. **Math.round()** 方法:
- Math.round(11.5) 等于 12,因为Math.round()会将浮点数四舍五入为最接近的整数。
- Math.round(-11.5) 等于 -11,同样遵循四舍五入规则。
11. **short s1 = 1; s1 = s1 + 1; 与 s1 += 1的区别**:
- 第一句需要先将s1转换成int类型,然后相加,再赋值回short,可能导致编译错误。
- 第二句是复合赋值运算符,编译器会自动处理类型转换,通常不会出错。
12. **sleep() 和 wait()**:
- sleep() 是Thread类的方法,使当前线程睡眠指定时间,不会释放锁。
- wait() 是Object类的方法,用于线程间协作,使线程进入等待状态并释放持有的锁。
13. **Java 没有 goto 语句**,这是为了避免复杂的控制流,提高代码可读性和维护性。
14. **数组的 length() 和 String 的 length()**:
- 数组没有 length() 方法,但可以通过 `.length` 访问长度。
- String 有 length() 方法,返回字符串的字符数量。
15. **Overload 和 Override**:
- Overload(重载)是指在同一个类中,方法名相同但参数列表不同(参数类型、数量或顺序不同)的方法。
- Override(重写)是指子类中定义的方法与父类方法同名,且参数列表完全相同,用于覆盖父类的方法。
16. **Set里的元素不能重复**,区分重复通常通过equals()和hashCode()方法,重写这两个方法可以自定义元素的比较逻辑。
面试题的多样性反映了Java语言的复杂性和深度,理解并熟练掌握这些基础概念对于成为一名优秀的Java开发者至关重要。在面试中,清晰、准确地回答这些问题不仅能展示你的技术功底,也可能直接影响到你是否能成功获得心仪的工作机会。
2021-11-19 上传
2023-06-09 上传
2023-07-27 上传
2023-08-26 上传
2023-07-27 上传
2023-06-11 上传
2023-06-02 上传
Error creating bean with name 'JWTFilter': Unsatisfied dependency expressed through field 'service';
2023-08-26 上传
2023-07-28 上传
ff861
- 粉丝: 2
- 资源: 25
最新资源
- 磁性吸附笔筒设计创新,行业文档精选
- Java Swing实现的俄罗斯方块游戏代码分享
- 骨折生长的二维与三维模型比较分析
- 水彩花卉与羽毛无缝背景矢量素材
- 设计一种高效的袋料分离装置
- 探索4.20图包.zip的奥秘
- RabbitMQ 3.7.x延时消息交换插件安装与操作指南
- 解决NLTK下载停用词失败的问题
- 多系统平台的并行处理技术研究
- Jekyll项目实战:网页设计作业的入门练习
- discord.js v13按钮分页包实现教程与应用
- SpringBoot与Uniapp结合开发短视频APP实战教程
- Tensorflow学习笔记深度解析:人工智能实践指南
- 无服务器部署管理器:防止错误部署AWS帐户
- 医疗图标矢量素材合集:扁平风格16图标(PNG/EPS/PSD)
- 人工智能基础课程汇报PPT模板下载