java
P01214100
这个作者很懒,什么都没留下…
展开
-
ReentrantLock阅读源码,获取锁过程
ReentrantLock阅读源码过程final void lock() { if (compareAndSetState(0, 1)) /**这一步是CAS操作(原子性),多个线程走到这一步(竞争锁),只有一个可以返回true(即只有一个线程会把值修改为1),然后向下运行,其他线程再读的时候就跟期望值0不一致了(刚才那个线程已经设为1了),就会走到else分支了*/ setExclusiveOwnerThread(Thread.currentThread());/** 记录.原创 2021-02-26 11:10:03 · 185 阅读 · 0 评论 -
highestOneBit
highestOneBit这个方法的字面意思:为1的最高位public static int highestOneBit(int i) { // HD, Figure 3-1 i |= (i >> 1); i |= (i >> 2); i |= (i >> 4); i |= (i >> 8); i |= (i >> 16); return i - (i >>> .原创 2021-02-24 17:46:36 · 238 阅读 · 0 评论 -
java反射
一、获取Class类对象的三种方式 //方式一:通过Class.forName(全类名),在只有Class字节码文件的时候可以用 Class cp1=Class.forName("Person"); //方式二:通过 类.class方式获得,在加载进内存后,可使用 Class cpo=Person.class; /...原创 2019-12-06 17:09:21 · 174 阅读 · 0 评论 -
Class类对象
Class类的对象 描述的是 每个java类的字节码文件对应的信息。类加载中的第一步“加载”就是把描述类的数据从Class文件加载到内存,这里的Class文件是一串二进制字节流,内存指的就是方法区中描述字节码—对应信息的一块区域,通过Class类的一个对象来描述。(说白了,Class类对象就是把字节码加载进方法区对应的信息)包括的字段有:这个java类的名字(通过getName()方法...原创 2019-12-05 23:04:40 · 368 阅读 · 0 评论