![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java面试题
文章平均质量分 81
java探索者
Java探索者
展开
-
2022java面试题小总结
java探索者原创 2022-02-14 15:48:13 · 2103 阅读 · 2 评论 -
java原理篇之GC
1、垃圾收集器回收种类GC算法(引用计数/复制/标清/标整)是内存回收的方法论,垃圾收集器就是算法落地实现。因为目前为止还没有完美的收集器出现,更加没有万能的收集器,只是针对具体应用最合适的收集器,进行分代收集4种主要垃圾收集器SerialParallelCMSG12、串行并行并发G1四大垃圾回收方式串行垃级回收器(Serial) -它为单线程环境设计且只使用一个线程进行垃圾收集,会暂停所有的用户线程,只有当垃圾回收完成时,才会重新唤醒主线程继续执行。所以不适合服务器环境。原创 2021-08-11 15:07:17 · 121 阅读 · 0 评论 -
java原理篇之JVM
1、JVM体系结构概览java gc 主要回收的是 方法区 和 堆中的内容2、常见的垃圾回收算法1.引用计数2.复制Java堆从GC的角度还可以细分为: 新生代(Eden 区、From Survivor 区和To Survivor 区)和老年代。MinorGC的过程(复制->清空->互换):a. Eden、SurvivorFrom复制到SurvivorTo,年龄+1 首先,当Eden区满的时候会触发第一次GC,把还活着的对象拷贝到SurvivorFrom区,当Ede原创 2021-07-22 14:34:11 · 278 阅读 · 0 评论 -
java原理篇之死锁编码及定位分析
概念死锁是指两个或多个以上的进程在执行过程中,因争夺资源而造成一种互相等待的现象,若无外力干涉那他们都将无法推进下去。如果资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。产生死锁的原因系统资源不足进程运行推进的顺序不对资源分配不当死锁产生的四个必要条件互斥解决方法:把互斥的共享资源封装成可同时访问占有且等待解决方法:进程请求资源时,要求它不占有任何其它资源,也就是它必须一次性申请到所有的资源,这种方式会导致资源效率原创 2021-07-21 11:33:17 · 81 阅读 · 0 评论 -
java原理篇之线程池
前言获取多线程的方法,我们都知道有三种,还有一种是实现Callable接口实现Runnable接口实现Callable接口实例化Thread类使用线程池获取1、线程池使用及优势线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。它的主要特点为:线程复用,控制最大并发数,管理线程。优点:1.降低资源消耗。通过重复利用己创建的线程降低线程创建和销毁原创 2021-07-16 13:53:23 · 244 阅读 · 0 评论 -
java原理篇之阻塞队列
文章目录1.阻塞队列接口结构和实现类2.阻塞队列api之抛出异常组3.阻塞队列api之返回布尔值组4.阻塞队列api之阻塞和超时控制5.阻塞队列之同步SynchronousQueue队列1.阻塞队列接口结构和实现类概念队列:队列就可以想成是一个数组,从一头进入,一头出去,排队买饭阻塞队列BlockingQueue 阻塞队列,排队拥堵,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示:线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素当阻塞队列是空时,从队列中获取元素原创 2021-07-12 15:27:53 · 309 阅读 · 0 评论 -
java原理篇之CountDownLatch、CyclicBarrier、Semaphore
文章目录1.CountDownLatch1.CountDownLatch概念让一线程阻塞直到另一些线程完成一系列操作才被唤醒。CountDownLatch主要有两个方法(await(),countDown())。当一个或多个线程调用await()时,调用线程会被阻塞。其它线程调用countDown()会将计数器减1(调用countDown方法的线程不会阻塞),当计数器的值变为零时,因调用await方法被阻塞的线程会被唤醒,继续执行。场景假设一个自习室里有7个人,其中有一个是班长,班长的主要职责原创 2021-07-09 17:31:15 · 152 阅读 · 0 评论 -
java原理篇之java锁
文章目录1.Java锁之公平锁和非公平锁2.java锁之可重入锁和递归锁理论知识3. java锁之可重入锁和递归锁代码验证1.Java锁之公平锁和非公平锁概念公平锁:是指多个线程按照申请锁的顺序来获取锁,类似于排队买饭,先来后到,先来先服务,就是公平的,也就是队列非公平锁:是指多个线程获取锁的顺序,并不是按照申请锁的顺序,有可能申请的线程比先申请的线程优先获取锁,在高并发环境下,有可能造成优先级翻转,或者饥饿的线程(也就是某个线程一直得不到锁)如何创建并发包中ReentrantLock的创建可以原创 2021-07-09 11:03:14 · 116 阅读 · 0 评论 -
JAVA原理篇之集合类不安全
文章目录1.集合类不安全之并发修改异常2.集合类不安全之写时复制1.集合类不安全之并发修改异常我们知道arrayList是线程不安全的,请编写一个不安全的案例以及给出解决方案import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.UUID;import java.util.Vector;public class ArrayListNotSafeDemo {原创 2021-07-08 14:25:52 · 180 阅读 · 0 评论 -
2021-07-06
预览 并发 问题详解请谈谈你对volatile的理解linkCAS你知道吗?link原子类Atomiclnteger的ABA问题谈谈?原子更新引用知道吗?link我们知道ArrayList是线程不安全,请编码写一个不安全的案例并给出解决方案link公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁linkCo...转载 2021-07-06 15:07:47 · 517 阅读 · 0 评论 -
Java面试题详解[JAVA原理篇(跟着阳哥学习篇)]之valotile篇
JAVA原理篇(跟着阳哥学习篇)1.请你谈谈对于valotile的理解valotile是Java虚拟机提供的轻量级同步机制①保证可见性②不保证原子性③禁止指令重排序2.JMM内存模型之可见性JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JMM关于同步的规定:线程解锁前,必须把共享变量的值刷新回主内存线程加锁前,必原创 2021-07-05 17:04:18 · 617 阅读 · 2 评论