基本数据类型的包装类
基本数据类型四类八种:
包装类位于“java.lang”包中,将基本类型封装成一个类,里面包含对应属性和方法。
注意:
使用中会涉及自动装箱和拆箱。
装箱:基本数据类型–>包装类,本质上调用了valueOf()
拆箱相反。本质上调用了intValue()常量池在1.7之后,放置在了堆空间之中
String的使用详解
常量池在1.7之后,放置在了堆空间之中。
创建
String str = “abc”;
String str2 = new String(“abc”);
第一种使用比较多。
String类中对象两种实例化的区别:
1.直接赋值只会开辟一块堆内存空间,且字符串对象可以保存在对象池中以供下次使用;
2.采用构造方法会开辟两块堆内存空间,使用intern()方法后可以手工入池。
字符串的本质
- 字符串本质是字符数组或者叫字符序列
- String类是一个final类。所以不可以被继承
- 使用equals方法比较的是字符数组的每一个位置的值
- hashCode方法
源码:31 = (11111)B,首先要选择一个质数,每次进行乘积的时候,相当于进行一个移位操作。移位运算是比较快的,保证计算哈希值的时候最快的方式。1
2
3
4
5
6
7
8
9
10
11
12public int hashCode() {
int h = hash;
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
} - String是个不可变对象。
String类中,有private final char value[]
。所谓的不可变对象指的是里面的数组的引用不可变,而并不是指数组内容不可变。
常用方法
- char charAt(int index)
返回字符串中第index个字符。 - boolean equals(String other)
如果字符串与other相等,返回true - boolean equalsIgnoreCase(String other)
如果字符串与other相等(忽略大小写),则返回true - int indexOf(String str)
返回str第一个字符的下标 - lastIndexOf(String str,int fromIndex)
返回指定子字符串的最后一次出现的字符串中的索引,从指定的索引开始反向搜索。 - int length()
返回字符串的长度。 - String replace(char oldChar,char newChar)
返回一个新串,它是通过用 newChar 替换此字符串中出现的所有oldChar而生成的 - boolean startsWith(String prefix)
如果字符串以prefix开始,则返回true - boolean endsWith(String prefix)
如果字符串以prefix结尾,则返回true - String substring(int beginIndex)
String substring(int beginIndex,int endIndex)
返回一个新字符串,该串包含从原始字符串beginIndex到串尾或endIndex-1的所有字符(左闭右开) - String toLowerCase()
返回一个新字符串,该串将原始字符串中的所有大写字母改成小写字母 - String toUpperCase()
返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母 - String trim()
返回一个新字符串,该串删除了原始字符串头部和尾部的空格
StringUtils工具类
字符串工具类,提供一些字符串相关的便捷方法
具体见《StringUtils工具类的使用》
DateUtils工具类
日期操作工具类
具体见《DateUtils工具类的使用》