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

小说网站建设方案书ppt学广告设计要学什么软件

小说网站建设方案书ppt,学广告设计要学什么软件,营销策划公司名字,微信公众号api接口大全JVMJava程序#xff0c;是一个名字为Java 的进程#xff0c;这个进程就是所说的“JVM”1.内存区域划分JVM会先从操作系统这里申请一块内存空间#xff0c;在这个基础上再把这个内存空间划分为几个小的区域在一个JVM进程中#xff0c;堆和方法区只有一份#xff1b;栈和程序…JVMJava程序是一个名字为Java 的进程这个进程就是所说的“JVM”1.内存区域划分JVM会先从操作系统这里申请一块内存空间在这个基础上再把这个内存空间划分为几个小的区域在一个JVM进程中堆和方法区只有一份栈和程序计数器每个线程有一份1.堆存放new的对象堆里面分为两个区域新生代和老年代新生代放新建的对象当经过一定GC次数之后还存活的对象会放入老年代。新生代还有三个区域一个 Endn 两个 SurvivorS0/S1垃圾回收的时候会将 Endn 中存货的对象放到一个未使用的Survivor 中并把当前的 Endn 和正在使用的 Survivior 清除掉2.栈存放方法之间的调度关系虚拟机栈java里面用来保存调用关系的内存空间本地方法栈本地方法就是JVM内部 C 写的代码调用关系的内存空间3.程序计数器存放下一个要执行的指令的地址程序计数器是一块比较小的内存空间可以看作释放前线程所执行的字节码的行号指示器4.方法区存放类对象加载好的方法区的作用用来存储被虚拟机加载的类信息常量静态变量即时编译器编译后的代码等数据的变量在哪个部分和变量类型无关和变量的形态有关成员静态局部代码里的局部变量栈代码里的成员变量堆代码里的静态变量方法区2.类加载java程序在运行之前需要先编译 .java .class二进制字节码文件运行的时候Java 进程JVM就会读取对应的 .class 文件并且解析内容在内存中构造出类对象并进行初始化1.类加载过程其中前5步时固定的顺序并且也是类加载的过程其中中间的3步都属于连接所以类加载总共分为现在几个步骤加载找到.class文件读取文件内容并且按照.class规范格式来解析验证检查看当前的.class里的内容格式是否符合要求准备给类里的静态变量分配内存空间解析初始化字符串常量把符号引用替换成直接引用在类加载之前字符串常量是没有分配内存空间的变量名称无法保存字符串常量的真实地址只能先使用一个占位符等类加载完成字符串常量分配过内存之后就可以用真正的地址替换占位符初始化针对类进行初始化初始化静态成员执行静态代码块并且加载父类2.何时触发类加载使用到一个类的时候就触发加载类并不一定是程序一启动就加载了而是第一次使用才加载创建这个类的实例使用了这个类的静态方法/静态属性使用类的子类(加载子类就会触发加载父类)3.双亲委派模型如果一个类加载器收到了类加载的请求它首先不会自己尝试去加载而是将这个请求委派给父类加载器去完成每一个层次的类加载器都是如此因此所有的加载请求最终都应该传送到最顶层的启动类加载器中只有当父加载器反馈自己无法完成这个加载请求时子加载器才会尝试自己去完成加载类加载器JVM加载类是由类加载器(class loader)模块来负责的JVM 自带了多个类加载器Bootstrap ClassLoader 负责加载标准库中的类Extension ClassLoader 负责加载 JVM 扩展的库的类Application ClassLoader 负责加载自己的项目里的自定义类双亲委派模型的工作过程上述三个类加载器存在父子关系进行类加载的时候输入的内容全限定类名形如java.lang.Thread加载的时候从Application ClassLoader开始某个类加载器开始加载到时候不会立即扫描自己的路径而是先把任务委派给父“类加载器”找到最上面的 Bootstrap ClassLoader在往上没有父“类加载器”了就会自己加载如果父”类加载器“没有找到类就会交给自己的子”类加载器“继续加载如果一直找到最下面的Application ClassLoader 也没有找到类就会抛出一个“类没找到”异常类加载就失败了3.垃圾回收GCJava堆中存放着几乎所有的对象实例垃圾回收器在对堆进行垃圾回收前首先要判断这些对象哪些还被引用着哪些已经没有引用了。判断对象是否被引用有如下几种算法内存VS对象在Java中所有的对象都是要存在内存中的因此将内存回收也叫做死亡对象的回收。1.GC回收的部分JVM主要内存分成这几个部分堆GC主要针对堆来回收方法区类对象加载之后也不太会卸载栈释放时机确定不必回收程序计数器固定内存空间不必回收2.回收对象的判断算法1.引用计数算法给每个对象都加上一个计数器这个计数器就表示“当前的对象几个引用”但是主流的 JVM 中没有选用引用计数法来管理内存最主要的原因就是引用计数法无法解决对象循环引用问题循环引用当两个对象互相引用时classTest{ Testx;}​TestanewTest();TestbnewTest();​a.xb;b.xa;​anull;bnull;当前这两个对象的计数器都为1所以无法进行释放此时外界的代码仍然时无法访问和使用对象的2.可达性分析【JVM采取的方法】核心思想通过一系列称为 “GC Roots” 的对象作为起始点从这些节点开始向下搜索搜索走过的路径称之为 “引用链”当一个对象到GC Roots没有任何的引用链时证明此对象是不可用的对象 Object 5-Object 7 之间虽然还有关联但是它们到达不了GC Roots 是不可达的因此他们会被判定为可回收对象在Java语言中课作为GC Roots的对象包含下面几种虚拟机栈栈帧中的本地变量表中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中JNINative引用的对象3.垃圾回收算法1.标记-清除算法首先标记出垃圾然后直接把对象对应的内存空间进行释放标记-清楚算法的不足效率问题标记和清楚这两个过程的效率都不高空间问题标记清楚后会产生大量不连续的内存碎片内存碎片较多会导致在分配内存空间较大的对象时无法找到足够连续的内存2.复制算法复制算法是为了解决“标记-清楚”算法带来的问题描述将一个内存空间分为两部分首先先使用一边清理时不再是原地释放而是把“非垃圾”拷贝了另一边然后再把之前这一边给释放掉复制算法的不足空间利用率更低了一次只能使用一半的内存空间如果一轮GC下来大部分对象仍然需要保留只有少数对象要回收这个时候拷贝开销就很大3.标记-整理算法前面与“标记-清理”算法过程一致打包后续不是直接堆可回收对象进行清理而是让所有存活对象都想一段移动然后直接清理掉边界以外的内存类似于顺序表的删除元素操作这种方式相对于上述的复制算法来说空间利用率上来了同时能够解决内存碎片问题但是搬运操作也是比较耗时的4.分代回收算法分代算法是通过区域划分实现不同区域和不同的垃圾回收策略从而实现更好的垃圾回收当前 JVM 垃圾收集采用此算法一般是将Java堆分为新生代GC 扫描的频率更高和老年代GC 扫描的频率降低在新生代中每次垃圾回收都有大批对象死去只有少量存活因此我们采用复制算法而老年代中对象存活率高没有额外空间对它进行分配担保就必须采用“标记-清除”或者“标记-整理”算法根据对象的不同特点根据对象的年龄依据 GC 的轮次来算的有一组线程周期性的扫描代码里所有的对象如果一个对象经历了一次GC ,就认为年龄1来划分。一个基本的经验规律如果一个对象的寿命比较长大概率还会活很久上述规则还有个特殊情况如果对象是一个非常大的对象将会直接进入老年代
http://www.hkea.cn/news/14486850/

