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

沈阳网站开发程序员工资补习班

沈阳网站开发程序员工资,补习班,大型网络手游游戏排行榜,类似美团的网站建设目录 一、JVM概述 一、JVM作用 二、JVM整体组成部分 二、JVM结构-类加载 一、类加载子系统概述 二、类加载过程 1.加载 2.链接 3.初始化#xff08;类加载过程中的初始化#xff09; 三、类加载器分类 大致分两类#xff1a; 细致分类#xff1a; 四、双亲委派机制 五、打…目录 一、JVM概述 一、JVM作用 二、JVM整体组成部分 二、JVM结构-类加载 一、类加载子系统概述 二、类加载过程 1.加载 2.链接 3.初始化类加载过程中的初始化 三、类加载器分类 大致分两类 细致分类 四、双亲委派机制 五、打破双亲委派机制 三、JVM运行时数据区 一、运行时数据区组成概述 二、程序计数器 特点  三、Java虚拟机栈 1、特点 2、栈帧构成 四、本地方法栈 1、作用 2、特点 五、Java堆内存 1、特点 2、堆内存区域划分 3、分区原因 4、对象创建内存分配过程 5、堆空间的参数设置 6、方法区 一、JVM概述 一、JVM作用 JVM负责把字节码文件.class加载到虚拟机中再把字节码文件解释/编译为机器码管理运算时数据存储垃圾回收。现在JVM还可以执行其他语言编译后的字节码文件。 二、JVM整体组成部分 1.类加载器从硬盘上加载字节码文件到JVM中。 2.运行时数据区按照不同的数据类型进行分区存储方法区、堆、栈用于放自己的方法、本地方法栈调用本地方法程序计数器用于线程切换记录程序运行到那行。 3.执行引擎将字节码再次编译/解释成机器码 。 4.本地方法接口调用本地操作系统方法接口。 其大致操作流程如下所示 二、JVM结构-类加载 一、类加载子系统概述 从硬盘上加载字节码文件到JVM中。 二、类加载过程 1.加载 以二进制字节流方式加载字节码。通过类名/地址获取类的二进制字节流 在内存中为类生成一个class类对象将静态存储转为运行时存储。从硬盘到内存用来生成class对象方法 2.链接 1.验证验证字节码格式是否正确语法是否正确。    2.准备为类的静态属性分配内存并设初值。但注意final static常量是在编译时设的初值 3.解析 静态文件中符号指令符号引用替换成内存中直接引用。符号引用是 Class 文件的逻辑符号直接引用指向的方法区中某一个地址 3.初始化类加载过程中的初始化 对类变量静态变量进行赋值 类被初始化的时间有使用类中静态变量静态方法运用main方法创建对象使用反射加载一个类初始化类的子类优先加载父类。 注意当只使用类中静态常量时类不会被初始化因为在编译阶段就初始化了当类在加载阶段初始化完成才说明类的整个加载过程结果。 三、类加载器分类 真正实施类加载的具体实现者事务 大致分两类 1.引导类加载器 2.其他所有类加载器 细致分类 1 、引导类加载器(启动类加载器 BootStrap ClassLoader) 用 C/C语言实现,嵌套在 JVM 内部。 Java中系统提供的类都是由启动类加载器加载.例如String。 只存放在JAVA_HOME\lib 目录。 2 、扩展类加载器(Extension ClassLoader) 由 java 语言实现,独立存在于虚拟机外部。 由 sun.misc.Launcher$ExtClassLoader 实现.。派生于 ClassLoader 类。 jre/lib/ext子目录(扩展目录)下加载类库。 3、 应用程序类加载器(系统类加载器 Application ClassLoader) 由 java 语言实现,独立存在于虚拟机外部。 由 sun.misc.Launcher$ExtClassLoader 实现.。派生于 ClassLoader 类。 加载我们自己定义的类,用于加载用户类路径(classpath)上所有的类。 4、自定义类加载器 例如我们自己写一个类继承ClassLoader。 例如TomCat这种容器都会有自己加载类的加载器。 四、双亲委派机制 当加载一个类时先让上一级的类加载器去加载 直到找到引用类加载器 如果上级类加载器找到了就要上级类加载器的类 如果上级找不到就逐级向下委托使用子类加载器的类 如果找不到报异常。 优点安全避免自己编写的类替换 Java的核心类如 java.lang.String. 五、打破双亲委派机制 通过自定义类加载器重写ClassLoader类中的findClass从而打破双亲委派机制。 三、JVM运行时数据区 一、运行时数据区组成概述 按照不同的数据类型进行分区存储分为五部分程序计数器虚拟机栈本地方法栈堆方法区。 二、程序计数器 用来记录程序执行指令地址。 特点  内存小速度快 线程私有每个线程都有自己的程序计数器 生命周期同线程一致 不会出现内存溢出JVM中唯一区域 不会有垃圾回收。 三、Java虚拟机栈 管理Java自己写的方法运行调用方法入栈运行完成出栈。 栈是运行时单位一个方法入栈后可以看作一个栈帧一个栈帧表示一个方法。 1、特点 栈是线程私有的内存可能溢出不会有垃圾回收快速存储访问方式仅慢于程序计数器。 2、栈帧构成 局部变量表存储方法中定义的变量参数 操作数栈所有计算都借助操作数栈完成 方法返回地址记录被调用方法位置从哪里来回哪里去 还有动态链接和一些附加信息。 四、本地方法栈 1、作用 用于管理本地方法的调用。 本地方法就是系统库提供方法用native关键字修饰。例如 hashCodegetClassclonenotifynotifyAll();    wait();    read0(); start0(); 2、特点 线程私有可能栈溢出不会垃圾回收。 JVM调优调内存大小选择垃圾回收器。 五、Java堆内存 存储程序中产生对象。 1、特点 线程共享可能内存溢出会垃圾回收垃圾回收的重点区域是堆是JVM 管理中最大区域堆内存大小可调节。 2、堆内存区域划分 Eden刚创建的对象存储区。 Survivor存放Eden和另一个幸存者区经垃圾回收后存活下来的对象两个幸存者区交替使用都比较小。 OldGen存储生命周期长的非常大的经过15次回收还存活的对象。 3、分区原因 可根据不同存活时间进行划分生命周期较长的对象放在老年区减少垃圾回收频率和扫描次数。 4、对象创建内存分配过程 1.新创建的对象放在Eden区但Eden区大小有限 2.当垃圾回收时将Eden区存活的对象移入Survivor0中 3.继续运行再创建对象还是保存在Eden区。 4.下一次垃圾回收时将Eden区存活的对象与Survivor0区中存活对象放入Survivor1中反复交替执行 5.当一个对象经历过15次垃圾回收次数后 仍存活那么就将此对象移入OldGen在对象头中4个bit位用来记录回收次数可设置回收次数最大值为15。 老年代新生代 21EdenSurvivor0Survivor1 811 5、堆空间的参数设置  JVM调优是根据程序实际运行的需要设置的参数调整各个区间比例大小。 垃圾回收名词 Minor GC针对新生代进行垃圾回收频繁回收YoungGen Major GC针对老年代进行垃圾回收频繁回收OldGen Full GC整堆收集 实际开发中尽量避免整堆收集。老年代不足或方法区空间不足 时触发整堆收集 6、方法区 主要用于存储加载到虚拟机的类信息 。 特点 方法区大小可调节线程共享会垃圾回收。 方法区垃圾回收条件苛刻要同时满足三个条件 1、该类的所有对象和子类对象都不存在。 2、加载该类的加载器不存在了。 3、该类的Class对象不被其他地方引用。 因此认为一般情况下类是不会被卸载的。
http://www.w-s-a.com/news/553261/

