JVM
文章平均质量分 75
修 己
这个作者很懒,什么都没留下…
展开
-
垃圾回收篇~~面试题集
1、大厂面试题蚂蚁金服你知道哪几种垃圾回收器,各自的优缺点,重点讲一下cms和G1?JVM GC算法有哪些,目前的JDK版本采用什么回收算法?G1回收器讲下回收过程GC是什么?为什么要有GC?GC的两种判定方法?CMS收集器与G1收集器的特点百度说一下GC算法,分代回收说下垃圾收集策略和算法天猫JVM GC原理,JVM怎么回收内存CMS特点,垃圾回收算法有哪些?各自的优缺点,他们共同的缺点是什么?滴滴Java的垃圾回收器都有哪些,说下g1的应用场景,平时你是如何搭配使用垃圾回收器的原创 2021-07-30 09:58:39 · 965 阅读 · 0 评论 -
垃圾回收篇~~垃圾回收器
1 GC分类与性能指标垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。从不同角度分析垃圾收集器,可以将GC分为不同的类型。1.1 垃圾收集器分类1.1.1 按线程数分按线程数分(垃圾回收线程数),可以分为串行垃圾回收器和并行垃圾回收器。串行回收指的是在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束。在诸如单CPU处理器或者较小的应用原创 2021-07-28 17:41:28 · 399 阅读 · 1 评论 -
垃圾回收篇~~垃圾回收算法
一、垃圾回收算法分类1、标记-清除算法最基础的算法,分为标记和清除两个阶段:首先标记出所有需要回收的对象,完成后统一回收掉所有被标记的对象。后续的算法都是基于此算法来改进的。主要有两个缺点:效率问题:标记和清除的过程效率都不高。空间问题:标记清除之后会产生大量不连续的内存碎片,这样可能会导致以后再运行过程中需要分配大对象时无法找到足够的连续内存而不得不触发新的一次垃圾回收。标记-清除算法图示-12、复制算法为了解决效率问题,复制算法出现了。将内存按容量划分为大小相等的两块,每次只使用其原创 2021-07-27 17:40:06 · 2514 阅读 · 0 评论 -
垃圾回收篇~~垃圾回收概述
1 什么是垃圾在提到什么是垃圾之前,我们先看下面一张图从上图我们可以很明确的知道,Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C语言没有垃圾收集技术,需要我们手动的收集。垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。 关于垃圾收集有三个经典问题:哪些内存需要回收?什么时候回收?如何回收?垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间原创 2021-07-26 11:14:56 · 1347 阅读 · 2 评论 -
一张脑图帮你 复习 synchronized 关键字
一起讨论,一起进步。互联网打工人~原创 2021-07-22 09:54:19 · 280 阅读 · 0 评论 -
再用一张 脑图 讲解 volatile 关键字
原创 2021-07-21 09:48:16 · 192 阅读 · 0 评论 -
synchronized 底层实现
0 大纲1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,下面介绍一下Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。2 术语定义术语英文说明CASCompare and Swap比较并设置。用于在硬件层面上提供原子性操作。在 Intel 处理器中,比较并交换通过转载 2021-06-18 10:22:30 · 170 阅读 · 4 评论 -
java面试整理~基础
一、进程和线程1.1 多进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。1.2 多线程线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以原创 2021-06-17 10:39:42 · 256 阅读 · 3 评论 -
JVM ~~ 类加载子系统
1 类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)• class file存在于本地硬盘上,可以理解为设计师画在纸上的模板,而最终这个模原创 2021-04-19 23:06:10 · 274 阅读 · 0 评论