美文网首页
面试知识点总结

面试知识点总结

作者: simperLv | 来源:发表于2019-09-29 17:38 被阅读0次

Java基础知识

1、堆,栈,方法区

堆:JAVA堆在虚拟机启动时创建,用来存放由new创建的对象实例和数组。Java堆是垃圾收集器管理的主要区域(GC)。堆分三个区:年轻代,年老代 ,永久代。
新生代:对象被创建时(new)的对象通常被放在Young(除了一些占据内存比较大的对象),经过一定的Minor GC(针对年轻代的内存回收)还活着的对象会被移动到年老代(一些具体的移动细节省略)。
老年代:上述年轻代移动过来的和一些比较大的对象。Minor GC(FullGC)是针对年老代的回收
持久代:存储的是final常量,static变量,常量池。(JDK1.8后没了)
内存泄漏:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用,可用内存越来越少
触发GC的条件:
1.新生代:(1)所有对象创建在新生代的Eden区,当Eden区满后触发新生代的Minor GC,将Eden区和非空闲Survivor区存活的对象复制到另外一个空闲的Survivor区中。(2)保证一个Survivor区是空的,新生代Minor GC就是在两个Survivor区之间相互复制存活对象,直到Survivor区满为止。
2.老年代:当Survivor区也满了之后就通过Minor GC将对象复制到老年代。老年代也满了的话,就将触发Full GC,针对整个堆(包括新生代、老年代、持久代)进行垃圾回收。
3.持久代:持久代如果满了,将触发Full GC。

内存溢出 : 指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于老年代或永久代垃圾回收后,仍然无内存空间容纳新的Java对象的情况。
内存泄露是内存溢出的一种诱因,不是唯一因素。
栈:在栈内存中保存的是堆内存空间的访问地址,或者说栈中的变量指向堆内存中的变量(Java中的指针)和基础数据类型的对象。
方法区(静态区):包含的是在整个程序中永远唯一的元素,如class,static变量。

例.png
eg:
例题.png

JVM垃圾回收算法

1.标记-清除: 算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。。这种方法很简单,但是会有两个主要问题:1.效率不高,标记和清除的效率都很低;2.会产生大量不连续的内存碎片,导致以后程序在分配较大的对象时,由于没有充足的连续内存而提前触发一次GC动作。
2.复制算法: “复制”(Copying)的收集算法,它将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。
3.标记-整理: 该算法主要是为了解决标记-清除,产生大量内存碎片的问题;当对象存活率较高时,也解决了复制算法的效率问题。它的不同之处就是在清除对象的时候现将可回收对象移动到一端,然后清除掉端边界以外的对象,这样就不会产生内存碎片了。
4.分代收集: 现在的虚拟机垃圾收集大多采用这种方式,它根据对象的生存周期,将堆分为新生代和老年代。在新生代中,由于对象生存期短,每次回收都会有大量对象死去,那么这时就采用复制算法。老年代里的对象存活率较高,没有额外的空间进行分配担保,所以可以使用标记-整理 或者 标记-清除
后续的总结,都写入每日一题里面吧!

相关文章

  • 求职准备

    1:知识点总结 2:项目总结 3:常见面试问题总结 4:公司筛选 5:安排面试行程 6:面试!!!

  • 后端面试-总结(java)

    最近在准备面试,对于面试总结了一套自己的知识点,在这里大概罗列一下,后面会分别按照不同的知识点专门总结。 1.面试...

  • 前端校招面试总结

    感觉抱着通过面试来发现自己的不足和不断成长的心态,面了好多公司,来做个面试总结吧。 面试知识点总结 遇到的面试,大...

  • 操作系统面试重难点总结

    针对操作系统,根据面试重难点总结以及网络上的一些参考,对操作系统面试知识点的总结与学习。 一、操作系统知识点图谱 ...

  • 操作系统面试重难点总结

    针对操作系统,根据面试重难点总结以及网络上的一些参考,对操作系统面试知识点的总结与学习。 一、操作系统知识点图谱 ...

  • 2021前端面试

    174道JavaScript 面试知识点总结(下) [Vue中文社区](javascript:void(0);) ...

  • 超全前端面试(全!全!全!!!)

    笔者通过平时面试总结以及面试别人常提的问题,结合自己认为非常重要的前端各技术栈的知识点,总结了这篇中高级前端面试。...

  • 一个5年Java工程师的面试总结

    这个面试总结,除知识点外,其他的面试均可适用!!! 非知识点 1、简历要准备好,联系方式一定要正确清晰醒目,项目经...

  • 阿里面试官整理出面试必问:java面试核心知识原理+框架笔记

    offer来了,Java面试核心知识点精讲(原理篇) 这份文档是对Java程序员面试必备知识点的总结,详细讲解了J...

  • 五万字长文:C/C++ 面试知识总结(上)

    C/C++ 面试知识总结 这是一篇五万字的C/C++面试知识点总结,包括答案:这是上篇,下篇今天也推送了,需要的同...

网友评论

      本文标题:面试知识点总结

      本文链接:https://www.haomeiwen.com/subject/scfqpctx.html