Java面试题目涵盖了许多核心概念,包括但不限于访问修饰符、集合框架、多线程、字符串处理、内存管理和面向对象设计原则。以下是对这些知识点的详细解释: 1. **访问修饰符的区别**: - `public`:任何类都可以访问。 - `protected`:在同一包内和子类中可访问。 - `friendly`(默认):在同一包内可访问,不对外公开。 - `private`:仅在当前类中可访问。 2. **集合类的区别**: - `ArrayList` 和 `Vector`:两者都实现了`List`接口。`ArrayList`是非线程安全的,性能较高;`Vector`是线程安全的,但速度较慢,因为它的操作进行了同步。 - `HashMap` 和 `Hashtable`:两者都实现了`Map`接口。`HashMap`是非线程安全的,允许`null`键和值;`Hashtable`是线程安全的,不允许`null`键和值。 3. **哈希函数和对象比较**: - 如果两个对象值相同(`x.equals(y)`为`true`),它们的哈希码必须相同,这是`hashCode()`方法的规定。 - 对象参数传递:Java总是通过值传递,即使是对象。传递的是对象引用的副本,而不是对象本身,但对象的内容可以在方法内部改变。 4. **`switch`语句**: - `switch`不支持`byte`、`long`或`String`类型的表达式,但在Java 7及更高版本中,`switch`可以支持`String`。 5. **方法签名**: - 主方法`main`的正确签名通常是`public static void main(String[] args)`。其他签名可能是错误的,例如`final`或`synchronized`关键字通常不会出现在方法签名中。 6. **常用类、包和接口**: - 常用类:`System`, `ArrayList`, `FileInputStream`, `Thread`, `Socket` - 常用包:`java.io`, `java.util`, `java.sql`, `java.awt`, `javax.servlet` - 常用接口:`Collection`, `Connection`, `Cloneable`, `Comparable`, `Serializable` 7. **`char`型变量与中文字符**: - `char`变量可以存储中文汉字,因为Java使用Unicode编码,每个`char`占据16位,足以表示大部分Unicode字符。 8. **重载(Overloading)和重写(Overriding)**: - 重载是同一个类中方法名相同但参数列表不同的多个方法。 - 重写是子类覆盖父类中具有相同方法名、相同参数列表的方法。重写时,返回值类型可以不同,但必须保持兼容(子类型或父类型)。 9. **Set元素的比较**: - 判断Set中是否存在重复元素通常使用`equals()`方法,比较两个Set是否完全相等;使用`iterator()`遍历并用`equals()`或`==`判断单个元素是否相等。 10. **`equals()`和`==`**: - `==`比较两个对象的引用,看它们是否指向内存中的同一个位置。 - `equals()`比较两个对象的内容,如果它们具有相同的数据,则返回`true`。对于自定义类,通常需要重写`equals()`以实现自定义的比较逻辑。 这些只是Java面试中常见的一部分问题,实际面试可能会涉及更多领域,如异常处理、IO流、网络编程、设计模式等。理解并熟练掌握这些基础概念对于成为一名合格的Java开发者至关重要。
剩余29页未读,继续阅读
- 粉丝: 4
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- js-leetcode题解之158-read-n-characters-given-read4-ii-call
- js-leetcode题解之157-read-n-characters-given-read4.js
- js-leetcode题解之156-binary-tree-upside-down.js
- js-leetcode题解之155-min-stack.js
- js-leetcode题解之154-find-minimum-in-rotated-sorted-array-ii.js
- js-leetcode题解之153-find-minimum-in-rotated-sorted-array.js
- js-leetcode题解之152-maximum-product-subarray.js
- js-leetcode题解之151-reverse-words-in-a-string.js
- js-leetcode题解之150-evaluate-reverse-polish-notation.js
- js-leetcode题解之149-max-points-on-a-line.js