Day8
1.获取数据封装进对象中
2.包裹类
字符串转整数:1.parseXxx(); 2.valueOf()
数值转字符串:1.toString
架起 基本数据类型 和引用数据类型 沟通的桥梁
解决的问题 : 字符串 和 对应类型之间 的转换问题
Integer:
String str = "123";
int x = Integer.parseInt(str); //-->字符串转整数(parse-->解析)
Integer.valueOf(str); //-->字符串转整数
Integer.toString(123); //-->数值转字符串
八个基本数据类型都有对象得包裹类
特殊:int 和 Integer
特殊:char 和 Character
byte 和 Byte
short 和 Short
long 和 Long
float 和 Float
double 和 Double
boolean 和 Boolean
补充:
最大值,最小值,转换进制
3.StringBuilder系列
在频繁进行字符串拼接时,不建议使用原始的字符串
String str = "abc";
str=str+"bb"+"cc";
str--->abcbbcc
StringBuilder 线程不安全: (大家一窝蜂进入) 块
StringBuffer 线程安全: (井然有序的进入) 慢
StringBuilder和StringBuffer内部的字符是可以改变的
char[] value:底层也是一个char数组,并增加了链式的理念。
但与String最大的区别是,它没有final修饰。
4.StringBuilder底层原理
4.1所用到的接口
4.2SB的默认长度是16
super调用父类的长度16,再append追加一个长度,即可扩容。
append()方法测试
重写调用方法,链式结构,即在原有基础上进行修改,并再返回去
4.3 StringBuilder的储存
StringBuilder的储存是char数组,且没有fianl修饰,即可以扩容
赋内容,16以内即可直接赋用
对比 :String内的char数组储存则有final,即不可变!在这里插入图片描述
4.4StringBuilder的执行判断
4.4.1先判断字符串是否为空,如果是空,则令str为null空串
4.4.2定义新增字符串的长度len
4.4.3确定他的容量是否在范围内,count是目前存的多少个字符+len新增的多少个字符,如果超出了长度则就会扩容。
4.4.4getChars()方法:从起始位置到结束位置,从count的位置开始插入到新的数组。
4.5StringBuilder的常用方法
链式的方法调用方式,把其自身返回回去,供我们使用
对比:
setCharAt(位置,‘字符’): 替换的是字符
replace(起始位置,末尾位置,“字符串”): 替换的是字符串
4.6StringBuilder的底层原理总结
StringBuilder
内部结构
char[] value; 用来存数据信息
int count; 我存了几个字符
初始的容量 16;
value数组长度 16;
调用super.append(str);
判断字符输入是否在范围内并返回