### 动力节点老杜Java基础入门学习教程分享——常用类 #### String 类 - **不可变性**:`String` 类是不可变的,这意味着一旦一个 `String` 对象被创建,它的值就不能被更改。例如,如果你有一个 `String s = "hello";` 并试图更改它为 `"hello world"`,实际上会产生一个新的 `String` 对象。 - **内存存储位置**: - **编译期**:使用双引号直接赋值的字符串会被放在方法区的字符串常量池中。 - **运行时**:对于运行时动态创建的字符串,如通过字符串连接操作生成的新字符串,它们会被放置在堆中。如果字符串池中已经有了相同的字符串,就不会再次创建。 - **实例创建**: - `String s1 = "abc";`:字符串 `"abc"` 被放在字符串常量池中。 - `String s2 = new String("abc");`:首先检查字符串池中是否有 `"abc"`,如果有,则不会在字符串池中创建;然后在堆中创建一个新的 `String` 对象。 - **比较**:为了比较字符串的内容而不是它们的引用,应该使用 `equals()` 方法而不是 `==`。 - **面试题解析**:以下代码创建了几个对象? ```java String s1 = "abc"; String s2 = new String("abc"); String s3 = new String("abc"); ``` 解析:创建了三个对象,其中两个位于堆中(`s2` 和 `s3`),一个位于字符串常量池中。 - **常用方法**: - `endsWith()`:检查字符串是否以特定后缀结尾。 - `startsWith()`:检查字符串是否以特定前缀开头。 - `equals()`:比较字符串的内容。 - `equalsIgnoreCase()`:忽略大小写比较字符串。 - `indexOf()`:查找指定字符的位置。 - `lastIndexOf()`:查找指定字符最后一次出现的位置。 - `length()`:获取字符串长度。 - `replaceAll()`:替换字符串中的内容。 - `split()`:根据指定规则分割字符串。 - `substring()`:提取子串。 - `trim()`:去除字符串首尾空白字符。 - `valueOf()`:将其他类型转换为字符串。 - **注意事项**:由于 `String` 是不可变的,频繁进行字符串拼接可能导致内存浪费。应考虑使用 `StringBuilder` 或 `StringBuffer`。 #### StringBuffer 和 StringBuilder - **StringBuffer**:类似于 `String` 的可变版本,允许对字符串进行修改。所有方法都是同步的,因此是线程安全的,但效率较低。 - **StringBuilder**:与 `StringBuffer` 类似,但方法是非同步的,适用于单线程环境,效率更高。 #### 基本类型对应的包装类 - **概述**:基本类型的包装类提供了一些额外的功能,如转换、格式化等。所有包装类都是 `final` 的,不能继承。 - **类层次结构**: - 大多数包装类都提供了 `valueOf()` 和 `parseXXX()` 方法。 - 包装类通常也提供了一系列转换方法,如 `byteValue()`, `shortValue()`, `intValue()`, `longValue()`, `floatValue()`, 和 `doubleValue()`。 - **JDK 5.0 新特性**:在 JDK 5.0 之后,可以直接将基本类型与包装类进行混合运算,无需显式转换。例如: ```java Integer i = 10 + 5; // 直接运算 ``` - **包装类与基本类型**:基本类型和它们对应的包装类之间的自动装箱和拆箱机制使得代码更加简洁。例如,`int` 可以自动转换为 `Integer`,反之亦然。 #### 日期相关类 - **Date**:表示特定的时间点。 - **Calendar**:高级的日期时间处理工具。 - **SimpleDateFormat**:用于格式化和解析日期。 #### 数字相关类 - **BigInteger**:用于处理非常大的整数。 - **BigDecimal**:用于处理非常大的小数。 - **Math**:提供数学运算方法。 #### Random 类 - **概述**:`Random` 类用于生成伪随机数。 - **构造函数**:`Random()` 创建一个新的随机数生成器。 - **方法**: - `nextInt()`:返回一个介于 `0`(包括)和指定值(不包括)之间的随机整数。 - `nextDouble()`:返回一个介于 `0.0`(包括)和 `1.0`(不包括)之间的随机 `double` 值。 #### Enum 枚举 - **概述**:枚举类型是 Java 5 引入的一种特殊类型,用于定义一组固定的常量。 - **定义**: ```java public enum Color { RED, GREEN, BLUE; } ``` - **使用**:枚举类型可以作为方法参数或返回值类型,也可以使用 `switch` 语句。 本文介绍了 Java 编程语言中一些常用的类,包括 `String`、`StringBuffer`、`StringBuilder`、基本类型的包装类、日期类、数字类、`Random` 类以及枚举类型。这些类和接口是 Java 程序员经常使用的工具,了解它们的基本特性和用法对于开发高质量的应用程序至关重要。
剩余16页未读,继续阅读
- 粉丝: 42
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助