1.String:
1.面试题
/*
String s = new String("hello");
问:如上语句创建了几个对象?
答:2个
第一个:字面量"hello"
---java会创建一个String对象表示字面量"hello",并将其存入常量池
第二个:new String()
---new String()时会再创建一个字符串对象,并引用hello字符串的内容
*/
String s = new String("hello");
String s1 = "hello";
System.out.println("s:"+s); //hello
System.out.println("s1:"+s1); //hello
System.out.println(s==s1); //false,==比较的是地址是否相同
//字符串实际开发中比较相等一般都是比较字符串的内容
//因此我们需要使用equals()方法来比较两个字符串的内容
System.out.println(s.equals(s1)); //equals()比较的是内容是否相同
2.String常用方法:
length():获取字符串的长度(字符个数)
trim():去除当前字符串两边的空白字符
toUpperCase()和toLowerCase():将当前字符串中的英文部分转为全大写/全小写
startsWith()和endsWith():判断当前字符串是否是以给定的字符串开始/结尾的
charAt():返回当前字符串指定位置上的字符------------------根据下标找字符
indexOf()和lastIndexOf():检索给定字符串在当前字符串中的开始位置-------根据字符串找位置
substring():截取当前字符串中指定范围内的字符串
String的静态方法valueOf():将其它数据类型转换为String
3.StringBuilder类:
由于String是不变对象,每次修改内容要创建新对象,因此String不适合做频繁修改操作,为了解决这个问题,java提供了StringBuilder类。
StringBuilder是专门用于修改字符串的一个API,内部维护一个可变的char数组,修改都是在这个数组上进行的,修改速度、性能优秀,并且提供了修改字符串的常见的方法:增、删、改、插
4.StringBuilder常用方法:
append():追加内容
replace():替换部分内容
delete():删除部分内容
insert():插入内容
reverse():翻转内容
补充
StringBuilder和StringBuffer:--------现在不要纠结,学完线程之后再来看就懂了
- StringBuffer:是线程安全的,同步处理的,性能稍慢
- StringBuilder:非线程安全的,并发处理的,性能稍快
getter/setter:
class Point{ //点
private int x;
private int y;
public int getX(){ //getter获取值
return x;
}
public void setX(int x){ //setter设置值
this.x = x;
}
public int getY(){
return y;
}
public void setY(int y){
this.y = y;
}
}
//getter和setter的演示
public class GetterSetterDemo {
public static void main(String[] args) {
Point p = new Point();
p.setX(100); //赋值
p.setY(200); //赋值
System.out.println(p.getX()+","+p.getY()); //取值
}
}