BAT面试
matao_jack
没有什么可以打败我,除非是我自己不想成功
展开
-
JVM的算法和垃圾收集器
标记整理 标记清除 复制算法 OutOfMemoryError ?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BpcmF0ZXNh,size_16,color_FFFFFF,t_70) StackOverflowError 栈满会抛...原创 2019-11-01 20:17:06 · 161 阅读 · 0 评论 -
大厂面试题之JVM
JVM结构 Java8 JVM内存结构 基本结构与之前类似,只是Java8取消了之前的“永久代”,取而代之的是“元空间”——Metaspace,两者本质是一样的。“永久代”使用的是JVM的堆内存,而“元空间”是直接使用的本机物理内存。 简单来说就是栈管运行,而堆管存储 GC Roots 如果判断一个对象可以被回收? 引用计数算法 维护一个计数器,如果有对该对象的引用,计数器+1,反之-1...原创 2019-10-28 15:01:40 · 353 阅读 · 0 评论 -
大厂面试关于多线程和高并发阻塞队列问题
阻塞队列 概念:当阻塞队列为空时,获取(take)操作是阻塞的;当阻塞队列为满时,添加(put)操作是阻塞的。 好处:阻塞队列不用手动控制什么时候该被阻塞,什么时候该被唤醒,简化了操作。 体系:Collection→Queue→BlockingQueue→七个阻塞队列实现类。 类名 作用 ArrayBlockingQueue 由数组构成的有界阻塞队列 LinkedBlocki...原创 2019-10-27 09:19:41 · 655 阅读 · 0 评论 -
BAT面试题之Collection
集合类不安全问题 List ArrayList不是线程安全类,在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException异常。 private static void listNotSafe() { List<String> list=new ArrayList<>(); for (int i = 1; ...原创 2019-10-26 20:45:49 · 156 阅读 · 0 评论 -
多线程和高并发关于Java锁的问题
Java锁 公平锁/非公平锁 概念:所谓公平锁,就是多个线程按照申请锁的顺序来获取锁,类似排队,先到先得。而非公平锁,则是多个线程抢夺锁,会导致优先级反转或饥饿现象。 区别:公平锁在获取锁时先查看此锁维护的等待队列,为空或者当前线程是等待队列的队首,则直接占有锁,否则插入到等待队列,FIFO原则。非公平锁比较粗鲁,上来直接先尝试占有锁,失败则采用公平锁方式。非公平锁的优点是吞吐量比公平锁更大。 s...原创 2019-10-25 20:58:20 · 418 阅读 · 0 评论 -
面试题之JUC
对于JUC方面的面试题,我们首先应该讲一下JMM JMM(Java Memory Model) Java内存模型 首先看一下java内存模型图 对于JMM 是有以下要求: 1.保持原子性 2.保持可见性 3.有序性 对于一些操作,分别对应在下面图 /** * */ package com.matao.concurrent.atomic; import java.util.concur...原创 2019-10-24 21:57:54 · 8074 阅读 · 1 评论