20201224-禹娜

编码:将字符序列转换为字节序列。

final Charset utf8Charset = Charset.forName( "UTF-8" );
String name="可妮兔";
byte[] name1=name.getbByte(utf8Charset)
System.out.println(Array.toString(name1));

解码: 将字节序列转换为字符序列。

byte bytes[]={104, 101, 108, 108, 111};
String s=new String(bytes);
System.out.println(s);

创建一个String实例,就会有value,coder(被final修饰的),hash这几个变量。value中存放字节序列,coder和hash的默认值为0,hash的值一旦确定后就不能修改了。

不可变类

被final修l饰的类是最终类,最终类不能有子类。

被 final 修饰的 变量 是 最终变量 ,取值在初始化之后不可更改。

不可变对象 Decimal d = new Decimal( 200 );

intern()方法

intern方法返回的是String字符串对象的规范化表达式,就是用变量直接指向字符串常量池中的String实例。

当调用intern方法时,String常量池中先寻找有没有相应的String实例,如果没有,就将当前已有的String实例添加到String常量池中,并返回该实例的地址。

StringBuffer

StringBuffer 类 直接继承了 AbstractStringBuilder ( 从 JDK 1.5 开始 )

StringBuffer 类 是 最终类 ( final class )

StringBuffer 实例 中的 实例变量 是可变的

StringBuffer 和 StringBuilder 都没有重写 Object的 equals 方法

StringBuffer类提供的方法:to String()方法。append()方法,insert()方法,length()方法,indexOf( )方法,reverse()方法。deleteCharAt( )方法,setCharAt( )方法。

String,StringBuffer,StringBuilder的对比

String对象时不可改变的对象,在每次对String类型进行改变时,其实是生成了一个新的Sting对象。

StringBuffer是可改变的字符串,每次对StringBuffer对象进行改变时,会对StringBuffer对象本身进行操作,而不是生成一个新的对象,StringBuffer的效率要高于String类。

StringBuilder和StringBuffer的作用完全相同,都是用于创建动态字符串的,区别是StringBuffer类是线程安全的,StringBuilder是单线程的,不能提供同步

作业

https://gitee.com/ke-nina/exercise/tree/master/src/com/kenitu/homework

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1