Java
Drogon Brother
这条路 我并不寂寞
展开
-
JVM常用基础参数-PrintGCDetails回收前后对比
JVM常用基础参数-PrintGCDetails回收前后对比大厂面试题:1、JVM垃圾回收时候如何确定垃圾?是否知道什么是GC Roots2、你说你做过JVM参数调优和参数配置,请问如何盘点查看JVM系统默认值3、你平时工作中用过的JVM常用基本配置参数有哪些?4、强引用、软引用、弱引用、虚引用费别是什么?5、请你谈谈对OOM的认识6、GC垃圾回收算法与垃圾收集器的关系...原创 2019-06-28 10:27:50 · 1399 阅读 · 0 评论 -
CyclicBarrier
CyclicBarrier大厂面试题:我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。CountDownLatch、CyclicBarrier、Semaphore使用过吗?阻塞队列知道吗?线程池用过吗?ThreadPoolExecutor谈谈你的理解?线程池用过...原创 2019-06-03 21:47:49 · 437 阅读 · 0 评论 -
CountDownLatch
CountDownLatch大厂面试题:我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。CountDownLatch、CyclicBarrier、Semaphore使用过吗?阻塞队列知道吗?线程池用过吗?ThreadPoolExecutor谈谈你的理解?线程池用...原创 2019-06-03 20:52:20 · 252 阅读 · 0 评论 -
synchronized和Lock区别
synchronized和Lock区别大厂面试题:我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。CountDownLatch、CyclicBarrier、Semaphore使用过吗?阻塞队列知道吗?线程池用过吗?ThreadPoolExecutor谈谈你的理解?...原创 2019-06-09 16:39:53 · 795 阅读 · 0 评论 -
传统线程生产者-消费者模式
传统线程生产者-消费者模式大厂面试题:我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。CountDownLatch、CyclicBarrier、Semaphore使用过吗?阻塞队列知道吗?线程池用过吗?ThreadPoolExecutor谈谈你的理解?线程池用过...原创 2019-06-09 15:45:25 · 290 阅读 · 0 评论 -
阻塞队列-Synchronous
阻塞队列-Synchronous大厂面试题:我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。CountDownLatch、CyclicBarrier、Semaphore使用过吗?阻塞队列知道吗?线程池用过吗?ThreadPoolExecutor谈谈你的理解?线程...原创 2019-06-08 23:04:11 · 309 阅读 · 0 评论 -
阻塞队列
阻塞队列大厂面试题:我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。CountDownLatch、CyclicBarrier、Semaphore使用过吗?阻塞队列知道吗?线程池用过吗?ThreadPoolExecutor谈谈你的理解?线程池用过吗?生产上你是如何...原创 2019-06-08 22:40:52 · 1470 阅读 · 0 评论 -
Semaphore
Semaphore大厂面试题:我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。CountDownLatch、CyclicBarrier、Semaphore使用过吗?阻塞队列知道吗?线程池用过吗?ThreadPoolExecutor谈谈你的理解?线程池用过吗?生产...原创 2019-06-07 14:44:43 · 4625 阅读 · 6 评论 -
Java读写锁理论和代码验证
Java读写锁理论和代码验证1、Java读写锁理论写锁(独占锁):是指该锁一次只能被一个线程锁持有。对ReentrantLock和Sychronized而言都是独占锁。读锁(共享锁):是指该锁可被多个线程持有。对ReentrantReadWriteLock而言,其读锁是共享锁,其写锁是独占锁。读锁的共享性可保证并发读是非常高效的,读写、写读、写写的过程都是互斥的。2、Java读写锁...原创 2019-06-01 13:36:18 · 375 阅读 · 0 评论 -
Callable带返回值接口使用
Callable带返回值接口使用大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatc...原创 2019-06-12 23:02:55 · 2749 阅读 · 0 评论 -
线程通信之生产者-消费者的阻塞队列模式
线程通信之生产者-消费者的阻塞队列模式大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownL...原创 2019-06-12 21:32:00 · 274 阅读 · 0 评论 -
java之可重入锁和递归锁理论知识
大厂面试题:公平锁/非公平锁/重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。大厂面试题:公平锁/非公平锁/重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。1、什么是可重入锁(递归锁) 可重入锁(也叫递归锁):指的是同一线程外层函数获得锁之后,内层递归函数仍然可以获取该锁的代码,在同一线程在外层方法获取锁的时候+,在进入内层方法会自动获取锁。也就是说,线程可以...原创 2019-05-26 22:13:27 · 782 阅读 · 0 评论 -
java之公平锁与非公平锁
大厂面试题:公平锁/非公平锁/重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。1、什么是公平锁和非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁,类似与排队打饭,先来后到。非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,有可能造成优先级反转或者饥饿现象。2、公平锁和非公平锁举例Reentra...原创 2019-05-26 21:47:20 · 784 阅读 · 0 评论 -
Java自旋锁
1、Java自旋锁理论自旋锁(spinlock):是指尝试去获取锁的线程不会立即阻塞,而是采用循环的方式去获取锁,这样的好处是减少线程上下文切换消耗,缺点是循环会消耗CPU。 public final int getAndAddInt(Object var1, long var2, int var4) { int var5; do {...原创 2019-05-04 23:04:41 · 193 阅读 · 0 评论 -
锁绑定多个条件Condition
锁绑定多个条件Condition大厂面试题:我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。CountDownLatch、CyclicBarrier、Semaphore使用过吗?阻塞队列知道吗?线程池用过吗?ThreadPoolExecutor谈谈你的理解?线程...原创 2019-06-10 23:30:01 · 1354 阅读 · 0 评论 -
线程池四种拒绝策略理论简述
线程池四种拒绝策略理论简述大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatch、C...原创 2019-06-25 10:35:29 · 1273 阅读 · 0 评论 -
JVM常用基础参数-元空间MetaspaceSize讲解
JVM常用基础参数-元空间MetaspaceSize讲解大厂面试题:1、JVM垃圾回收时候如何确定垃圾?是否知道什么是GC Roots2、你说你做过JVM参数调优和参数配置,请问如何盘点查看JVM系统默认值3、你平时工作中用过的JVM常用基本配置参数有哪些?4、强引用、软引用、弱引用、虚引用费别是什么?5、请你谈谈对OOM的认识6、GC垃圾回收算法与垃圾收集器的关系?分...原创 2019-06-28 10:23:03 · 27955 阅读 · 0 评论 -
JVM常用基础参数-栈内存Xss讲解
JVM常用基础参数-栈内存Xss讲解大厂面试题:1、JVM垃圾回收时候如何确定垃圾?是否知道什么是GC Roots2、你说你做过JVM参数调优和参数配置,请问如何盘点查看JVM系统默认值3、你平时工作中用过的JVM常用基本配置参数有哪些?4、强引用、软引用、弱引用、虚引用费别是什么?5、请你谈谈对OOM的认识6、GC垃圾回收算法与垃圾收集器的关系?分别是什么请你谈谈?...原创 2019-06-28 10:15:55 · 22826 阅读 · 2 评论 -
Java堆内存初始大小
Java堆内存初始大小大厂面试题:1、JVM垃圾回收时候如何确定垃圾?是否知道什么是GC Roots2、你说你做过JVM参数调优和参数配置,请问如何盘点查看JVM系统默认值3、你平时工作中用过的JVM常用基本配置参数有哪些?4、强引用、软引用、弱引用、虚引用费别是什么?5、请你谈谈对OOM的认识6、GC垃圾回收算法与垃圾收集器的关系?分别是什么请你谈谈?7、 怎么查...原创 2019-06-28 10:08:19 · 5244 阅读 · 1 评论 -
JVM标配、X和XX参数
JVM标配、X和XX参数大厂面试题:1、JVM垃圾回收时候如何确定垃圾?是否知道什么是GC Roots2、你说你做过JVM参数调优和参数配置,请问如何盘点查看JVM系统默认值3、你平时工作中用过的JVM常用基本配置参数有哪些?4、强引用、软引用、弱引用、虚引用费别是什么?5、请你谈谈对OOM的认识6、GC垃圾回收算法与垃圾收集器的关系?分别是什么请你谈谈?7、 怎么...原创 2019-06-27 10:39:30 · 8078 阅读 · 0 评论 -
JVM内存结构
JVM内存结构大厂面试题:1、JVM垃圾回收时候如何确定垃圾?是否知道什么是GC Roots2、你说你做过JVM参数调优和参数配置,请问如何盘点查看JVM系统默认值3、你平时工作中用过的JVM常用基本配置参数有哪些?4、强引用、软引用、弱引用、虚引用费别是什么?5、请你谈谈对OOM的认识6、GC垃圾回收算法与垃圾收集器的关系?分别是什么请你谈谈?7、 怎么查看服务器...原创 2019-06-27 10:23:56 · 166 阅读 · 0 评论 -
线程池底层原理
线程池底层原理大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatch、CyclicB...原创 2019-06-24 12:12:49 · 1342 阅读 · 0 评论 -
线程池七大参数介绍
线程池七大参数介绍大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatch、Cycli...原创 2019-06-24 12:11:12 · 11494 阅读 · 1 评论 -
线程池三个使用方式
线程池三个使用方式大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatch、Cycli...原创 2019-06-22 22:25:06 · 413 阅读 · 0 评论 -
线程池使用及优势
线程池使用及优势大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatch、Cyclic...原创 2019-06-22 22:08:24 · 490 阅读 · 0 评论 -
死锁编码及定位分析
死锁编码及定位分析大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatch、Cycli...原创 2019-06-25 10:49:49 · 264 阅读 · 0 评论 -
线程池合理配置线程数
线程池合理配置线程数大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatch、Cycl...原创 2019-06-25 10:46:20 · 1671 阅读 · 1 评论 -
线程池手写改造和拒绝策略
线程池手写改造和拒绝策略大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatch、Cy...原创 2019-06-25 10:43:02 · 255 阅读 · 0 评论 -
实际使用JDK内置的哪个线程池?
实际使用JDK内置的哪个线程池?大厂面试题:1、请你谈谈对volatile的理解?2、CAS你知道吗?3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。6、CountDownLatc...原创 2019-06-25 10:38:43 · 163 阅读 · 0 评论 -
集合类不安全之HashMap
大厂面试题:我们知道HashMap是线程不安全的,请编码写一个不安全的案例并给出解决方案?1、HashMap线程不安全问题产生import java.util.*;public class ContainerNotSafeHashMapDemoThree { public static void main(String[] args) { Map<...原创 2019-05-04 23:00:56 · 608 阅读 · 0 评论 -
集合类不安全之Set
大厂面试题:我们知道Set是线程不安全的,请编码写一个不安全的案例并给出解决方案?1、Set线程不安全问题产生import java.util.HashSet;import java.util.Set;import java.util.UUID;public class ContainerNotSafeDemoTwo { public static void m...原创 2019-05-04 22:57:42 · 306 阅读 · 0 评论 -
集合类不安全之并发修改异常-ArrayList
大厂面试题:我们知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案?1、ArrayList线程不安全问题产生import java.util.ArrayList;import java.util.List;import java.util.UUID;public class ContainerNotSafeDemoOne {public st...原创 2019-05-04 22:55:24 · 983 阅读 · 0 评论 -
向数组中添加元素
向数组中添加元素1、数组末尾添加元素(1)向数组末尾添加元素模型图(2)向数组末尾添加元素代码public class Array { // 定义数组变量,data.length表示数组容量capacity private int[] data; // 定义数组中存放数据大小 private int size; // 有参构造方法,传入数...原创 2019-01-27 23:28:16 · 10692 阅读 · 0 评论 -
数组中查询元素和修改元素
数组中查询元素和修改元素1、重写数组中toString()方法// 重写父类toString()方法@Overridepublic String toString() { StringBuilder sb = new StringBuilder(); sb.append(String.format("Array: size = %d , capacity = %d\n", ...原创 2019-01-28 00:16:00 · 1302 阅读 · 0 评论 -
自定义数组(包含,搜索,删除方法)
包含,搜索和删除1、数组包含方法// 查找数组中是否存在元素epublic boolean contains(int e) { for (int i = 0; i < size; i++) { if (data[i] == e) { return true; } } return false;} ...原创 2019-02-12 23:05:13 · 671 阅读 · 0 评论 -
Java自定义泛型数组
1、定义泛型数组相关概念(1)泛型数组让我们可以存放任何数据类型(2)存放的类型不可以是基本数据类型,只能是类对象 boolean、byte、char、short、int、long、float、double(3)每个基本数据类型都有对应的包装类 Boolean、Byte、Char、Short、Integer、Long、Float、Double...原创 2019-02-13 23:31:05 · 5341 阅读 · 0 评论 -
自定义栈的基本实现
自定义栈的基本实现1、自定义stack方法2、基于动态数组实现自定义stack3、动态数组实现public class Array<E> { // 定义数组变量,data.length表示数组容量capacity private E[] data; // 定义数组中存放数据大小 private int size; // 有...原创 2019-02-18 23:27:14 · 322 阅读 · 0 评论 -
栈和栈的应用:撤销操作和系统栈
栈和栈的应用:撤销操作和系统栈1、栈相关概念栈是一种线性结构 相比数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从一端取出元素 这一端称为栈顶2、栈数据结构类型3、栈的应用(1)撤销操作(2)系统栈A2表示函数A第二行B2表示函数B第二行函数A()调用函数B(),把A2压入栈底,函数B()调用函数C(),把B2压栈,当函数...原创 2019-02-18 22:28:12 · 1006 阅读 · 0 评论 -
均摊复杂度和防止复杂度的震荡
均摊复杂度和防止复杂度的震荡resize的复杂度分析 // 数组扩容 private void resize(int newCapacity){ E[] newData = (E[]) new Object[newCapacity]; for (int i = 0; i < size; i++) { new...原创 2019-02-17 19:45:40 · 273 阅读 · 0 评论 -
简单复杂度分析
1、简单时间复杂度分析(1)时间复杂度表示方式 O(1),O(n),O(lgn),O(nlogn),O(n^2) (2)大O简单定义(非数学领域) 大O描述的是算法运行时间和输入数据之间的关系 (3)简单程序时间复杂度分析既然算法和N呈线性关系,为什么要用大O,叫做O(n)?忽略常数。实际时间复杂度:T = c1*n + c2;...原创 2019-02-17 12:26:49 · 294 阅读 · 0 评论