常用类

Objects

java7新增的一个工具类 提供一些工具方法来操作对象 这些工具方法大多是"空指针"安全的 比如不能确定一个引用变量是否为null 如果贸然的使用toString方法 可能报空指针异常 但如果使用Objects提供的toSting方法就不会引发异常 只会返回一个"null"字符串

 // 输出null对象的hashCode值 输出0
 System.out.println(Objects.hashCode(objectsTest));
 // 输出一个null对象的toString 输出null
 System.out.println(Objects.toString(objectsTest));
 // 要求objectsTest不能为空 如果objectsTest为空则引发异常 
 System.out.println(Objects.requireNonNull(objectsTest,"不能为null"));
// 如果为空则抛出异常 不为空就赋值
ObjectsTest obj = Objects.requireNonNull(objectsTest,"空");

String,StringBuffer,StringBuilder

String类是不可变类 即一旦一个String对象被创建后 包含在这个对象中的字符序列是不可改变的 直至对象被销毁

StringBuffer 对象则代表一个字符序列可变的字符串 线程安全

StringBuilder 与StringBuffer类似 但线程不安全 如果需要创建一个内容可变的字符串对象 优先考虑StringBuilder

String类是不可变的 String的实例一旦生成就不会再改变了

  //除了使用了3个字符串直接量外 还会额外生成2个字符串量 b 和  h
        String str1 = "h";
        str1 = str1 + "b";
        str1 = str1 + "c";

因为String是不可变的 所以会额外产生很多临时变量 使用StringBuffer或StringBuilder可以避免这个问题

     StringBuilder sb = new StringBuilder();
        sb.append("1");  // sb = 1
        sb.insert(0,"2"); // sb = 2 1
        sb.replace(1,1,","); // sb = 2,1
        sb.delete(1,2);// sb = 21
        sb.reverse(); // sb = 12
        System.out.println(sb.toString());
        System.out.println(sb.capacity());
        System.out.println(sb.length());
posted @ 2020-05-07 08:00  辰梓悦  阅读(110)  评论(0编辑  收藏  举报