Java基础面试重点:数据类型、重载与重写、equals与==

需积分: 5 0 下载量 133 浏览量 更新于2024-08-05 收藏 44KB MD 举报
"一阶段面试题" 面试题涵盖了Java编程语言的基础知识,包括基本数据类型、数据类型的封装类、方法的重载与重写、对象的比较以及关键字`final`的使用,还有容器类`HashMap`和`Hashtable`的区别。 1. **Java的基本数据类型** Java中的基本数据类型分为数值型、布尔型和字符型: - **数值型**:`byte`(8位)、`short`(16位)、`int`(32位)、`long`(64位)用于整数,`float`(32位)和`double`(64位)用于浮点数。 - **布尔型**:`boolean`只有`true`和`false`两个值。 - **字符型**:`char`(16位)用于存储Unicode字符。 2. **int和Integer的区别** - `int`是Java的基本数据类型,它的默认值是0。 - `Integer`是`int`的包装类,属于引用数据类型,其默认值是`null`。包装类提供了更多的方法,并且可以存储在集合中。 3. **重载和重写** - **重载(Overloading)**:在一个类中,允许存在多个同名方法,但这些方法的参数列表必须不同(参数个数、类型或顺序不同)。这使得我们可以根据传入的不同参数调用相应的方法。 - **重写(Overriding)**:发生在子类和父类之间,子类可以重新定义父类中已有的非私有方法,保持方法名、参数列表和返回类型相同,但可以改变方法体,以实现不同的功能。 4. **==和equals的区别** - `==`运算符用于比较基本数据类型的值(对于对象,它比较的是引用,即两个对象是否指向同一块内存空间)。 - `equals`方法是对象的一个成员方法,用于比较两个对象的内容是否相等。对于字符串,`equals`会比较两个字符串的内容是否相同。 5. **final关键字的作用** - `final`用于修饰类、方法和变量,表示不可变性。 - `final`类不能被继承。 - `final`方法不能被子类重写。 - `final`变量一旦初始化后就不能再改变其值,相当于常量。 6. **HashMap和Hashtable的区别** - **线程安全性**:`Hashtable`是线程安全的,而`HashMap`不是。在多线程环境下,如果需要线程安全,应使用`Collections.synchronizedMap()`将`HashMap`包装成同步的。 - **null值**:`Hashtable`不允许键或值为`null`,而`HashMap`允许。 - **迭代器**:`Hashtable`使用的是旧的`Enumeration`迭代器,而`HashMap`使用的是`Iterator`。 - **性能**:由于线程安全的原因,`Hashtable`的性能通常低于`HashMap`。 以上知识点是Java编程中基础但重要的部分,面试中经常会被问到,理解并掌握它们对于成为一名合格的Java开发者至关重要。