Java基础面试必备:String方法、重载与重写解析

需积分: 10 1 下载量 32 浏览量 更新于2024-07-09 收藏 846KB PDF 举报
"Java基础面试题" Java语言是广泛使用的编程语言,其基础知识是面试中常见的考查点。以下是一些关于Java基础的详细知识点: 1. **String类中的方法**: - `split()`:该方法根据给定的正则表达式将字符串分割成一个字符串数组。例如,`"hello world".split(" ")`会返回`["hello", "world"]`。 - `indexOf()`:返回指定字符或子字符串在原字符串中首次出现的索引。如果找不到,则返回-1。 - `append()`:这个方法用于将字符或字符串添加到现有的字符串末尾,创建一个新的字符串。 - `trim()`:它移除字符串两端的空白字符。 - `replace()`:用于替换字符串中指定的字符或子字符串。 - `hashCode()`:返回字符串的哈希值,基于字符串内容计算,常用于哈希表的查找。 - `substring()`:截取字符串的一部分,从指定开始位置到结束位置。 - `equals()`:比较两个字符串是否内容相同。注意,它区分大小写。 - `length()`:返回字符串的长度,即字符数。 - `valueOf()`:将各种数据类型转换为字符串,如`Integer.toString()`。 - `concat()`:将两个字符串连接在一起。 - `compareTo()`:按照字典顺序比较两个字符串。返回负数、零或正数,表示当前字符串小于、等于或大于比较的字符串。 - `compareToIgnoreCase()`:与`compareTo()`类似,但不考虑字符的大小写。 - `contains()`:检查字符串是否包含特定的子字符串。 2. **重载(Overloading)和重写(Overriding)**: - **重载**:发生在同一个类中,方法名相同,但参数列表(参数的数量、类型或顺序)不同。编译器根据传入的参数来决定调用哪个方法。 - **重写**:发生在父类和子类之间,子类提供了一个与父类相同方法名、相同参数列表和返回类型的方法。子类的方法覆盖了父类的同名方法,实现多态性。 3. **`==`与`equals()`的区别**: - `==`:对于基本类型,它比较的是值;对于对象,它比较的是对象在内存中的引用(地址)。所以,当比较两个字符串时,`==`会检查它们是否指向相同的内存位置。 - `equals()`:是Object类中的方法,用于比较对象的内容。对于String类,`equals()`会比较两个字符串的内容是否相等,而不是它们的引用。同时,`equals()`遵循合同,即如果两个对象相等,它们的`hashCode()`也应该相等。 4. **String、StringBuilder和StringBuffer的区别**: - **String**:不可变对象,一旦创建就不能修改。适合少量的字符串操作,因为它的效率高,但不适合大量拼接操作,因为每次修改都会创建新的对象。 - **StringBuilder**:可变对象,不保证线程安全,适用于单线程环境下的字符串拼接,性能优于String。 - **StringBuffer**:也是可变对象,但它是线程安全的,适合多线程环境。尽管线程安全带来了额外的开销,但在多线程环境中,使用StringBuffer能避免线程竞态条件。 以上内容涵盖了Java基础面试中常见的问题,包括String类的方法、方法重载与重写的概念以及String、StringBuilder和StringBuffer的区别。理解和掌握这些知识点对于Java开发者来说至关重要。