4 常用类
Math类
Math.abs(-3);
Math.random(); // [0,1)
...
String类
- String底层是**private final byte[] value, **任何对于 String 对象的操作不是在原内存地址上修改数据,而是重新指向一个新对象,新地址。即,String不可变。
- 字符串的比较:“==” or “.equals()”? -> “.equals()”.
public static void main(String[] args) {
String s1 = new String("test1"); // 创建的是字符串对象
System.out.println(s1.equals("test1")); // 返回true
System.out.println(s1 == "test1");// 返回false
String s2 = "test2";//创建的是字符串变量
System.out.println(s2.equals("test2")); // 返回true
System.out.println(s2 == "test2"); // 返回true
}
StringBuilder类
可变字符串:StringBuilder,StringBuffer
String、StringBuilder、StringBuffer的区别:
- String类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象销毁。
- StringBuffer类则代表一个字符序列可变的字符串,可以通过append、insert、reverse、setChartAt、setLength等方法改变其内容。一旦生成了最终的字符串,调用toString方法将其转变为String。
- JDK1.5新增了一个StringBuilder类,与StringBuffer相似,构造方法和方法基本相同。不同是StringBuffer是线程安全的,而StringBuilder是线程不安全的,所以性能略高。通常情况下,创建一个内容可变的字符串,应该优先考虑使用StringBuilder。