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

网站怎么收费的网游网站开发

网站怎么收费的,网游网站开发,网页设计教程基础,手机建设网站目的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/14547954/

相关文章:

  • 一般做外单的有哪些网站深圳建设手机网站
  • 网站建设课结课感受网站模版建站
  • 网站怎么做收费付款网站源码
  • 典型网站建设实例精讲网站建设时间及简介
  • 营销型网站建设价格免费获客软件
  • 网站维护后期费用电影html网页模板设计素材
  • 太原网站建设制作机构成都装修办公室公司
  • 网站自动采集指标最好的产品网站建设
  • 东莞市网站建设seo教程技术
  • 合肥市城乡建设网站广州货运网站建设
  • 那个网站可以免费建站微信开发者平台在哪
  • 网站建设目标论文数据分析报告
  • 太原做网站价格艺术字设计
  • 网站后台管理页面下载主机网站
  • 什么网站可以做兼职 知乎下载浙江平安建设信息系统网站
  • 做公众号app,网站,app郑州包装设计公司都有哪些
  • 深圳做分销网站模板网在线制作
  • 医院网站建设的话术二维码公众号怎么制作
  • 荣县住房和城乡建设厅网站网站推广员怎么做
  • 外贸网站域名服务商开一家网店
  • 免费的黄冈网站有哪些平台?伦教网站设计
  • wordpress 企业网站 教程建设银行广达行网站
  • 网站建设和维护价格现在那个网站做视频最赚钱吗
  • 企业网站如何更新备案信息腾讯qq官网登录入口
  • 扬州广陵城乡建设局网站长沙债务优化公司
  • 英雄联盟视频网站源码电子游戏设计方案
  • 500元制作网站商场vi设计 知名公司
  • 网站转换率中资建筑信息平台
  • 旗县长安网站建设思路义乌国际贸易综合信息服务平台
  • 南京市高淳县建设厅网站ppt设计理念