枚举
1.枚举产生的原因
场景:定义属性的同事如果出现不合逻辑的类型,则需要用枚举类型替代
2.创建枚举
枚举关键字:enum
代码体现:
3.使用枚举
4.实战1
实战2(两种方法一样)
包装
1.包装类型定义
每个基本数据类型在java.lang包都有各自包装类型
例如:int类型的包装类型是Intrger,char类型的包装类型是Character等等
2.包装类型作用
(1)包装类型提供了一堆的方法
例如:可以实现基本数据类型和包装类型之间的转换等等功能
(2)集合中只能存放包装类型的数据,不能存放基本数据类型的数据
3.包装类型的构造方法 实现 基本数据类型转换成包装类型:
4.字符串类型转换成包装类型
(1)除了Character类型以外都可以使用构造器将字符串类型转换成包装类型
(2)String与基本数据类型变量只能做连接运算,使用"+"表示
特例:Boolean中除了"true"(不区分大小写)之外的其他字符串,结果都是false
5.利用包装类型的xxValue()方法 实现 包装类型转换为基本数据类型
6.利用包装类型的toString()方法 实现 将基本数据类型转换成字符串类型
7.利用包装类型的parseXX()方法 实现 将字符串类型转换为基本数据类型(除Character以外)
8.利用包装类型中的valueOf()方法 实现 基本数据类型转换成包装类型
9.利用包装类型中的valueOf()方法 实现 字符串类型转换成包装类型(Character除外)
10.装箱和拆箱
备注:int和integer在属性初始化的时候默认赋的值不一样
int类型的默认属性为0
integer类型的默认属性为null
String
1.String基本语法
(1)定义:存储字符串
(2)语法:String a = “”; String b = new String( ); String c = new String(“xxx”);
(3)包路径:java.lang包
(4)备注:String a = “”; //字符串变量是存储在方法区中(常量池中)
String c = new String(“xxx”); //字符串变量是存储在堆中
2.常用方法length()
length():返回此字符串的长度
备注:数组长度:array.length属性
集合长度:list.size()方法
3.常用方法equals()以及它和==的区别
结论1:比较基本数据类型内容是否相同,使用==
结论2:==比较的是内存地址是否相同,equals比较的是字符串的内容是否相同
结论3:new String(“xx”)开辟一个新的空间,所以会指向堆空间,所以指向不一样
结论4:s1指向方法区,s2指向堆,所以指向不一样
结论5:指向和内容都不一样,所以都是false
结论6:new 一定开辟新的空间
4.equalsIgnoreCase()
定义:将此 String 与另一个 String 比较,不考虑大小写
5.toLowerCase()
定义:String 中的所有字符都转换为小写【大写转小写,小写不变】
6.toUpperCase()
定义:String 中的所有字符都转换为大写【小写转大写,大写不变】
7.concat()
定义:将制定字符串连接到此字符串的结尾
8.trim()
定义:返回字符串的副本,忽略头部空白和尾部空白
9.indexOf(“xx”)
定义:返回指定子字符串在此字符串中第一次出现处的索引,如果未出现则返回-1
10.substring()
substring(int beginIndex)
返回一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
substring(int beginIndex,int endIndex)
返回一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex【能取到的值是左闭右开区间】
11.split()
定义:分隔字符串
StringBuffer
1.StringBuffer产生的原因
场景:String是不可修改的字符串,拼接效率低,所以需要使用StringBuffer替代
2.StringBuffer声明
StringBuffer buffer = new StringBuffer("hello");
3.常用方法 --- append()
将新的字符串拼接到原有的字符串末尾
4.常用方法 --- insert()
在原有的字符串的某个索引位置上插入某个字符串,该索引之后的字符依次往后移一位