一次JVM GC长暂停的排查过程
在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在StopTheWorld问题,因此很容易导致服务超时,引发性能问题。
Wesley13 Wesley13
4年前
java面试题汇总,不断更新中。。。
JVM,并发,锁相关:1.请你谈谈对volatile的理解,volatile是否存在伪共享问题。2.cas你知道吗?3.原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4.公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。5.CountDownLatch、CyclicBarrier、S
Wesley13 Wesley13
4年前
volatile 关键字的使用场景及其原理
一、 Java线程的内存工作模型在当前的Java内存模型下(JVM1.2之后),线程(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fbaike.baidu.com%2Fitem%2F%25E7%25BA%25BF%25E7%25A8%258B)可以把变量保存在本地内存(
Wesley13 Wesley13
4年前
java 面试知识点笔记(一)底层知识 jvm相关
问:谈谈你对java的理解?平台无关性(一处编译多处运行)GC(垃圾回收机制)语言特性(泛型、反射、lambda表达式)面向对象(封装继承多态)类库(集合、网络库、并发库、nio)异常处理javac将.java文件进行编译,编译出.class文件(二进制字节码,包含java类中的属性
桃浪十七丶 桃浪十七丶
4年前
Linux,Ubuntu20.04LTS环境下安装JDK1.8和IDEA2021
本文内容是在x64基础上进行实现。1.下载JDK选择jdk8u291linuxx64.tar.gz。2.下载完毕解压配置这里默认下载的路径是在Downloads在/usr/lib文件夹里创建jvm文件夹bashcd/usr/libmkdirjvm到Downloads目录下,解压下载好的jdk到目标文件bashcdDownloadssudotar
Wesley13 Wesley13
4年前
CMS垃圾回收过程
1.总体介绍:CMS(ConcurrentMarkSweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上\XX:UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除。2.CMS
Wesley13 Wesley13
4年前
Java面试解析总结:Java+Redis+数据库+算法与数据结构+分布式
!(https://oscimg.oschina.net/oscnet/up760e80c47ac2161a4a2fb57889bd590e1ff.png)金九银十即将到来,给大家整理了今年来最经典的面试真题1000道,每个题目都有详细的解答,收集了java基础、RabbitMQ,微服务、MySQL数据库、Java并发、JVM,Redis、设计模
Wesley13 Wesley13
4年前
Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:静态块,main(),构造块,构造方法。构造函数publicHelloA(){//构造函数}关于构造函数,以下几点要注意:1.对象一建立,就会调用与之相应的构造
探索虚拟线程:原理与实现
虚拟线程的引入与优势在Loom项目之前,Java虚拟机(JVM)中的线程是通过java.lang.Thread类型来实现的,这些线程被称为平台线程。然而,平台线程的创建和维护在资源使用上存在显著的开销。首先,创建成本不菲,因为每当操作系统需要创建一个新的平