常用类

例子见Github-JavaSE-Day04

基本数据类型的包装类

基本数据类型四类八种:

包装类位于“java.lang”包中,将基本类型封装成一个类,里面包含对应属性和方法。
在这里插入图片描述
注意:

  1. 使用中会涉及自动装箱和拆箱。
    装箱:基本数据类型–>包装类,本质上调用了valueOf()
    拆箱相反。本质上调用了intValue()

  2. 常量池在1.7之后,放置在了堆空间之中

String的使用详解

常量池在1.7之后,放置在了堆空间之中。

创建

String str = “abc”;
String str2 = new String(“abc”);
第一种使用比较多。

String类中对象两种实例化的区别:
1.直接赋值只会开辟一块堆内存空间,且字符串对象可以保存在对象池中以供下次使用;
2.采用构造方法会开辟两块堆内存空间,使用intern()方法后可以手工入池。

字符串的本质
  1. 字符串本质是字符数组或者叫字符序列
  2. String类是一个final类。所以不可以被继承
  3. 使用equals方法比较的是字符数组的每一个位置的值
  4. hashCode方法
    源码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public 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;
    }
    31 = (11111)B,首先要选择一个质数,每次进行乘积的时候,相当于进行一个移位操作。移位运算是比较快的,保证计算哈希值的时候最快的方式。
  5. String是个不可变对象。
    String类中,有private final char value[]。所谓的不可变对象指的是里面的数组的引用不可变,而并不是指数组内容不可变。
常用方法
  1. char charAt(int index)
    返回字符串中第index个字符。
  2. boolean equals(String other)
    如果字符串与other相等,返回true
  3. boolean equalsIgnoreCase(String other)
    如果字符串与other相等(忽略大小写),则返回true
  4. int indexOf(String str)
    返回str第一个字符的下标
  5. lastIndexOf(String str,int fromIndex)
    返回指定子字符串的最后一次出现的字符串中的索引,从指定的索引开始反向搜索
  6. int length()
    返回字符串的长度。
  7. String replace(char oldChar,char newChar)
    返回一个新串,它是通过用 newChar 替换此字符串中出现的所有oldChar而生成的
  8. boolean startsWith(String prefix)
    如果字符串以prefix开始,则返回true
  9. boolean endsWith(String prefix)
    如果字符串以prefix结尾,则返回true
  10. String substring(int beginIndex)
    String substring(int beginIndex,int endIndex)
    返回一个新字符串,该串包含从原始字符串beginIndex到串尾或endIndex-1的所有字符(左闭右开
  11. String toLowerCase()
    返回一个新字符串,该串将原始字符串中的所有大写字母改成小写字母
  12. String toUpperCase()
    返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母
  13. String trim()
    返回一个新字符串,该串删除了原始字符串头部和尾部的空格

StringUtils工具类

字符串工具类,提供一些字符串相关的便捷方法
具体见《StringUtils工具类的使用》

DateUtils工具类

日期操作工具类
具体见《DateUtils工具类的使用》