相关文章:

  • 郑州服装 网站建设网站栏目合理性
  • 平面设计在线网站最新汽油价格调整最新消息
  • 刷单网站建设wordpress缩略图 裁剪
  • 视差 网站泰州公司做网站
  • 广州网站优化系统怎么做淘客网站
  • 类似凡科互动的网站wordpress网站下载
  • 临沂网站制作公司安卓app开发实例教程
  • 泰州做网站 泰公网络科技公司网站升级中html
  • 如何做授权网站网站设计心得
  • 网站排名快速上升wordpress自动标签页
  • 做的好的手机网站有哪些万网域名交易
  • 网站怎么做漂亮点做陶瓷的公司网站
  • 软件开发设计制作网站下载自己怎么做视频收费网站
  • 江苏省建设安全协会网站天津网站建设哪家公司好
  • 资源类网站怎么做的网站上线准备工作
  • 长沙专业网站建设怎么做企业建站公司服务
  • 肇庆市有限公司网站建设手机直接看的网站有哪些
  • 织梦修改网站后备份英语作文模板高中
  • 个人网站域名用什么好上海公司拍沪牌需要什么条件
  • 网站建设 保密做网站赚钱交税
  • 食品建设网站前的市场分析进出口网站贸易平台有哪些
  • php商城网站建设个人网站用什么服务器
  • 如何做好品牌网站建设方案网站开发的学习
  • 网站开发 管理方案wordpress怎么搭建微博
  • 有哪些ui的设计网站网上商城网站建设设计方案
  • iis中怎样配置网站绑定运城可以做网站的公司
  • 品牌网站建设开发价格dedecms电影网站模板
  • 网站设计外包合同帝国网站后台认证码错误
  • 网站设计公司深圳怎么免费做公司网站
  • 90设计网站几次是什么意思swipe类网站