java.lang.Integer源码浅析】的更多相关文章

Integer定义,final不可修改的类 public final class Integer extends Number implements Comparable<Integer> 常量定义 /** * A constant holding the minimum value an {@code int} can * have, -2<sup>31</sup>. */ @Native public static final int MIN_VALUE = 0x8…
基本数据类型的包装类java.lang.Integer是我们频繁使用的一个系统类,那么通过一个示例反应出的几个问题来深入理解一下此类的源码. 需求:实现Integer类型的两个数值交换. package cn.integer; public class Demo { public static void main(String[] args) { Integer a = 1; Integer b = 2; System.out.println("bofore swap a:"+a+&q…
本文对JDK8中的java.lang.Integer包装类的部分数值缓存技术.valueOf().stringSize().toString().getChars().parseInt()等进行简要分析. Integer缓存 先来看一段代码: Integer a1 = Integer.valueOf(13); Integer a2 = Integer.valueOf(13); Integer a3 = Integer.valueOf(133); Integer a4 = Integer.valu…
在java的集合中,List接口继承Collection接口,AbstractList类实现了List接口,在AbstractList中的内部类Itr实现了Iterator接口 ArrayList实现List接口并继承AbstractList类,结构图如下:(图片出自网络) Iterator接口源码: public interface Iterator<E> { boolean hasNext(); E next(); default void remove() { throw new Uns…
注:以下源码均为JDK8的源码 一. 核心属性 基本属性如下: 核心的属性其实是红框中的两个: //从注释也容易看出,一个是集合元素,一个是集合长度(注意是逻辑长度,即元素的个数,而非数组长度) 其中:transient指明序列化时请忽略.  二.构造器 一共有3个构造器: 1.构造指定容量的ArrayList 2.默认构造器 //可以看到,默认初始容量为10(基本属性中的DEFAULT_CAPACITY) 而 DEFAULTCAPACITY_EMPTY_ELEMENTDATA是一个空数组,所有…
StringBuffer是一个线程安全的可变序列的字符数组对象,它与StringBuilder一样,继承父类AbstractStringBuilder.在多线程环境中,当方法操作是必须被同步,StringBuffer内的方法被同步化时,以实现跟在单线程中操作一样的一致性. public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence { //一…
1.为什么Java中1000==1000为false而100==100为true? 这是一个挺有意思的讨论话题. 如果你运行下面的代码 Integer a = 1000, b = 1000; System.out.println(a == b);//1 Integer c = 100, d = 100; System.out.println(c == d);//2 1 2 3 4 你会得到 false true 1 2 基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的.如果…
ThreadLocal类提供线程本地变量,为变量在每个线程创建一个副本,每个线程可以访问自己内部的副本变量. 比如,有这样一个需求,需要为每个线程创建一个独一无二的标识,这个标识在第一次调用ThreadId.get()的时候生成,在随后的调用中不会再改变. public class ThreadId { private static final AtomicInteger nextId = new AtomicInteger(0); private static final ThreadLoca…
StringBuilder是一个可变序列的字符数组对象,它继承自AbstractStringBuilder抽象类.它不保证同步,设计出来的目的是当这个字符串缓存只有单线程使用的时候,取代StringBuffer的.建议使用它而不是StringBuffer,因为它的速度更快. StringBuilder有自己的容量(字符数组),当容量还没有被占满的时候,不必申请新的空间,当容量被占满后,它会自动地扩容. public final class StringBuilder extends Abstra…
子接口:RunnableFuture<V>, RunnableScheduledFuture<V> 实现类:AsyncBoxView.ChildState, ForkJoinWorkerThread, FutureTask, RenderableImageProducer, SwingWorker, Thread, TimerTask. 有一个 void run() 方法,所有实现类必须实现这个方法. 使用场景: 如果一个类的实例想被Thread执行, 那么这个类必须定义定义一个r…