• 《疯狂Java讲义》(二十一)---- 常用类


    • Object类
    class Address {
        String detail;
        public Address(String detail) {
            this.detail = detail;
        }
    }
    
    class User implements Cloneable {
        int age;
        Address address;
        public User(int age) {
            this.age = age;
            address = new Address("Shanghai");
        }
        
        public User clone() throws CloneNotSupportedException{
            return (User)super.clone();
        }
    }
    public class CloneTest {
    
        public static void main(String[] args) throws Exception {
            User u1 = new User(29);
            User u2 = u1.clone();
            System.out.println(u1 == u2);
            System.out.println(u1.address == u2.address);
        }
    
    }

    Object类的clone只是浅复制,不会对引用类型的Field值所引用的对象进行克隆,如果需要进行深复制,需要自己进行递归克隆。

    • Objects类

      是一个工具类,它提供了一些工具方法来操作对象,这些工具方法大多是空指针安全的。

    import java.util.Objects;
    
    public class ObjectsTest {
    
        static ObjectsTest obj;
        public static void main(String[] args) {
            System.out.println(Objects.hashCode(obj));
            System.out.println(Objects.toString(obj));
        // 要求obj不能为null,如果为null,抛出空指针异常
        // 主要用来对方法形参进行输入校验
    System.out.println(Objects.requireNonNull(obj,
    "obj cannot be null")); } }
    • String/StringBuffer/StringBuilder

      StringBuffer是线程安全的,StringBuilder没有实现线程安全,所以性能高。

    • Math类

      完成复杂运算的工具类。

    • ThreadLocalRandom和Random

      Random用于生成伪随机数

      ThreadLocalRandom类是Random的增强版,在并发访问的环境下,使用ThreadLocalRandom来代替Random可以减少多线程资源竞争。

      ThreadLocalRandom和Random都比Math的random方法提供了更多的方式来生成各种伪随机数,浮点类型的,整型的,还可以指定生成随机数的范围。

    • BigDecimal类

      创建BigDecimal对象时,不要直接使用double浮点数作为参数来调用BigDecimal的构造器,否则会发生精度丢失的问题。

  • 相关阅读:
    LeetCode--342--4的幂
    LeetCode--326--3的幂
    python3-
    LeetCode--303--区域和检索
    LeetCode--292--Nim游戏
    《Cracking the Coding Interview》——第16章:线程与锁——题目6
    《Cracking the Coding Interview》——第16章:线程与锁——题目5
    《Cracking the Coding Interview》——第16章:线程与锁——题目4
    《Cracking the Coding Interview》——第16章:线程与锁——题目3
    《Cracking the Coding Interview》——第16章:线程与锁——题目2
  • 原文地址:https://www.cnblogs.com/IvySue/p/6347691.html
Copyright © 2020-2023  润新知