今天学了常用类
比如包装类,他就是把八大基础类型封装到一个类中,并且提供方法和属性,这样会更方便快捷来操作基本数据类型,不过包装类的出现并不是取代基本数据类型,也没有那个能力。
Object是老大
Boolean和Number和Character是老二
而Number又分别有(Byte)(short)(integer)(long)(float)(double)
Number是他们的父类,提供把包装类转化成基本数据类型的方法,比如(xxxxValue)
2.int和Integer和String之间可以相互转换
3.Comparable是一个接口,他的作用是比较大小并且强行对每个类的对象进行自然排序
例子:Comparable 定义了a.compareTo(b),返回值表示
a.compareTo(b) 返回值 排序
a < b 负整数 升序
a = b 0 相等
a > b 正整数 降序
4.还学了自动装箱和自动拆箱,有一点要注意,就是JDK1.5才出现的,并且不要频繁使用自动拆装箱
自动装箱(auto-boxing)
把基本数据类型自动转化成对象的包装类的过程称为自动装箱
自动拆箱(auto-unboxing)
把包装类自动转化成对于的基本数据类型的过程称为自动拆箱
5.String
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的对象。
字符串本质上是一个字符数组,它们的值在创建之后不能更改,所以字符串是常量;
并且因为String的对象是不可变的,所以可以共享
6.CharSequence 接口把字符串看出一个可读序列,提供了charAt(index)获取指定索引处的字符;
length() 字符数组或者字符串的长度。
7.格式化字符串(浮点的意思其实就是小数点)
注意:系统会默认的字符集是(GBK)
%d 格式化整形
%f 格式化浮点型
%.nf 格式化浮点型四舍五入保留n为小数,
%c 格式化字符
%s 格式化字符串
8. Stringbuffer的意义
StringBuffer是字符的可变容器。可以在程序运行过程中向容器中添加、删除、修改字符。
StringBuffer 本质上是一个字符数组的包装类,并提供了很多方法向这个字符数组中添加、删除、修改字符。
并且Stringbuffer是线程安全的
Stringbuffer的默认字符数组的长度是16,如果你要超过16,那也行,他会自动增加容量给你,可是他扩容的规则是:当前容量*2+2的,所以有时候可能会浪费很多空间,但是如果未来不再向这个数组中添加字符,那可以通过trimtosize来优化他,比如给你的空间是34,你只用了17,他就会把多余的给清除,但是切记,是未来确定不再添加字符才进行的操作,不然到时候又要重新申请空间,久的空间又丢了
StringBuffer与StringBuilder区别(面试题经常有)
StringBuffer 是线程安全的,执行效率低,JDK1.0出现 (多线程)
StringBuiler 就是为了缓解执行效率低而产生的,但线程不安全。JDK 1.5出现 (单线程)