final关键字
final关键字,用于修饰变量、方法和类。它的作用如下:
final int num = 10;
public final void printMessage() {
System.out.println("Hello, World!");
}
public final class MyClass {
// 类的定义
}
使用final关键字可以提供一定的安全性和约束,确保变量、方法或类的不可修改性或不可扩展性。
String类
String用于表示字符串,它是不可变的,也就是说一旦创建了一个字符串对象,就不能再修改它的值。我们可以使用String类的方法来操作字符串,例如连接字符串、截取子串、查找字符等。
下面是一些常用的方法:
- length():返回字符串的长度。
- charAt(int index):返回指定索引位置的字符。
- substring(int beginIndex, int endIndex):返回从指定索引开始到指定索引结束的子串。
- concat(String str):将指定的字符串连接到原字符串的末尾。
- indexOf(String str):返回指定字符串在原字符串中第一次出现的索引位置。
- replace(char oldChar, char newChar):将字符串中的指定字符替换为新的字符。
- toUpperCase():将字符串中的所有字符转换为大写。
- toLowerCase():将字符串中的所有字符转换为小写。
以下是一个示例代码,演示了String类的一些方法:
String str = "Hello, World!";
System.out.println("字符串的长度:" + str.length());
System.out.println("索引位置为2的字符:" + str.charAt(2));
System.out.println("从索引位置6开始到索引位置11的子串:" + str.substring(6, 11));
System.out.println("连接字符串:" + str.concat(" Welcome!"));
System.out.println("第一次出现字符'o'的索引位置:" + str.indexOf("o"));
System.out.println("替换字符'l'为'p':" + str.replace('l', 'p'));
System.out.println("转换为大写:" + str.toUpperCase());
System.out.println("转换为小写:" + str.toLowerCase());
输出结果为:
字符串的长度:13
索引位置为2的字符:l
从索引位置6开始到索引位置11的子串:World
连接字符串:Hello, World! Welcome!
第一次出现字符'o'的索引位置:4
替换字符'l'为'p':Heppo, Worpd!
转换为大写:HELLO, WORLD!
转换为小写:hello, world!
为什么用final修饰String
public final class String implements java.io.Serializable, Comparable, CharSequence {
...
}
Java中的字符串是不可变的,这意味着一旦一个字符串对象被创建,它的值就不能被修改。当我们对一个字符串进行操作时,比如拼接、替换等,实际上是创建了一个新的字符串对象,而原来的字符串对象保持不变。这种设计有以下几个好处:
因此,为了保证字符串的不可变性,Java中使用final关键字修饰String类,表示该类不能被继承,从而保证了变量引用的字符串对象是不可变的。这样可以确保字符串的值不会被修改,同时也可以提高字符串的重用性和效率,从而提高程序的安全性和性能。