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

网站怎么收费的友情链接网址

网站怎么收费的,友情链接网址,wordpress管理,贵阳微信网站制作JVM 1. jvm内存区域分为哪些部分 线程私有的#xff1a;程序计数器、虚拟机栈、本地方法栈 程序计数器#xff1a;指示当前线程执行到的字节码文件的行号#xff0c;是线程切换后保证线程能恢复到正确的执行位置的关键 虚拟机栈#xff1a;用于存储方法调用的数据…JVM 1. jvm内存区域分为哪些部分 线程私有的程序计数器、虚拟机栈、本地方法栈 程序计数器指示当前线程执行到的字节码文件的行号是线程切换后保证线程能恢复到正确的执行位置的关键 虚拟机栈用于存储方法调用的数据由一个个栈帧组成每个栈帧表示一个方法调用包括局部变量表、操作数栈、动态链接、方法返回地址。其中局部变量表用于存储基本数据类型的局部变量和对象的引用操作数栈用于存储中间计算结果动态链接用于存储方法的符号引用用于将符号引用转换为调用方法的直接引用。 线程共享的堆、方法区、直接内存 堆最大的一块内存区域唯一目的就是存储对象实例几乎所以对象实例都在这里分配内存除了JIT逃逸分析后在栈上分配内存的。另外堆中还包括字符串常量池。 方法区JDK1.8以前方法区是用堆中的永久代实现的也就是在堆中分配内存JDK1.8以后方法区是用元空间实现的也就是在本地内存中。方法区中包括类信息、静态变量、运行时常量池。 直接内存 2. 堆内存分为哪三个部分对象是如何在堆中晋升的 新生代内存Eden区、S0区、S1区 老生代 永久代用于实现方法区 对象首先在Eden区分配内存年龄为0 一次垃圾回收后如果对象还存活就让它的年龄1并将它放在S0或S1 此后每次垃圾回收后如果对象还存活就让它的年龄1 如果它的年龄达到15岁就晋升到老年代。 另外大对象会直接进入老年代大对象就是需要大量连续内存空间的对象例如字符串数组。 3. 运行时常量池是什么 运行时常量池用于存储编译期生成的各种字面量和符号引用 4. Java类加载的过程 1加载 由类加载器完成使用哪个类加载器取决于双亲委派模型。这一步骤主要完成了三件事 根据类名找到二进制字节流 将二进制字节流的静态存储结构转为方法区中的动态存储结构 在内存中生成一个代表该类的class对象 2验证 确保二进制字节流的信息符合JVM规范 3准备 为类变量分配内存并设置初始值 4解析 将符号引用替换为直接引用。符号引用相当于仅有名称不指向具体内存地址符号引用存储在运行时常量池中转换为直接引用即内存实际地址后才能进行具体访问操作 5初始化 执行类的初始化方法即cinit方法 5. Java对象的创建过程 1类加载检查 先检查该对象对应的类有没有被加载过如果没有先进行类加载过程 2分配内存 为对象分配足够的内存所需内存大小在类加载完成后就可以确定。 分配方式有两种 第一指针碰撞 适用于堆内存规整的情况即没有内存碎片。用过的内存全部整合到一边没有用过的内存放在另一边中间有一个分界指针只需要向着没用过的内存方向将该指针移动对象内存大小位置即可。 第二空闲列表 虚拟机会维护一个列表该列表中会记录哪些内存块是可用的在分配的时候找一块儿足够大的内存块儿来划分给对象实例最后更新列表记录。这种方式容易造成内存碎片 3初始化零值 将分配的内存区域都初始化为零 4设置对象头 设置对象头信息包括它属于哪个类、年龄是多少、哈希码是多少等信息。从这里可以看出来对象的内存分为对象头、实例数据和对齐填充三部分。 5执行init方法 6. 类加载器是什么双亲委派模型是什么 类加载器是负责完成类加载的第一步加载的。每个类都有一个classloader。 直白地说类加载器就是负责将二进制字节码文件.class文件加载到JVM中并生成一个class对象。 类加载时不会一次性加载所有的类而是在用到该类的时候再动态地加载。 类加载器有三种启动类加载器、扩展类加载器、应用程序类加载器。 启动类加载器是最顶层的加载类用于加载JDK核心类库。 扩展类加载器用于加载jar包。 应用程序类加载器用于加载用户编写的类。 那么一个类到底由哪个类加载器去加载呢这是由双亲委派模型指定的。 每个类加载器都有自己对应的父类加载器。 在classloader的loadClass方法中双亲委派模型的执行流程如下 1首先检查该类是否被加载过如果加载过直接返回 2调用父类加载器的loadClass方法来加载类这样根据类加载器的父子关系所有请求最终会传递到顶层的启动类加载器 3当父类加载器反馈自己无法加载这个类时即它没有搜索到这个类子加载器就尝试自己加载 4如果子类加载器也无法加载这个类就抛出异常 为什么要使用双亲委派模型 使用双亲委派模型是为了避免类的重复加载。如果不去调用父加载器的loadClass方法而是每个类自己加载自己的话那么如果两个类名字相同就会出现类名相同但实际上不一样的两个类。 7. 死亡对象的判断方法 引用计数法 每当有一个地方引用它计数器就加 1当引用失效计数器就减 1任何时候计数器为 0 的对象就是不可能再被使用的。 这个方法实现简单效率高但是目前主流的虚拟机中并没有选择这个算法来管理内存其最主要的原因是它很难解决对象之间循环引用的问题。 可达性分析法 用一系列GC Root作为起点构建对象的引用链。当进行可达性分析时从GC Root开始向下搜索走过的对象即有引用的对象。 而如果从GC Root无法到达对象就认为此对象是不可用的需要被回收。 8. 对象的引用类型有哪些 强引用绝不会被垃圾回收当JVM内存不足时即使抛出OOM也不会回收 软引用可有可无JVM内存不足时可能会被回收JVM内存足够就不会被回收 弱引用只有弱引用的对象被JVM发现了就会被回收不管内存是否足够 虚引用形同虚设跟没有引用一样随时可能被回收 9. 如何判断一个常量是废弃常量 假如在字符串常量池中存在字符串 “abc”如果当前没有任何 String 对象引用该字符串常量的话就说明常量 “abc” 就是废弃常量如果这时发生内存回收的话而且有必要的话“abc” 就会被系统清理出常量池了。 10. 如何判断一个类是无用的类从而发生类卸载 类卸载即类的class对象被垃圾回收。 类卸载的条件是 1该类的所有实例对象都已经被回收 2该类没有在其他任何地方被引用 3该类的加载器已经被回收 11. JVM垃圾回收算法有哪些 1标记清除算法 标记出所有不需要回收的对象然后统一回收掉所有没有被标记的。 缺点效率不高会产生内存碎片 2复制算法 每次仅使用内存区域的一半这一半使用完后将还存活的对象复制到另一半去然后将这一半的全部空间清理掉。 缺点可用内存空间变成了原来的一半如果对象很大复制会耗费大量时间。 3标记整理算法 将存活的对象向一端移动然后直接清理掉边界以外的全部内存。 缺点因为要整理效率也不高适合老年代这种垃圾回收频率不是很高的场景。 4分代收集算法 当前虚拟机的垃圾收集都采用分代收集算法即根据新生代、老年代等分代选择不同的垃圾收集算法。对于新生代GC频率比较高、对象占用内存也不是很多的情况可以选择复制算法。对于老年代存活几率比较高可以选择标记清除或者标记整理算法。 实际上JVM之所以对对象进行分代也是为了垃圾回收时能够根据不同代对象的特点选择合适的算法。 12. 垃圾回收器有哪些 1Serial串行收集器 历史最悠久的单线程的新生代标记复制算法老生代标记整理算法 2Serial Old Serial收集器的老年代版本 3并行收集器ParNew 其实就是Serial的多线程版本仍然是新生代标记复制算法老生代标记整理算法 4Parallel Scavenge JDK1.8采用的收集器。同样新生代标记复制算法老生代标记整理算法且为多线程。但提供了很多参数帮助用户实现最大吞吐量。 5Parallel Old Parallel Scavenge的老年代版本 6CMS收集器 CMSConcurrent Mark Sweep收集器是一种以获取最短回收停顿时间为目标的收集器。它非常符合在注重用户体验的应用上使用。 7G1收集器 G1 (Garbage-First) 是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足 GC 停顿时间要求的同时,还具备高吞吐量性能特征。 12. JVM常用的参数有哪些 指定堆内存大小-Xms用于指定最小堆内存大小-Xmx用于指定最大堆内存大小 指定新生代内存-XX:NewSize最小新生代内存 -XX:MaxNewSize最大新生代内存-Xmn直接指定新生代内存大小另外还可以通过-XX:NewRation指定新生代老生代内存比例 指定元空间大小-XX:MetaspaceSize、-XX:MaxMetaspaceSize 选择垃圾回收器-XX:UseSerialGC选择串行收集器、-XX:UseParallelGC选择并行收集器、-XX:UseConcMarkSweepGC选择CMS收集器、-XX:UseG1GC选择G1收集器 还有一些打印日志的参数 -XX:PrintGCDetails 打印GC信息 -XX:PrintGCDateStamps 打印GC信息 -XX:PrintTenuringDistribution # 打印对象分布 -XX:PrintHeapAtGC # 打印堆数据
http://www.hkea.cn/news/14555307/

