JDK
文章平均质量分 66
JDK里面常用类
信仰_273993243
热爱技术热爱生活,希望大家共同进步
展开
-
Lambda表达式-进阶与高级
lambda高级写法定义函数原创 2022-07-10 16:26:48 · 191 阅读 · 0 评论 -
JDK-双亲委派模型
双亲委培模型、类加载器转载 2022-06-29 11:32:08 · 120 阅读 · 0 评论 -
线程池-判断线程池里面的线程是否执行完
缺点:需要先手动关闭线程池调用shutdown等方法,然后再通过isTerminated方法来判断。二、getCompletedTaskCount方法说明优缺点分析核心代码:优缺点分析1、构造方法五、线程池相关的API1、shutdown()正常关闭,将线程池状态置为SHUTDOWN,线程池并不会立即停止1、shutdownNow强行关闭,将线程池状态置为STOP。企图立即停止,事实上不一定:shutdownNow()它试图终止线程的方法是通过调用Thread.interrupt()方法转载 2022-06-05 20:23:00 · 6406 阅读 · 0 评论 -
JDK-反射
反射就是把Java中某个类中的各种成分,组成成员,映射成相应的Java类。也就说用类来描述具体某个类的字段,构造方法,普通方法等信息例如,一个Java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量、方法、构造方法、包等等信息也用一个个的Java类来表示Java类的Class类显然要提供一系列的方法,来获得其中的变量,方法,构造方法,修饰符,包等信息,这些信息就是用相应类的实例对象来表示,它们是Field、Method、Constructor、Package等等Constructor类原创 2022-04-10 17:16:44 · 656 阅读 · 0 评论 -
ReentrantLock来认识AQS、CAS、公平锁、非公平锁、独占锁
ReentrantLock实现了Lock接口ReentrantLock与sync是组合关系。ReentrantLock中,包含了Sync对象;而且,Sync是AQS的子类;Sync有两个子类FairSync(公平锁)和NonFairSync(非公平锁)ReentrantLock是一个独占锁,至于它到底是公平锁还是非公平锁,就取决于sync对象是"FairSync的实例"还是"NonFairSync的实例"。reentrantLock = new ReentrantLock(false);//创建非公转载 2022-02-22 15:37:35 · 307 阅读 · 0 评论 -
面试-线程安全集合
一、线程不安全ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等二、线程安全如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现ConcurrentHashMapConcurrentLinkedQueueConcurrentLinkedDequeCo转载 2022-02-22 09:42:10 · 253 阅读 · 0 评论 -
HashMap之JDK不同版本碰撞追加元素
JDK1.6//如果遍历链表没发现这个key,则会调用以下代码addEntry(hash, key, value, i);void addEntry(int hash, K key, V value, int bucketIndex) { Entry<K,V> e = table[bucketIndex]; table[bucketIndex] = new Entry<K,V>(hash, key, value, e); if (size++ >= thresho转载 2021-05-23 22:07:48 · 154 阅读 · 0 评论 -
Lambda表达式之stream常用操作
stream、lambda、排序、去重、聚合、分组原创 2021-01-17 22:52:28 · 2599 阅读 · 0 评论 -
Java8中Stream为什么要boxed
boxed、stream、IntStream、jdk8原创 2021-01-17 20:09:55 · 21371 阅读 · 0 评论 -
LocalDate、LocalTime和LocalDateTime的基本使用
LocalDate功能:用于处理日期,yyyy-MM-dd格式代码说明LocalDate localDate = LocalDate.now()获取当前日期String format = LocalDate.now().format(DateTimeFormatter.ofPattern(“yyyy-MM-dd”));LocalDate转StringLocalDate parse = LocalDate.parse(“2020-01-17”, DateTimeForm转载 2020-12-06 20:19:49 · 1245 阅读 · 0 评论 -
偏向锁、轻量级锁、自旋锁、重量级锁
之前做过一个测试,反复执行过多次,发现结果是一样的:单线程下synchronized效率最高。AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是高并发下,性能还不如synchronized,不同情况下性能表现很不稳定;LongAdder性能稳定,在各种并发情况下表现都不错,整体表现最好,短时间的低并发下比AtomicInteger性能差一点,长时间高并发下性能最高(可以让AtomicInte转载 2020-11-29 13:21:12 · 425 阅读 · 0 评论 -
sleep、wait、park的区别
3种方式让线程进入休眠状态,分别是Thread.sleep()、Object.wait()、LockSupport.park()方法Thread.sleep1、Thread.sleep(time)方法必须传入指定的时间线程将进入休眠状态2、会抛出InterruptedException异常,这是受检查异常,调用者必须处理3、通过sleep方法进入休眠的线程不会释放持有的锁wait1、wait可指定睡眠时间,也可以无限制的休眠,直到有人唤醒他。2、必须获得对象上的锁后,才可以执行该对象的wait原创 2020-11-29 13:21:26 · 1344 阅读 · 0 评论 -
深入分析AQS实现原理
深入分析AQS实现原理简单解释一下J.U.C,是JDK中提供的并发工具包,java.util.concurrent。里面提供了很多并发编程中很常用的实用工具类,比如atomic原子操作、比如lock同步锁、fork/join等。从Lock作为切入点我想以lock作为切入点来讲解AQS,毕竟同步锁是解决线程安全问题的通用手段,也是我们工作中用得比较多的方式。Lock APILock是一个接口,方法定义如下void lock() // 如果锁可用就获得锁,如果锁不可用就阻塞直到锁释放void转载 2020-11-29 13:21:37 · 311 阅读 · 0 评论 -
JAVA静态代理和动态代理理解
一、什么是代理模式代理模式是面向对象编程中比较常见的设计模式。这是常见代理模式常见的 UML 示意图。需要注意的有下面几点:1. 用户只关心接口功能,而不在乎谁提供了功能。上图中接口是 Subject。2. 接口真正实现者是上图的 RealSubject,但是它不与用户直接接触,而是通过代理。3. 代理就是上图中的 Proxy,由于它实现了 Subject 接口,所以它能够直接与用户接触。4. 用户调用 Proxy 的时候,Proxy 内部调用了 RealSubject。所以,Pro转载 2020-06-12 14:43:07 · 266 阅读 · 0 评论 -
Java特性之反射
概述定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。用途在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法。当然,也不是所有的都适合反射,之前就遇到一个案例,通过反射得到的结果与预期不符。阅读源码发现,经过层层调用后转载 2020-05-26 22:51:06 · 188 阅读 · 0 评论