JAVA
文章平均质量分 82
没有后退可言
管理情绪就是管理人生
展开
-
记录一个subList返回列表的修改会映射到原列表的问题
记录一个subList返回列表的修改会映射到原列表的问题举例解决办法举例 public static void main(String[] args) { List<Integer> source = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); List<Integer> subList = source.subList(6, source.size());原创 2020-06-10 17:44:33 · 478 阅读 · 0 评论 -
AQS、sync和Lock
AQS、sync和LockAQS、sync和Lock转载 2020-03-18 14:36:31 · 277 阅读 · 0 评论 -
Comparable与Comparator
Comparable和Comparator场景引入ComparableComparator场景引入需要对用户这个对象进行按照身高进行排序@Getter@Setterpublic class User{ private Integer age; //年龄 private Integer height; //身高 private String username; ...原创 2020-03-05 16:28:36 · 87 阅读 · 0 评论 -
JVM学习笔记
JVM学习笔记JAVA内存模型垃圾回收(可达性分析算法)JVM调优JAVA内存模型Java虚拟机由类加载系统、运行时数据区(堆,栈,本地方法栈,方法区,程序计数器)、字节码执行引擎组成。堆:用于存程序中创建的对象。栈(FILO):局部变量的存放地址。本地方法栈:本地方法(native修饰的方法,如:Thread类中的start方法)的内存区域。方法区:用于存放类信息、静态变量、静态常量...原创 2020-03-06 14:46:22 · 125 阅读 · 0 评论 -
Java多线程之死锁
Java造成死锁的原因以及如何手写一个死锁死锁的定义死锁产生的原因手写一个死锁死锁的定义所谓死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。死锁产生的原因在申请锁时发生了交叉闭环申请。即线程在获得了锁A并且没有释放的情况下去申请锁B,这时,另一个线程已经获得了锁B,在释放锁B之前又要先获得锁A,因此闭环发生,陷入死锁循环。...原创 2019-12-20 17:48:32 · 97 阅读 · 0 评论 -
JAVA算法系列汇总
JAVA算法系列汇总冒泡排序原理代码快速排序原理代码公共代码:打印数组// 打印数组公用函数 public void printArr(int[] arr) { System.out.print("["); for (int i = 0; i < arr.length; i++) { if (i != (arr.length...原创 2019-12-19 16:26:49 · 381 阅读 · 0 评论 -
Java8中Lambda和Stream,优雅的处理集合
Java8中Lambda和StreamLambda表达式函数式接口Lambda表达式new Thread(()->{ System.out.println("girl"); }).start();以上就是一个简单的例子,新增一个线程来输出“girl”其实可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它 有参数列表、函数主体、返回类型函...原创 2019-05-08 14:17:27 · 1395 阅读 · 1 评论