随笔分类 - 面试题
收集一些面试题
摘要:概述 LinkedHashMap继承自HashMap,实现了Map<K,V>接口。其内部还维护了一个双向链表,在每次插入数据,或者访问、修改数据时,会增加节点、或调整链表的节点顺序。以决定迭代时输出的顺序。 默认情况,遍历时的顺序是按照插入节点的顺序。这也是其与HashMap最大的区别。 也可以在构
阅读全文
摘要:概述 HashMap根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数
阅读全文
摘要:inkedList概述 LinkedList是List和Deque接口的双向链表的实现。实现了所有可选列表操作,并允许包括null值。 LinkedList既然是通过双向链表去实现的,那么它可以被当作堆栈、队列或双端队列进行操作。并且其顺序访问非常高效,而随机访问效率比较低。 注意,此实现不是同步的
阅读全文
摘要:ArrayList概述 ArrayList是一个的可变数组的实现,实现了所有可选列表操作,并允许包括 null 在内的所有元素。每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量也自动增长。自动增长
阅读全文
摘要:AtomicInteger是一个原子操作的Integer的线程安全的类,用来取代Integer在多线程中的使用。 那么AtomicInteger是怎么实现线程安全的呢? 通过查看AtomicInteger的源码可知, 通过申明一个volatile (保证value修改后,在其他线程中可见)类型的变量
阅读全文
摘要:1. Java虚拟机的内存布局(运行时数据区) 参考:https://www.cnblogs.com/lostyears/articles/8984171.html 2. GC算法及几种垃圾收集器 对象生存判断算法有两种:引用计数法 和 可达性分析算法 垃圾收集算法:标记-清除算法、复制算法、标记-
阅读全文
摘要:下面的代码counter1,counter2输出的结果是什么,把第10行放到12行后面,ounter1,counter2输出的结果是什么? 为什么? 1. counter1=1,counter2=0 原因是类初始化的准备阶段,会为静态变量分配内存,并设置默认初始值,此时singleton=null,
阅读全文
摘要:问:Arraylist 的动态扩容机制是如何自动增加的?简单说说你理解的流程? 答:当在 ArrayList 中增加一个对象时 Java 会去检查 Arraylist 以确保已存在的数组中有足够的容量来存储这个新对象(默认为 10,最大容量为 int 上限,减 8 是为了容错),如果没有足够容量就新
阅读全文

浙公网安备 33010602011771号