当前位置: 首页 > news >正文

我有域名怎么做网站重庆3d制作

我有域名怎么做网站,重庆3d制作,广告优化师前景怎样,深圳市建设管理中心网站首页Java面试八股文_JVM篇 1、知识点汇总2、知识点详解#xff1a;3、说说类加载与卸载11、说说Java对象创建过程12、知道类的生命周期吗#xff1f;14、如何判断对象可以被回收#xff1f;17、调优命令有哪些#xff1f;18、常见调优工具有哪些20、你知道哪些JVM性能调优参数3、说说类加载与卸载11、说说Java对象创建过程12、知道类的生命周期吗14、如何判断对象可以被回收17、调优命令有哪些18、常见调优工具有哪些20、你知道哪些JVM性能调优参数简单版回答29、你知道哪些JVM调优参数「堆栈内存相关」「垃圾收集器相关」「辅助信息相关」 ****************************************************************************************************** 1、知识点汇总 JVM是Java运行基础,面试时一定会遇到JVM的有关问题,内容相对集中,但对只是深度要求较高. 其中内存模型,类加载机制,GC是重点方面.性能调优部分更偏向应用,重点突出实践能力.编译器优化和执行模式部分偏向于理论基础,重点掌握知识点. 需了解 内存模型各部分作用,保存哪些数据.类加载双亲委派加载机制,常用加载器分别加载哪种类型的类.GC分代回收的思想和依据以及不同垃圾回收算法的回收思路和适合场景.性能调优常有JVM优化参数作用,参数调优的依据,常用的JVM分析工具能分析哪些问题以及使用方法.执行模式解释/编译/混合模式的优缺点,Java7提供的分层编译技术,JIT即时编译技术,OSR栈上替换,C1/C2编译器针对的场景,C2针对的是server模式,优化更激进.新技术方面Java10的graal编译器编译器优化javac的编译过程,ast抽象语法树,编译器优化和运行器优化. 2、知识点详解 1、JVM内存模型 线程独占:栈,本地方法栈,程序计数器线程共享:堆,方法区 2、栈 又称方法栈,线程私有的,线程执行方法是都会创建一个栈阵,用来存储局部变量表,操作栈,动态链接,方法出口等信息.调用方法时执行入栈,方法返回式执行出栈. 3、本地方法栈 与栈类似,也是用来保存执行方法的信息.执行Java方法是使用栈,执行Native方法时使用本地方法栈. 4、程序计数器 保存着当前线程执行的字节码位置,每个线程工作时都有独立的计数器,只为执行Java方法服务,执行 Native方法时,程序计数器为空. 5、堆 JVM内存管理最大的一块,对被线程共享,目的是存放对象的实例,几乎所欲的对象实例都会放在这里,当堆没有可用空间时,会抛出OOM异常.根据对象的存活周期不同,JVM把对象进行分代管理,由垃圾回收器进行垃圾的回收管理 6、方法区 又称非堆区,用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译器优化后的代码等数据.1.7 的永久代和1.8的元空间都是方法区的一种实现 7、JVM 内存可见性 JMM是定义程序中变量的访问规则,线程对于变量的操作只能在自己的工作内存中进行,而不能直接对主内存操作.由于指令重排序,读写的顺序会被打乱,因此JMM需要提供原子性,可见性,有序性保证. 3、说说类加载与卸载 加载过程 其中验证,准备,解析合称链接 加载通过类的完全限定名,查找此类字节码文件,利用字节码文件创建Class对象. 验证确保Class文件符合当前虚拟机的要求,不会危害到虚拟机自身安全. 准备进行内存分配,为static修饰的类变量分配内存,并设置初始值(0或null).不包含final修饰的静态变量,因为final变量在编译时分配. 解析将常量池中的符号引用替换为直接引用的过程.直接引用为直接指向目标的指针或者相对偏移量等. 初始化主要完成静态块执行以及静态变量的赋值.先初始化父类,再初始化当前类.只有对类主动使用时才会初始化. 触发条件包括,创建类的实例时,访问类的静态方法或静态变量的时候,使用Class.forName反射类的时候,或者某个子类初始化的时候. Java自带的加载器加载的类,在虚拟机的生命周期中是不会被卸载的,只有用户自定义的加载器加载的类才可以被卸. 1、加载机制-双亲委派模式 双亲委派模式,即加载器加载类时先把请求委托给自己的父类加载器执行,直到顶层的启动类加载器.父类加载器能够完成加载则成功返回,不能则子类加载器才自己尝试加载.* 优点: 避免类的重复加载避免Java的核心API被篡改 2、分代回收 分代回收基于两个事实:大部分对象很快就不使用了,还有一部分不会立即无用,但也不会持续很长时间. 年轻代-标记-复制老年代-标记-清除 3、回收算法 a、G1算法 1.9后默认的垃圾回收算法,特点保持高回收率的同时减少停顿.采用每次只清理一部分,而不是清理全部的增量式清理,以保证停顿时间不会过长 其取消了年轻代与老年代的物理划分,但仍属于分代收集器,算法将堆分为若干个逻辑区域(region),一部分用作年轻代,一部分用作老年代,还有用来存储巨型对象的分区. 同CMS相同,会遍历所有对象,标记引用情况,清除对象后会对区域进行复制移动,以整合碎片空间. 年轻代回收: 并行复制采用复制算法,并行收集,会StopTheWorld. 老年代回收: 会对年轻代一并回收 初始标记完成堆root对象的标记,会StopTheWorld. 并发标记 GC线程和应用线程并发执行. 最终标记完成三色标记周期,会StopTheWorld. 复制/清楚会优先对可回收空间加大的区域进行回收 b、ZGC算法 前面提供的高效垃圾回收算法,针对大堆内存设计,可以处理TB级别的堆,可以做到10ms以下的回收停顿时间 着色指针读屏障并发处理基于region内存压缩(整理) roots标记标记root对象,会StopTheWorld. 并发标记利用读屏障与应用线程一起运行标记,可能会发生StopTheWorld. 清除会清理标记为不可用的对象. roots重定位是对存活的对象进行移动,以腾出大块内存空间,减少碎片产生.重定位最开始会StopTheWorld,却决于重定位集与对象总活动集的比例. 并发重定位与并发标记类似. 11、说说Java对象创建过程 1.JVM遇到一条新建对象的指令时首先去检查这个指令的参数是否能在常量池中定义到一个类的符号引用。然后加载这个类类加载过程在后边讲 2.为对象分配内存。一种办法“指针碰撞”、一种办法“空闲列表”最终常用的办法“本地线程缓冲分配(TLAB)” 3.将除对象头外的对象内存空间初始化为0 4.对对象头进行必要设置 12、知道类的生命周期吗 类的生命周期包括这几个部分加载、连接、初始化、使用和卸载其中前三部是类的加载的过程,如下图 加载查找并加载类的二进制数据在Java堆中也创建一个java.lang.Class类的对象连接连接又包含三块内容验证、准备、初始化。 1验证文件格式、元数据、字节码、符号引用验证 2准备为类的静态变量分- 配内存并将其初始化为默认值 3解析把类中的符号引用转换为直接引用初始化为类的静态变量赋予正确的初始值使用new出对象程序中使用卸载执行垃圾回收 14、如何判断对象可以被回收 判断对象是否存活一般有两种方式 引用计数每个对象有一个引用计数属性新增一个引用时计数加1引用释放时计数减1计数为0时可以回收。此方法简单无法解决对象相互循环引用的问题。可达性分析Reachability Analysis从GC Roots开始向下搜索搜索所走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连时则证明此对象是不可用的不可达对象。 17、调优命令有哪些 Sun JDK监控和故障处理命令有jps jstat jmap jhat jstack jinfo jpsJVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。jstatJVM statistics Monitoring是用于监视虚拟机运行时状态信息的命令它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。jmapJVM Memory Map命令用于生成heap dump文件jhatJVM Heap Analysis Tool命令是与jmap搭配使用用来分析jmap生成的dumpjhat内置了一个微型的HTTP/HTML服务器生成dump的分析结果后可以在浏览器中查看jstack用于生成java虚拟机当前时刻的线程快照。jinfoJVM Configuration info 这个命令作用是实时查看和调整虚拟机运行参数。 18、常见调优工具有哪些 常用调优工具分为两类,jdk自带监控工具jconsole和jvisualvm第三方有MAT(Memory Analyzer Tool)、GChisto。 jconsoleJava Monitoring and Management Console是从java5开始在JDK中自带的java监控和管理控制台用于对JVM中内存线程和类等的监控jvisualvmjdk自带全能工具可以分析内存快照、线程快照监控内存变化、GC变化等。MATMemory Analyzer Tool一个基于Eclipse的内存分析工具是一个快速、功能丰富的Java heap分析工具它可以帮助我们查找内存泄漏和减少内存消耗GChisto一款专业分析gc日志的工具 20、你知道哪些JVM性能调优参数简单版回答 设定堆内存大小 -Xmx堆内存最大限制。 设定新生代大小。新生代不宜太小否则会有大量对象涌入老年代 -XX:NewSize新生代大小 -XX:NewRatio 新生代和老生代占比 -XX:SurvivorRatio伊甸园空间和幸存者空间的占比 设定垃圾回收器年轻代用 -XX:UseParNewGC 年老代用-XX:UseConcMarkSweepGC 29、你知道哪些JVM调优参数 「堆栈内存相关」 -Xms 设置初始堆的大小 -Xmx 设置最大堆的大小 -Xmn 设置年轻代大小相当于同时配置-XX:NewSize和-XX:MaxNewSize为一样的值 -Xss 每个线程的堆栈大小 -XX:NewSize 设置年轻代大小(for 1.3/1.4) -XX:MaxNewSize 年轻代最大值(for 1.3/1.4) -XX:NewRatio 年轻代与年老代的比值(除去持久代) -XX:SurvivorRatio Eden区与Survivor区的的比值 -XX:PretenureSizeThreshold 当创建的对象超过指定大小时直接把对象分配在老年代。 -XX:MaxTenuringThreshold设定对象在Survivor复制的最大年龄阈值超过阈值转移到老年代「垃圾收集器相关」 -XX:UseParallelGC选择垃圾收集器为并行收集器。 -XX:ParallelGCThreads20配置并行收集器的线程数 -XX:UseConcMarkSweepGC设置年老代为并发收集。 -XX:CMSFullGCsBeforeCompaction5 由于并发收集器不对内存空间进行压缩、整理所以运行一段时间以后会产生“碎片”使得运行效率降低。此值设置运行5次GC以后对内存空间进行压缩、整理。 -XX:UseCMSCompactAtFullCollection打开对年老代的压缩。可能会影响性能但是可以消除碎片「辅助信息相关」 -XX:PrintGCDetails 打印GC详细信息 -XX:HeapDumpOnOutOfMemoryError让JVM在发生内存溢出的时候自动生成内存快照,排查问题用 -XX:DisableExplicitGC禁止系统System.gc()防止手动误触发FGC造成问题. -XX:PrintTLAB 查看TLAB空间的使用情况******************************************************************************************************
http://www.sczhlp.com/news/177864/

