1. String
包:java.lang
创建的两种方法:
1. 直接将字面值字符串赋值给String对象
String s = "HelloWorld";
2. 通过String类的构造方法,创建String对象
String s2 = new String("HelloWorld");
String s3 = new String(new char[3]); //相当于把char类型数组,转成字符串
String s4 = new String(new byte[3]); //相当于把byte类型数组,转成字符串
特点:
1. 字符串不可变;
2. 数据共享
3. 字符串的底层,就是一个char类型的数组。char类型数组的底层byte类型的数组
== :
基本数据类型:比较数值
引用数据类型:比较地址值
注意:如果字面值字符串直接赋值,那么这个字符串在字符串常量池中。
如果是new出来的字符串,在堆内存;
如果想要比较两个字符串是否相等,那么就是equals方法比较,而不是用==号比较;
常用方法:
boolean equals(Object obj); 比较两个字符串是否完全相同
Object是所有引用数据类型的祖宗类!超级父类!
boolean equalsIgnoreCase(String str); 比较两个字符串是否相同,不区分大小写
int length(); 返回字符串的字符个数
String concat(String str): 就是字符串拼接 +
char charAt(int index): 返回指定索引处的字符
int indexOf(String s); 返回指定字符串在原字符串的第一次出现的索引位置
String substring(int index); 将原字符串从index索引开始截取,直到字符串末尾。并以新字符串形式返回
String substring(int start,int end); 将原字符串从start索引开始,直到end索引结束,并以新字符串返回
char[] toCharArray(); 将字符串转成字符数组
byte[] getBytes(); 将字符串转成字节数组
String replace(String oldStr,String newStr); 将原字符串中的oldStr,全部替换成newStr,并以新的字符串返回
String[] split(String s); 按照指定字符对原字符串进行切割,并把切割后的元素存入字符串数组中返回
toUpperCase() 将字符串英文转为大写
toLowerCase() 将字符串英文转成小写
2. static 静态
static 修饰成员变量的特点:【数据共享】
在某个类中的成员变量,如果该变量需要被所有对象共享的话,那么就可以用static修饰;
static 修饰成员方法的特点:可以通过【类名直接调用】,不需要创建对象
当某个类的成员方法,方法体不需要使用到成员变量,却功能与对象无关,就可以使用静态修饰;
静态方法通常什么时候使用呢?
在工具类中; 数组工具类:全部都是操作数组的方法;
静态的访问特点:
静态可以访问静态成员,不能访问非静态成员;
非静态随意玩;
原因:
静态和非静态成员不是同一时期产物,静态要优先于非静态(对象)存在;
类名.方法名(); 还没有对象存在,而非静态的所有成员,都属于对象;
static代码块:
类中:
static {
//给静态成员变量赋值
}
面试题:
1. 构造代码块
{
/*
就是抽取构造方法中的共性内容;
每调用构造方法的时候,都会执行一次;
*/
}
2. 静态代码块
static {
//给静态成员赋值的
//类加载进内存的时候,只执行一次 JDBC 加载数据库驱动
}
3. 局部代码块
方法(){
{
//限制局部变量的生命周期
}
}
博哥友情赞助
|
|