java
exrermeJ
这个作者很懒,什么都没留下…
展开
-
JAVA集合类了解吗?简单介绍一下
JAVA集合类主要分为两大体系:Collection和Map体系。其中Collection又派生出List、Set、Queue等三大体系。 其中,List主要用来存放一些有序、可重复的元素;主要实现类有:ArrayList、LinkedList、Vector和Stack。 ① ArrayList是基于数组实现的,增删改比较慢,查询比较快。 ② LinkedList是基于链表实现的,与ArrayLi...原创 2019-05-30 15:40:41 · 133 阅读 · 0 评论 -
进程、线程、多线程相关总结
一、说说概念 1、进程(process) 狭义定义:进程就是一段程序的执行过程。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 简单的来讲进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域...转载 2019-05-30 19:07:28 · 66 阅读 · 0 评论 -
面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别
下面直接来干货,先说这三个Map的区别: HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize2+1 计算index的方法:index = (hash & 0x7FFFFFFF...转载 2019-05-31 11:17:40 · 92 阅读 · 0 评论 -
jvm垃圾回收原理
在jvm中堆空间划分为三个代:年轻代(Young Generation)、年老代(Old Generation)和永久代(Permanent Generation)。年轻代和年老代是存储动态产生的对象。永久带主要是存储的是java的类信息,包括解析得到的方法、属性、字段等等。永久带基本 不参与垃圾回收。我们这里讨论的垃圾回收主要是针对年轻代和年老代。具体如下图。 年轻代又分成3个部分,一个ede...转载 2019-05-31 11:49:43 · 128 阅读 · 0 评论 -
Java线程的6种状态及切换
Java中线程的状态分为6种。 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready...转载 2019-06-07 10:59:41 · 150 阅读 · 0 评论 -
倒计时器:CountDownLatch
CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法: CountDownLatch(int count) //实例化一个倒计数器,count指定计数个数 countDown() // 计数减一 await() //等待,当计数减到0时,所有线程并行执行 CountDownLatch在我工作的多个场景被使用,算是用的很频繁的了,比如我们的API接口响应时间被要求在2...原创 2019-08-23 18:17:05 · 132 阅读 · 0 评论 -
CyclicBarrier 使用详解
1. CyclicBarrier 是什么? 从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。 它的作用就是会让所有线程都等待完成后才会继续下一步行动。 举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是 CyclicBarr...原创 2019-08-23 18:35:57 · 99 阅读 · 0 评论