JVM 和 GC 和 多线程GuC的全部面试题

https://www.cnblogs.com/1024Community/p/honery.html#%E4%B8%89%E5%B8%B8%E7%94%A8%E7%9A%84%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E7%AE%97%E6%B3%95

以上的地址是比较重要的东西



堆:存放的是new 出来的对象

栈::基本类型的变量以及对象的引用

方法区:静态变量,常量,以及class 中的东西

JVM全部的相关没面试题:

01:java8和java 7的虚拟机有什么变化?

-------------》永久区被元空间代替。

02:GC的作用域。

         堆(99%)和方法区

0:请谈谈你对JVM的理解

https://blog.csdn.net/g19920917/article/details/40015611

JVM是java的核心和基础,可以执行java的字节码程序。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。JVM执行程序的过程 :    

 I.加载.class文件

 II.管理并分配内存 

III.执行垃圾收集 JRE(java运行时环境)由JVM构造的java程序的运行环境    

1:java的类装载器ClassLoader

 1-启动类加载器(Bootstrap Loader ),负责加载%JAVA_HOME%\bin目录下的所有jar包,或者是-Xbootclasspath参数指定的路径;

2-扩展类加载器(ExtClassLoader ):负责加载%JAVA_HOME%\bin\ext目录下的所有jar包,或者是java.ext.dirs参数指定的路径;

3-应用程序类加载器(AppClassLoader ):负责加载用户类路径上所指定的类库,如果应用程序中没有自定义加载器,那么次加载器就为默认加载器。

4:自定义类加载器:

2:双亲委派(http://www.cnblogs.com/parent-absent-son/p/9872443.html)推荐的博客

双亲委派机制得工作过程:

          1:类加载器收到类加载的请求;

          2:把这个请求委托给父加载器去完成,一直向上委托,直到启动类加载器;

          3:启动器加载器检查能不能加载(使用findClass()方法),能就加载(结束);否则,抛出异常,通知子加载器进行加载。

例子:

大家所熟知的Object类,直接告诉大家,Object默认情况下是启动类加载器进行加载的。假设我也自定义一个Object,并且制定加载器为自定义加载器。现在你会发现自定义的Object可以正常编译,但是永远无法被加载运行。这是因为申请自定义Object加载时,总是启动类加载器,而不是自定义加载器,也不会是其他的加载器。

3:沙箱安全及机制

我们平时说Java是安全的,可以使用户免受而已程序的侵犯,这是因为Java提供了一个“沙箱”机制,这个“沙箱”基本组件包括如下4部分:

3.1):类加载体系结构·

3.2):·class文件检验器·

3.3):内置于Java虚拟机(及语言)的安全特性

3.4):安全管理器及Java API 

加载器之间的层次关系:

堆内存逻辑上分为三部分:新生+养老+永久区【元空间不在堆】

JVM体系结构概述:

======================================================

GC:

1:作用区域堆和方法区。【主要是堆

2:GC是什么?垃圾回收!

3:常见的GC回收的四大算法:(GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方)

              3.1:引用计数法JVM一般不使用这种

JVM实现一般不采用这种

缺点:     每次对对象赋值时均要维护引用计数器,且计数器本身也要有一定的消耗

              3.2:复制算法在新生代使用

                        优点:没有内存碎片,

                        缺点:但是总有空的内存

              3.3:标记清除标记之后的是要清除的

                标记和清除两个阶段

优点:节约空间

缺点:产生内存碎片
              3.4:标记整理标记,清除,管理

优点:没有内存碎片,并且节约空间

缺点:耗时
4:Minor GC(就是  Yong GC)与Full GC分别在什么时候发生:

5:JVM垃圾回收的时候如何确定垃圾,是否知道什么是GC root?

                简单说就是内存中已经不再被使用到的空间,

要进行垃圾回收,如何判断一个对象是否可被回收?

        1:引用计数法(了解即可)

        2:可达性分析

6:堆里面的分区:Eden,survival from to,老年代,各自的特点。

        java 8之后:将永久区变为了元空间,

7:JVM内存模型以及分区,需要详细到每个区放什么

8JVM内存结构在java1.7与java1.8有什么区别?
元空间替代了永久区

9:YungGC就是MinorGC(过程复制->清空->互换)

看下面的图文

10:  4种主要的回收方式【4中主要的垃圾回收器】

    串行垃圾回收器(Serial):单线程环境下使用,【现在不是用】

    并行垃圾收集器(Parallel)【 多个垃圾收集线程 并行工作】java8 默认这种

     并发垃圾回收器(CMS):  

      G1垃圾回收集器 : 将堆内存分割成不同的区域然后并发的对其进行垃圾回收 

7大垃圾收集器:

1:引用计数法 

2:复制算法(既下面的流程)

YungGC新生区的GC流程:[复制--》清空  ---》互换  a]

3:标记清除算法:

5:JV7垃圾,是否知道什么是GC root?

可以作为GC root的对象:(不要经常new 这些对象)

OOM:(常见的错误)

OOM:(常见的错误):

3:full GC 过后 并没有得到太多的流程,就会出现第三种oom

4:直接buffer内存溢出,

设置

设置参数出现上边的异常:MaxDirectMemorySize:类似于给元空间分配的内存

七大垃圾收集器:

配置的参数:

1:JVM是怎么调优的?

1:cpu

2:内存

3:io

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 这篇文章是我之前翻阅了不少的书籍以及从网络上收集的一些资料的整理,因此不免有一些不准确的地方,同时不同JDK版本的...
    高广超阅读 15,528评论 3 83
  • 介绍JVM中7个区域,然后把每个区域可能造成内存的溢出的情况说明 程序计数器:看做当前线程所执行的字节码行号指示器...
    jemmm阅读 2,222评论 0 9
  • 作者:一字马胡 转载标志 【2017-11-12】 更新日志 日期更新内容备注 2017-11-12新建文章初版 ...
    beneke阅读 2,184评论 0 7
  • 工作之余,想总结一下JVM相关知识。 Java运行时数据区: Java虚拟机在执行Java程序的过程中会将其管理的...
    Huang远阅读 628评论 0 2
  • 所有知识点已整理成app app下载地址 J2EE 部分: 1.Switch能否用string做参数? 在 Jav...
    侯蛋蛋_阅读 2,407评论 1 4