`
文章列表
一,简介         修饰变量,用于标明该变量不用序列化到字节流中。         static class User implements Serializable{ private static final long serialVersionUID = 1L; private String username = null; private transient String password = null; //使用 transient 关键字标明该变 ...
一,案例情景       /** Integer案例**/ Integer i1 = 128; Integer i2 = 128; Integer i3 = 127; Integer i4 = 127; System.out.println(i1 == i2);//false System.out.println(i3==i4); //true    /** Long案例**/ Long l1 = 128L; Long l2 = 128L; Long l3 = ...
一,区别介绍        对于引用类型 == 比较的是引用的地址是否相等。即两个变量是否指向同一个内存空间。对于基本数据类型byte,short,int,long,float,double,boolean,char(8种基本数据类型),则是比较的值(即内容)相等。        equals 用于比较对象内容是否相等。 二,Object类中的equals方法      源码: public boolean equals(Object obj) { return (this == obj);//Object中默认是比较引用地址是否指向同一内存空间 }     ...
一,深拷贝与浅拷贝的区别        对于引用类型类型变量,深拷贝是对变量所指向实例的完全拷贝,而浅拷贝则只是对该变量引用地址进行拷贝。 二,深拷贝与浅拷贝的实现          浅拷贝:         深拷贝:     三,备注       Object中的clone()方法只是对实例进行浅拷贝,如果要实现深拷贝,必须对其进行重写。而且该方法能够识别出实例的具体类型,所以上述的强制转换不会出错!。java串行化实现深拷贝比较耗时。        
 在JDK中提供了一些原子操作类: java.util.concurrent.atomic原子操作。       对于原子类变量的操作是不会存在并发性问题的,不需要使用synchronized关键字额外的实现线程同步。它底层自身的实现即可保证变量的可见性以及操作的原子性。一般我们可以使用AtomicInteger,AtomicLong等实现计数器等功能,利用AtomicBoolean实现标志位等功能。    实现线程安全的常见两种机制: 加锁机制(常见synchronized和
Global site tag (gtag.js) - Google Analytics