摘要:
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, 阅读全文
摘要:
方式一:使用Iterator的remove()方法 方式二:使用List的remove()方法,注意list.size()的位置 方式三:使用CopyOnWriteArrayList 阅读全文
摘要:
1. 消费端集群消费(负载均衡) 示例代码: /** * Producer,发送消息 * */ public class Producer { public static void main(String[] args) throws MQClientException, InterruptedEx 阅读全文
摘要:
双Master方式: 服务器环境 Helloworld代码示例: /** * Producer,发送消息 * */ public class Producer { public static void main(String[] args) throws MQClientException, Int 阅读全文
摘要:
问:Arraylist 的动态扩容机制是如何自动增加的?简单说说你理解的流程? 答:当在 ArrayList 中增加一个对象时 Java 会去检查 Arraylist 以确保已存在的数组中有足够的容量来存储这个新对象(默认为 10,最大容量为 int 上限,减 8 是为了容错),如果没有足够容量就新 阅读全文