相关文章:

  • 邯郸做网站服务商公司网站建设有哪些公司可以做
  • 商城网站方案wordpress会员多语言
  • 上海网站建设最好的公司北京手机软件开发公司
  • 学术会议网站建设自己做的网站怎么上网
  • 网站的原理知名市场调研公司
  • 四川省住房和城乡建设厅网站电话网站如何做京东联盟
  • 杭州职称评审系统网站深圳教育科技网站建设
  • php 网站建设 教学用jsp做的汽车网站
  • 聊城企业网站建设魔兽做宏网站
  • 站群cms网站系统10个著名摄影网站
  • 用dw做网站怎么上传到网站上室内设计学校专业
  • 品牌查询网站二手的家具哪个网站做的好
  • 阿里云企业建站教程四川自助网站
  • 手机网站开发算什么费用建立个人网站的方法
  • 网站谁做的营销类网站建设
  • 如何配置 网站二级域名菏泽城乡建设局官网
  • 南京网站设计开发公司网站后台如何上传视频
  • 哈尔滨网站建设资海诚聘网站开发
  • 做个人网站怎么赚钱免费做网站
  • 发卡网站怎么做外链代发2分一条
  • 个人做外贸的网站有哪些网页制作模板源代码免费
  • 南宁企业建站系统上海58同城官网
  • 网站开发怎么兼容浏览器陆家网站建设
  • wordpress建站专家wordpress小清新模板
  • 如何做网站内链建立网站涉及到哪些企业
  • 龙岗营销网站建设公司wordpress后台禁止更新
  • 乌鲁瓦提建设管理局网站全球工业设计公司排名
  • 网站开发专业就业指导广西住房与建设厅网站
  • 免费网站空间申请大型网站开发项目书籍
  • 全景网站如何做泉州企业网站建设