java之包装类,String类以及常见的一些类
Posted scanner小霸王
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java之包装类,String类以及常见的一些类相关的知识,希望对你有一定的参考价值。
1.8种 包装类型(wrapper)
a)拆箱与装箱(练习题)
此处输出是1.0而不是1的原因,因为double的优先级别较高,三元运算符是一个整体,所以integer要提升精度
ii)
当直接new Integer()是两个不同的对象;
当Integer m定义的时候,底层是Integer.valueOf()这个方法,当值在-128~127之间的时候,直接返回值;当不在这个范围的时候,会new Integer(“值”),就变成了一个对象
ii)
只要存在数据类型,比较的就是值是否相等
2.String类
a)实现的接口
ii)实现serializable可以串行化,可以在网络上传输
ii)实现comparable接口,说明string对象可以比较
b)string一些注意内容
ii)String的采用unicode编码,一个字符占两个字节
ii)final类,不能被其他类继承
ii)本质是一个 char[] 数组,String有private finalchar value [],用于存放字符串内容
ii)value是一个final类型,不可以修改(指的是不能指向新的一个对象,而并非不能修改内容)
eg:(此时的final修饰的value指向一个新的地址 )
final char[] value ={‘a’,‘b’,‘c’};
char[] v2 = {‘h’,i’’,‘j’};
value =v2;
c)两种创建String对象
在内存上的创建方式
ii)String重写的equals()是比较两个数组的值是否一样
习题:
ii)
ii)p1和p2是不同的内存空间,但是String类型的name指向常量池的 地址相同,第三个也是一样
ii)创建了两个对象;s1的对象指向了常量池的“hello”,当s1被修改时候,s1将重新指向常量的“haha”,而不是将原来的hello内容改为haha;
ii)
ii)a =“hello”;b=“abc”;问String c=a+b;创建了多少个对象?3个;
因为toString的方法是调用new String(),所以并不是直接指向常量池中
d)String类常见的方法
String类型效率比较低,每次修改都要开辟空间
3.StringBuffer
a)String vs StringBuffer(存放在堆中char[] value,不是在字符串常量)
b)StringBuffer构造器的使用
c)string与StringBuffer的转换
ii)String转为StringBuffer
ii)StringBuffer 转为String
d)习题:
4.StringBuilder(不是线程安全,比StringBuffer要快)
StringBuffer和StringBuilder均表示可变的字符序列,方法都是一样的
a)三者进行比较
使用原则:
5,一些常见的类的使用
a)Arrays
ii)排序sort()
ii)copyOf()
如果拷贝长度<0时候,就抛出异常NegativeArraySizeException
b)System类
ii)System.arraycopy(src,0,dest,0,3)
c)BigInteger和BigDecimal
ii)场景
BigInteger
BigDecimal
以上是关于java之包装类,String类以及常见的一些类的主要内容,如果未能解决你的问题,请参考以下文章