2.static(掌握)
什么是static关键字?
它是一个修饰符,代表静态的意思,它可以修饰成员变量和成员方法
static关键字的特点?
被static关键字所修饰的成员变量和成员方法可以被该类下所有的对象所共享
被static关键字所修饰的成员变量和成员方法可以通过类名直接调用
被static关键字所修饰的成员变量和成员方法是随着.class文件的加载而加载的,所以优先于对象存在于内存中
static关键字的注意事项?
static所修饰的方法中,不能使用this关键字
static所修饰的方法中,只能调用static修饰的方法和属性,静态方法只能调用静态方法和静态的成员变量
非静态的成员方法可以调用非静态的成员变量和成员方法,也可以调用静态的成员变量和成员方法
3.静态代码块(目前了解)
什么是静态代码块?
定义在类中,方法外的,由一对花括号括起来的,并且前面带一个static关键字的代码块就叫做静态代码块
static {
xxxooo;
}
静态代码块的特点?
由于静态代码块是被静态修饰的,所以是随着.class文件加载到内存而加载的,由于.class文件只加载一次,所以静态代码块也会只加载一次
什么时候执行,在第一次创建该类对象的时候,会执行一次,之后不管创建多少次该类的对象,静态代码块都不会再执行了
目标:
能够使用String类的构造方法创建字符串对象
String s1 = new String();
String s2 = new String("abc");
byte[] bys = {65,66,67};
String s3 = new String(bys);
char[] chs = {'a','b','c'};
String s4 = new String(chs);
能够明确String类的构造方法创建对象,和直接赋值创建字符串对象的区别
String s = "abc"; //创建了一个对象,s直接指向了堆内存中的常量池中的对象
String s1 = new String("abc");//创建了两个对象,s1直接指向了堆内存中new出来的对象
能够使用文档查询String类的判断方法
equals的使用
boolean b = "abc".equals("aaa");
System.out.println(b);//false
b = "abc".equals("abc");
System.out.println(b);//
能够使用文档查询String类的获取方法
char ch = "abcde".charAt(1);
System.out.println(ch);//b
String s = "abc".concat("ccc");
System.out.println(s);//abcccc
int i = "abcde".indexOf("bc");
System.out.println(i);//1
int len = "abc".length();
System.out.println(len);//3
String s = "abcde".replace("abc","aaa");
System.out.println(s);//aaade
String[] strs = "abc_def_ghi".split("_");
System.out.println(Arrays.toString(strs));
String s = "abcde".substring(1);
System.out.println(s);//bcde
String s = "abcde".substring(1,2);
System.out.println(s);//b
能够使用文档查询String类的转换方法
//如何将字符串转换成一个字节数组
byte[] bys = "abcde".getBytes();
//如何将字符串转换成字符数组
char[] chs = "abcde".toCharArray();
//如何将一个字符数组转换成字符串
String s = new String(chs);
//如何将一个字节数组转成字符串
String s = new String(bys);
|
|