韩顺平java基础-13-常用类
常用类
包装类
分类
装箱和拆箱
//自动装箱
int n1 = 100;
Integer integer = int n1;
//自动调用Integer.valueOf(n1)的方法
//自动拆箱
int n2 = integer;
//自动调用integer.intValue的方法
包装类与String转换
包装类型--->String类
- toString()
- String.valueOf()
- i + ""
String类--->包装类型
- Integer()构造器
- Integer.valueOf()
包装类的常用方法
Integer创建对象辨别
- new Integer 不相等
- Integer 判断范围 在-128~127中,是直接从数组中返回。超出范围是new的对象
- ==两边有基本数据类型(int)时,就是判断值是否相等
String类
结构剖析
- 实现了Serializable,说明可以串行化,可以在网络传输
- 实现了Comparable,说明String对象可以比较
- String时final类,不能被继承
- String有属性:char[] 用于存放字符串内容,(final)不可修改(不是指内容不可修改,只是地址不能改变)
String类创建
- 直接赋值
- 调用构造器
区分 == 和 equals:
equals仅仅比较对象的内容,而==还要看地址是否相同。
intern()方法:
intern方法返回常量池对象
关键
搞清楚创建过程中:是直接调取常量池中的变量,还是先在堆中创建对象然后再指向常量池
字符串的特性
String a = "hello" + "abc" --> String a = "helloabc"
只会创建一个对象
编译器会在底层进行优化,判断创建的常量池对象是否有引用指向
String a = "hello";
String b = "abc";
String c = a + b;
String d = "hello" + "abc";
System.out.println(c == d);//False
String类的常用方法
熟悉用法
StringBuffer
与String类比较
- String保存的是字符串常量,里面的值不能更改,
- StringBuffer保存的是字符串变化,里面的值可以更改,不用每次更新地址,效率更高
构造器
- 默认方法,构造大小为16个字符的缓冲区空间
- 指定char[]大小
- 给一个String创建一个StringBuffer对象,大小是String长度+16
StringBuffer类型转换
//1.使用构造器
StringBuffer stringbuffer = new StringBUffer(str);
//并没有改变str类型,而是用stringbuffer接收
//2.使用append方法
stringbuffer = stringbuffer.append(str);
//StringBuffer --》 String
//1.toString方法
stringbuffer.toString();
//2.使用构造器
String s1 = new String(stringbuffer);
StringBuffer方法
- 增 append()
- 删 delete(begin, end) 范围:[begin, end)
- 改 replace()
- 查 indexOf 查找指定字串在字符串第一次出现的索引
- 插入 insert(cur, string) 在索引处插入字符串
- 获取长度 length()
StringBuilder类
基本介绍
- 提供StringBuffer兼容的API,但不保证同步。用在单个线程使用时
对比
- String效率低,复用率高
- StringBuffer 效率高,线程安全
- StringBuilder 效率最高,线程不安全
- 如果我们对String做大量修改,不要使用String。
- 效率:StringBuilder > StringBuffer > String
使用原则
- 如果存在大量修改,使用StringBuffer 或者StringBuilder
- 如果存在大量修改,且是单线程的情况,使用StringBuilder
- 如果存在大量修改,且是多线程的情况,使用StringBuffer
- 如果字符串修改较少,且被多个对象引用,使用String
Math类
常用方法
Arrays类
常用方法
-
toString:遍历数组
-
sort:默认排序,从小到大进行排序;定制排序,匿名内部类重写方法。
-
binarySearch:二分查找,查找元素序号,需要按从小到大的顺序
-
copyOf:数组复制
-
fill:数组填充
-
equals:判断数组是否相等,元素完全一致
-
asList:将数组转换成List
System类
常用方法
- exit:退出程序
- arraycopy:复制数组,更加偏向底层,一般复制数组还是用Arrays.copyOf
- currentTimeMillis:返回当前时间,距离1970-1-1
BigInteger类和BigDecimal
Date类
第一代日期类:Date
SimpleDateFormat类 将Date类格式化
parse() 将格式化后的日期转化成Date
第二代日期类:Calender
没有提供对应的格式化类,需要自己组合输出。
Calender是抽象类,不能直接创建实例,要通过getInstance获取实例
第三代日期类:LocalDate、LocalTime、LocalDateTime
now()方法 获取当前时间
plus()、minus() 对日期进行加减
DateTimeFormatter类 进行格式化
标签:13,java,String,StringBuffer,数组,stringbuffer,Integer,方法,顺平 From: https://www.cnblogs.com/forest-pan/p/17985893