9.正则表达式
一般用来判断用户的输入内容是否符合格式要求
matches()字符串的方法,用来判断是否匹配
1 if(s.matches(regex)) {}
split(正则):用匹配的子串来拆分字符串
1 String s = "aaa,bbb,ccc";2 String[] a = s.split(",");
replace(正则,子串)替换所有匹配的子串
10.基本类型的包装类
把基本类型当做对象来使用
byte – Byte
short – Short
int – Integer
long – Long
float – Float
double – Double
char – Character
boolean – Boolean
1. 数字父类Number
子类:Byte,Short,Integer,Long,Float,Double,BigDecimal,BigInteger
取出基本类型值的方法
byteValue(),shortValue(),intValue(),longValue(),floatValue(),doubleValu()
2. Intger类
创建Integer对象: a= { value:6}
Integer a = new Integer(6);
Integer a = Integer.valueOf(6);
Integer 类中存在256个Integer缓存对象,封装-127到128;如果访问指定范围内的值,会访问缓存对象,如果超出范围,会新建对象。
3. Integer类的方法
字符串解析成int
Integer.parseInt();Byte.parseByte()……
Integer.toBinaryString() 转成二进制字符串
Integer.toOctalString() 转成八进制字符串
Integer.toHexString(255) 转成十六进制字符串
4. BigDcimal和BigInteger 类
BigDcimal精确的浮点数运算
BigInteger 超大的整数运算
创建对象:
BigDecimal bd = BigDecimal.valueOf(2);
方法:
add(BigDecimal bd)
subtract(BigDecimal bd)
multiply(BigDecimal bd)
divide(BigDecimal bd)
divide(BigDecimal bd,保留位数,舍入方式)
setScale(保留位数,舍入方式)
5. 自动装箱,自动拆箱
基本类型值,自动装箱成包装对象
1 Integer a = 6; 编译器编译成: Integer a = Integer.valueOf(6);
自动拆箱(自动拆箱要注意null值)
1 int i = a; 编译器编译成: int i = a.intValue();
11.抽象类
半成品类,没有完成的类;抽象方法:没有代码,只有方法的定义,抽象类不能创建实例,主要用来被继承。
1 public abstract void f();
包含抽象方法的类一定是抽象类
1 public abstract void f();
抽象方法的作用:
作为通用方法,在父类中定义;要求子类,必须实现这个方法。
1)抽象类可以有自己的构造方法
2)抽象类可以有具体的方法
3)包含抽象方法的类一定是抽象类,必须使用abstract关键字修饰,这个方法必须由子类来实现。
4)抽象类不能使用new关键字来创建实例
5)当一个类中只要有一个抽象方法,这个类就必须是抽象类
6)抽象类可以定义实例变量和静态变量以及常量
7)抽象类可以再继承抽象类,也可以继承普通的类
12.关键字 final
内存地址不可变,可以修饰常量、类、方法
1. final 常量:
值不可变,但引用类型因为保存的是地址,所以内容可以变。
final Point a = new Point(3,4);
a.x = 30;//对
a.y = 40;//对
2. final 方法
不能在子类重写,但可以被继承。;final不能用于修饰构造方法,父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
3. final 类
不能被继承,没有子类
Static — 静态 共享的数据
静态成员属于类,而不属于实例
静态成员
用类来调用静态成员 Soldier.count
实例成员
用实例来调用实例成员 s1.id
工具方法
Math.Random() Arrays.toString() String.valueOf()
静态方法中不能直接调用实例的成员(非静态),只能用实例调用
1 classA {2 public static voidmain(String[] args) {3 f();//静态调静态
4 }5 static voidf() {6 g();//错,静态不能直接调用非静态
7 A a = newA();8 a.g();//只能用实例调用
9 }10 voidg(){11 }12 }
静态初始化块
1 classA {2 static{3 静态初始化块4 类被加载时,只执行一次5 }6 }
静态变量保存在方法区类的空间中,只保存一份可以在所有实例中共享的数据
对象的加载过程
加载类
1.加载父类,为父类静态变量分配内存 – 后台执行不可见
2. 加载子类,为子类静态变量分配内存
3. 执行父类静态变量的赋值运算,和静态初始化块
4. 执行子类静态变量的赋值运算,和静态初始化块
新建实例
5. 新建父类实例,为父类实例变量分配内存
6. 新建子类实例,为子类实例变量分配内存
7. 执行父类的实例变量赋值运算
8. 执行父类的构造方法
9. 执行子类的实例变量赋值运算
10. 执行子类的构造方法
————————————————
版权声明:本文为CSDN博主「iswitched」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44873106/article/details/89787021