java final bigd_Java基础知识笔记04(正则表达式,基本类型的包装类,抽象类,关键字final)...

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 }

静态变量保存在方法区类的空间中,只保存一份可以在所有实例中共享的数据

427cae73894d66e6d0e54909cc87efcc.png

对象的加载过程

加载类

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值