正则表达式/装箱拆箱

文件到程序 in 输入

程序到文件 out 输出

在这里插入图片描述

String的创建方式

char[] values = {'a','b','c'};
String s1 = new String(value);

每new一次对象,就会创建一个地址值,存在堆中

String s1 = "abc";

这种的创建方式是创建在堆中的常量池里,有高效的效果,如果是第二回创建不会新建值

注意 == 比较的如果是引用类型那么就是地址值

注意:String重写了Object中的toString(),所以可以直接打印字符串的具体内容 String重写了Object中的equals(),所以比较的也是两个字符串的具体内容

2 StringBuilder 与 StringBuffer 使用前提:String提供了丰富的操作字符串的方法,所以操作字符串时还使用String String拼接字符串时使用+进行拼接,效率比较低,所以需要使用工具类 创建方式:StringBuffer sb = new StringBuffer(); StringBuilder sb2 = StringBuilder(); 常用方法:append()拼接效率高

正则表达式

作用: 拿着我们指定好的规则,去判断数据是否符合这个规则

指定规则:String regex = “[0-9]{17}[0-9X]”; 拿着数据与规则做比较:input.matches(regex)–>如果匹配,matches方法返回true 注意:单个斜杠表示转义字符,所以在正则中如果想要表示单个斜杠,需要写双斜杠 至于正则表达式的对照关系,详见笔记中正则速查表

包装类

Java的数据类型只有两大类:8大基本类型与引用类型 包装类是引用类型中的一种,包装类与基本类型一一对应,也有8种 基本类型只能存自己类型的值,没有其他额外的功能 包装类型是对基本类型进行了包装,提供了丰富的功能,包装类型是基本类型的拓展

包装类型Integer的创建方式: 1)Integer i1 = new Integer(5); 没有高效的效果,new一次,创建一个包装类对象 2)Integer i2 = Integer.valueOf(5); 有高效的效果,数据在-128~127的范围内,才有高效的效果 3)Integer i3 = 5; 自动装箱:编译器会把int类型5装箱,变成Integer,底层调用的方法:valueOf(5) 包装类型Double的创建方式: 1)Double d1 = new Double(3.4); 没有高效的效果,new一次,创建一个包装类对象 2)Double d2 = Double.valueOf(3.4);这个也没有高效的效果,只有Integer有 Integer的常用方法:i1.parseInt(“80”);将字符串80转成int类型的80 Double的常用方法:d1.parseDouble(“80”);将字符串80转成double类型的80

自动装箱与自动拆箱:

1)Integer i3 = 5; 自动装箱【基本类型 到 包装类型】: 编译器会把int类型的5装箱,变成Integer类型,底层调用的方法:valueOf(5) 2)int n = i3;自动拆箱【包装类型 到 基本类型】: 编译器会把包装类型的i3中的数据取出来,把这个值赋值给基本类型int 底层调用的方法:i3.intVlaue(); package cn.tedu.api; /本类用于测试自动装箱与自动拆箱/ public class TestBox { public static void main(String[] args) { //1.定义包装类型Integer类型的对象 Integer i1 = new Integer(5); Integer i2 = Integer.valueOf(5);

    //2.现在的方式:
    /*1.自动装箱:编译器会自动把基本类型int 5,包装成对应的包装类型Integer
    然后交给i3来保存,自动装箱底层发生的代码:Integer.valueOf(5);
    valueOf()的方向:int ---> Integer*/
    Integer i3 = 5;//不会报错的,这个现象就是自动装箱
​
    /*2.自动拆箱:编译器会自动把包装类型的i1拆掉“箱子”,变回基本类型数据5
    * 然后交给基本类型int类型的变量i4来保存,底层发生的代码:i1.intValue()
    * intValue()的方向:Integer ---> int*/
    int i4 = i1;//不会报错的,这个现象就是自动拆箱
}

浮点数运算不精确的解决方案:BigDecimal

如果使用一个工具,必须先创建这个类的对象,如果想创建对象,必须先了解它提供了哪些构造方法 创建BigDecimal对象的方式: 1)BigDecimal(double val) :将double类型的数据作为参数,交给BigDecimal对象【不用,因为double本身不精确】 2)BigDecimal(String val) :将String类型的数据作为参数,交给BigDecimal对象【用这个】 注意:double->String直接拼接一个空串“”就可以 使用对象进行加减乘除操作,注意:除法除不尽时会抛出异常,所以需要指定除不尽时保留几位小数以及舍入方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值