相关文章:

  • 国内网站搭建百度广州分公司怎么样
  • flash网站建设公司手机网站 微信平台
  • 网站建设分解结构wordpress 模型
  • 扒网站样式管理咨询公司名字起名大全
  • 网站开发南昌网站建设第三方验收收费标准
  • 徐州网站客户西安广告公司网站建设
  • 内江建设局网站html中文美食网站模板
  • 网站导航是做链接赚钱么百度app下载官方
  • 中山专业门户网站制作策划域名注册个人和企业有什么区别
  • 上海网站建设_永灿品牌建站外贸一般用什么平台
  • 网站开发的步骤wordpress头像缓存
  • 营销网站建设专业服务公司专业的网站建设宝安西乡
  • 大兴营销型网站建设绵阳网站建设工作室
  • Wordpress网站防止采集羽毛球赛事2022赛程
  • 做站群的网站怎么来建设部人事司网站
  • 厦门网站制作公司推荐怎样用wordpress搭建网站
  • 中堂东莞网站建设wordpress注册页
  • 旅游网站建设现状网站开发实用技术第2版答案
  • 郑州市多商家网站制作公司链接网站某一页面如何做
  • 中山创海软件网站建设怎么做让自己的网站
  • 网站创意策划案建设什么网站赚钱
  • php做的网站论文宽屏网站模板html
  • 石家庄手机模板建站做网站的意义大不大
  • 东莞建设网站综合服务平台电商设计网站有哪些功能模块
  • 青岛网站网站建设网站如何做市场推广
  • 网站运营新手做广告策划书怎么写
  • 镇江建站推广报价中国软件邮箱登录入口
  • 洛阳制作网站的公司吗数码印花图案设计网站
  • 2021半夜好用的网站c2c网站建设公司
  • 网站开发导向图合肥软件开发公司