Java 是一种广泛使用的面向对象的编程语言,其基础知识是面试中常见的考察点。以下是一些关于Java基础面试题的详细解释: 1. **JDK 和 JRE 的区别** JDK(Java Development Kit)是Java开发工具包,它包含了编写、编译和调试Java程序所需的所有工具,包括JRE(Java Runtime Environment)。JRE是Java运行环境,仅包含运行Java程序所需的组件,比如Java虚拟机(JVM)和系统类库。JDK中包含了一个JRE子目录,提供了执行Java程序的基础。 2. **== 和 equals 的区别** 在Java中,`==`用于比较基本类型的值或引用类型的地址。对于基本类型,它比较的是数值是否相等;对于对象,`==`比较的是两个引用是否指向同一个内存地址。而`equals`方法是对象上的,它默认行为与`==`相似,但可以被重写以比较对象的内容。例如,对于`String`类,`equals`会比较字符串的内容是否相同。 3. **final 关键字的作用** `final`关键字有三种主要用途: - 修饰成员变量时,变量一旦初始化后就不能再改变。 - 修饰方法时,该方法不能被子类重写。 - 修饰类时,表示该类为最终类,不能有子类。 4. **Math.round(-1.5) 的结果** `Math.round()`方法进行四舍五入操作。当传入的参数为-1.5时,它先加上0.5变为-1.0,然后进行向下取整,因此`Math.round(-1.5)`的结果是-1。 5. **String 是否为基本数据类型** Java的八种基本数据类型是:`byte`、`short`、`char`、`int`、`long`、`double`、`float`和`boolean`。`String`是一个对象,不属于基本数据类型,而是类。 6. **String 的创建方式** `String str="i"`是通过常量池创建字符串,如果常量池已有"i",则直接引用;否则,创建新对象并放入常量池。`new String("i")`始终会在堆上创建新的对象,即使内容相同。 7. **字符串反转** 要反转字符串,可以使用`StringBuilder`或`StringBuffer`类的`reverse()`方法。例如,`new StringBuilder("hello").reverse().toString()`将返回"olleh"。 8. **String 类的常用方法** - 获取功能:`length()`返回字符串长度,`charAt(int index)`获取指定位置的字符,`indexOf(int ch)`找到字符的第一次出现位置,`substring(int start)`截取从开始位置到字符串末尾的部分,`substring(int start, int end)`截取指定范围的子串。 - 判断功能:`equals(Object obj)`比较内容是否相等,`contains(String str)`检查是否包含子串,`startsWith(String str)`和`endsWith(String str)`检查是否以特定字符串开头或结尾,`isEmpty()`检查是否为空字符串。 - 转换功能:`getBytes()`转为字节数组,`toCharArray()`转为字符数组,`valueOf()`将任意类型转为字符串,`toLowerCase()`和`toUpperCase()`转为小写和大写,`concat(String str)`拼接字符串。 - 其他常用功能:`replace()`方法用于替换字符或子串,`trim()`去除两端空格,`compareTo(String str)`比较字符串的顺序,返回ASCII值的差。 9. **new String("a") + new String("b") 创建的对象数量** 当使用字符串连接操作时,Java会隐式地创建一个`StringBuilder`对象来合并字符串。因此,这段代码会创建: - 对象1:用于连接操作的`StringBuilder`实例。 - 对象2:`new String("a")`。 - 对象3:`new String("b")`。 合并后的字符串会再创建一个`String`对象,但这里不计算在内,因为它是自动创建的。 这些知识点是Java基础面试中常见的问题,理解并掌握它们对于成为一名合格的Java开发者至关重要。在实际面试中,面试官可能会结合这些基础知识提出更深入的问题,以评估候选人的理解和应用能力。
剩余13页未读,继续阅读
- 粉丝: 773
- 资源: 188
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助