相关文章:

  • 怎样做私人网站怎么样在网上推广
  • 沈阳网站开发培训多少钱网站首页浮动广告怎么做
  • 模仿ios系统的html网站小程序注册方法
  • 网站备案背景幕布华为云wordpress淘宝
  • 承德 网站建设 网络推广 网页设计湖北网站设计制作价格
  • 郑州专业制作网站费用上海网络推广外包
  • 怎么建网站不用买空间提高网站访问速度的建设方案
  • 营销型网站建设课程培训现场私有云笔记 wordpress
  • 外贸企业网站建设方案seo交流网
  • 深圳专业网站设计公司地址南昌做网站kaiu
  • 自助建站怎么实现的韶关网站建设
  • 做免费试用的网站网站底部悬浮导航
  • 网站套用模板服务器外面打不开网站
  • 免费网站论坛世界500强企业关于优秀员工的12条核心标准
  • 网站应用网站开发大棚网站建设
  • 做网站虚拟主机推荐如何建立一个个人博客网站
  • 中山网站的建设娃哈哈网络营销模式
  • 做科技汽车的视频网站有哪些内容网页设计表格代码模板
  • 茂名建设公司网站望野思想感情
  • wap网站开发用什么语言网上卖建材的平台
  • 网站seo案例企业服务网站建设
  • 海南美容网站建设网站被刷怎么办
  • 较好网站建设公司淄博住房和城乡建设局网站
  • 北京网站搭建多少钱企业营业执照查询网上查询
  • 购物网站公司要花费多少钱免费做图网站
  • 方维网站建设安徽建设信息网官网
  • 网站销售需要注册公司吗那个网站做视频能挣钱
  • wordpress商城网站怎么搜索别人的wordpress模板
  • 建网站的八个步骤永城城乡建设局网站
  • 物业管理 网站开发项目外包平台接活