
Java
Java基础、集合框架、多线程等知识
钟期何遇
这个作者很懒,什么都没留下…
展开
-
Java反射知识点整理
反射概念在运行期,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java的反射机制。简单来说,反射就是在运行期提供的动态地获取类信息(属性、方法)或调用对象的方法的功能。反射APIClass 和 java.lang.reflect 一起对反射提供了支持,java.lang.reflect 类库主要包含了以下三个类:Field :可以使用 get() 和 set() 方法读取和修改 Fie原创 2020-12-27 12:48:38 · 280 阅读 · 0 评论 -
JUC.谈谈线程池
什么是线程池?简单来说,线程池就是提前创建好若干个线程,当有任务到达时,就可以使用已创建好的线程去执行该任务,处理完任务之后线程不会立即销毁,而是放入池中,等待执行下一个任务。打一个比方,线程池就像一个银行,银行里有几个常驻的窗口来处理顾客的业务,办完一个业务就进行下一个,没有任务就待命。为什么要用线程池?合理由的使用线程池,可以带来以下3个好处:1.降低资源消耗:线程池可以通过复用已创建的线程来降低线程创建和销毁开销!不必一个任务就创建一个线程!2.提高响应速度:当线程池中有空闲线程时,任务到原创 2020-05-11 15:41:21 · 238 阅读 · 0 评论 -
JUC.Atomic原子类之AtomicInteger源码简单分析
简介:AtomicInteger是java并发包下面提供的原子类,主要操作的是int类型的整型,通过调用底层Unsafe的CAS等方法实现原子操作。ps:volatile无法解决多线程下count++的线程安全问题,因为volatile仅有两个作用:(1)保证可见性,即一个线程对变量的修改另一个线程立即可见;(2)禁止指令重排序;这里有个很重要的问题,count++实际上是两步操作,第一步是获取count的值,第二步是对它的值加1。使用volatile是无法保证这两步不被其它线程调度打断的,所以原创 2020-05-09 10:28:25 · 174 阅读 · 0 评论 -
浅谈--Java中的锁
Java中的锁分类在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。公平锁/非公平锁公平锁...原创 2020-04-25 10:17:20 · 123 阅读 · 0 评论 -
拆箱装箱问题
int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值4、Integer的默认值是null,int的默认值是0package com.test;public...原创 2020-04-20 12:09:04 · 153 阅读 · 0 评论 -
浅谈ConcurrentHashMap
1.底层结构:JDK1.7首先将数据分为一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据时,其他段的数据也能被其他线程访问。ConcurrentHashMap 是由 Segment 数组结构和 HashEntry 数组结构组成。Segment 实现了 ReentrantLock,所以 Segment 是一种可重入锁,扮演锁的角色。HashEntry 用于存储键值...原创 2020-04-10 20:31:24 · 158 阅读 · 0 评论 -
谈谈ConcurrentHashMap & Hashtable 相关
可以看看下面的文章作者:敖丙链接:https://juejin.im/post/5df8d7346fb9a015ff64eaf9来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。...原创 2020-04-10 16:06:39 · 136 阅读 · 0 评论