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

公司建网站多少钱一年手机英语网站

公司建网站多少钱一年,手机英语网站,新开传奇网站刚开一秒第一区,个人注册公司的利与弊导航#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 目录 一、JVM基本介绍 二、JVM内存模型 2.0 概述 2.1 类加载子系统 2.2 运行时数据区 2.2.0 基本… 导航 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 目录 一、JVM基本介绍 二、JVM内存模型 2.0 概述 2.1 类加载子系统 2.2 运行时数据区 2.2.0 基本介绍 2.2.1 本地方法栈由C语言实现 2.2.2 Java方法栈虚拟机栈 2.2.3 方法区 2.2.3.1 基本概念  2.2.3.2 实现方式永久代和元空间 2.2.3.3 组成元素类常量池、运行时常量池、字符串常量池 2.2.4 堆 2.2.5 程序计数器PC寄存器 2.3 执行引擎 一、JVM基本介绍 我们经常说Java是一个跨平台的语言因为它是运行在Java虚拟机上JVM的。 在Java程序的实际编译、运行过程中编译器将Java源代码编译成字节码文件后JVM将字节码翻译成特定平台的机器码运行程序。 实际上Java是跨平台的JVM不是跨平台的我们在Linux、windows等系统中安装对应版本的JVM后同一个Java代码在这些JVM上运行从而起到跨平台的效果。 JDK、JRE、JVM、Java的区别 JVM是Java虚拟机JRE是Java运行环境JDK是个Java开发的工具包Java是门编程语言。  JVMJava Virtual Machine是Java虚拟机是Java程序运行的基础它将Java程序编译后的字节码解释执行并将其转换为机器码运行。JREJava Runtime Environment是Java运行环境包括了JVM以及Java程序运行所需的类库等。JDKJava开发工具包包括了JRE以及用于Java开发的工具如编译器javac、调试器jdb、打包工具jar等。 二、JVM内存模型 2.0 概述 JVM由三大部分组成类加载子系统、运行时数据区、执行引擎。 2.1 类加载子系统 类加载子系统通过类加载机制加载类的class文件如果该类是第一次加载会执行加载、验证、解析。只负责class文件的加载至于是否可运行则由执行引擎决定。 JVM中类加载过程是在类加载子系统完成的。 类加载过程加载 -- 链接验证 -- 准备 -- 解析 -- 初始化 类加载过程加载、链接验证、准备、解析、初始化。这个过程是在类加载子系统完成的。 加载生成类的Class对象。 通过一个类的全限定名获取定义此类的二进制字节流即编译时生成的类的class字节码文件将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。包括创建运行时常量池将类常量池的部分符号引用放入运行时常量池。在内存中生成一个代表这个类的java.lang.Class对象作为方法区这个类各种数据的访问入口。注意类的class对象是运行时生成的类的class字节码文件是编译时生成的。 链接将类的二进制数据合并到JRE中。该过程分为以下3个阶段 验证确保代码符合JAVA虚拟机规范和安全约束。包括文件格式验证、元数据验证、字节码验证、符号引用验证。 文件格式验证验证字节码文件是否符合规范。 魔数是否魔数0xCAFEBABE开头版本号版本号是否在JVM兼容范围常量类型类常量池里常量类型是否合法索引值索引值是否指向不存在或不符合类型的常量。元数据验证元数据是字节码里类的全名、方法信息、字段信息、继承关系等。 标识符验证类名接口名标识符有没有符合规范接口实现方法有没有实现接口的所有方法抽象类实现方法有没有实现抽象类的所有抽象方法final类是不是继承了final类。指令验证主要校验类的方法体通过数据流和控制流分析保证方法在运行时不会危害虚拟机安全。 类型转换保证方法体中的类型转换是否有效。例如把某个类强转成没继承关系的类跳转指令保证跳转指令不会跳转到方法体以外的字节码指令上保证任意时刻操作数栈的数据类型与指令代码序列都能配合工作。符号引用验证确保后面解析阶段能正常执行。 类全限定名地址验证类全限定名是否能找到对应的类字节码文件引用地址引用指向地址是否存在实例引用权限是否有权引用准备为类变量即static变量分配内存并赋零值。解析将方法区-运行时常量池内的符号引用类的名字、成员名、标识符转为直接引用实际内存地址不包含任何抽象信息因此可以直接使用。 初始化类变量赋初值、执行静态语句块。 2.2 运行时数据区 2.2.0 基本介绍 运行时数据区在程序运行时存储程序的内容例如字节码、对象、参数、返回值等。 运行时数据区包括本地方法栈、虚拟机栈、方法区、堆、程序计数器。 在运行时数据区中只有方法区和堆是各线程共享的进程内存区域其他运行区都是每个线程可以独立拥有的。 图示 2.2.1 本地方法栈由C语言实现 本地方法栈存放本地方法调用过程中的栈帧。 本地方法栈用于管理本地方法的调用本地方法是C语言写的被编译为基于本机硬件和操作系统的程序。 注意不是所有虚拟机都支持本地方法栈例如Hotspot虚拟机HotSpot是Sun/OracleJDK和OpenJDK中的默认Java虚拟机就是将本地方法栈和虚拟机栈合二为一。栈解决程序的运行问题即程序如何执行、如何处理数据。 栈帧栈帧是栈的元素由三部分组成即局部变量表存方法参数和局部变量、操作数栈存方法执行过程中的中间结果或者其他暂存数据和帧数据区存方法返回地址、线程引用等附加信息。 2.2.2 Java方法栈虚拟机栈 存放Java方法调用过程中的栈帧。用于管理Java方法的调用。 Java方法是我们开发时写的Java方法。 2.2.3 方法区 2.2.3.1 基本概念  方法区可以看作是一块独立于Java堆的内存空间方法区是各线程共享的内存区域。 2.2.3.2 实现方式永久代和元空间 方法区有两种实现方式分别是永久代和元空间。 永久代属于JVM方法区的内存用来存储类的元数据如类名、方法信息、字段信息等一些静态的数据。 永久代的特点 JDK7及之前方法区也叫永久代。永久代的缺点是内存大小固定容易出现oom问题。可以通过-XX:PermSize设置永久代大小。永久代对象只能通过Major GC又称Full GC进行垃圾回收。 元空间是Hotspot在JDK8引入的用于取代永久代。 元空间属于本地内存由操作系统直接管理不再受JVM管理。 同时内存空间可以自动扩容避免内存溢出。默认情况下元空间可以无限使用本地内存也可以通过-XX:MetaspaceSize限制内存大小。 方法区和永久代、元空间的关系方法区是一个抽象概念永久代和元空间是方法区的实现方式。 2.2.3.3 组成元素类常量池、运行时常量池、字符串常量池 常量池就是一张表JVM根据这张常量表找到要执行的类信息和方法信息 类常量池是.class字节码文件中的资源仓库主要存放字面量表示字符串值和数值例如字符串值abc、final常量、静态变量和符号引用类和接口的全限定名、字段名、方法名。运行时常量池类加载的“加载”阶段会创建运行时常量池统一存放各个类常量池去重后的符号引用。在类加载的“解析”阶段JVM会把运行时常量池的这些符号引用转为直接引用。类常量池。类常量池在字节码文件中的运行时常量池在内存中。字符串常量池专门针对String类型设计的常量池。是当前应用程序里所有线程共享的每个jvm只有一个字符串常量池。存储字符串对象的引用。在创建String对象时JVM会先在字符串常量池寻找是否已存在相同字符串的引用如果有的话就直接返回引用没的话就在堆中创建一个对象然后常量池保存这个引用并返回引用。 2.2.4 堆 堆存放对象实例、实例变量、数组包括新生代伊甸园区、幸存区S0和S1和老年代。 堆是垃圾收集器管理的内存区域。 堆解决的是数据存储的问题即数据怎么放、放在哪儿。堆实际内存空间可以不连续大小可以选择固定大小或可扩展堆是各线程共享的内存区域。 堆的GC流程  首先任何新对象都分配到 eden 空间。两个幸存者空间开始时都是空的。当 eden 空间填满时将触发一个Minor GC(年轻代的垃圾回收也称为Young GC)删除所有未引用的对象大对象需要大量连续内存空间的Java对象如那种很长的字符串直接进入老年代。所有被引用的对象作为存活对象将移动到第一个幸存者空间S0并标记年龄为1即经历过一次Minor GC。之后每经过一次Minor GC年龄1。GC分代年龄存储在对象头的Mark Word里。当 eden 空间再次被填满时会执行第二次Minor GC将Eden和S0区中所有垃圾对象清除并将存活对象复制到S1并年龄加1此时S0变为空。如此反复在S0和S1之间切换几次之后还存活的年龄等于15的对象JDK8默认15JDK9默认7-XX:InitialTenuringThreshold7在下一次Minor GC时将放到老年代中。 当老年代满了时会触发Major GC也称为Full GCMajor GC 清理整个堆 – 包括年轻代和老年代。 2.2.5 程序计数器PC寄存器 程序计数器PC寄存器存放下一条字节码指令的地址由执行引擎读取下一条字节码指令并转为本地机器指令进行执行。是程序控制流分支、循环、跳转、线程恢复的指示器只有它不会抛出OutOfMemoryError。每个线程有自己独立的程序计数器以便于线程在切换回来时能知道下一条指令是什么。程序计数器生命周期与线程一致。 2.3 执行引擎 执行引擎将字节码指令解释/编译为对应平台上的本地机器指令。充当了将高级语言翻译为机器语言的译者。 执行引擎在执行过程中需要执行什么样的字节码指令依赖于PC寄存器。每当执行完一项指令操作后PC寄存器就会更新下一条需要被执行的指令地址。 指令可以分为字节码指令和本地机器指令。 字节码指令JVM指令字节码文件中的指令内部只包含一些能够被JVM所识别的字节码指令、符号表以及其他辅助信息不能够直接运行在操作系统之上。本地机器指令可以直接运行在操作系统之上。
http://www.hkea.cn/news/14368497/

相关文章:

  • 开发一个网站多少钱啊红色的网站
  • 建设企业展示网站模板网站开发
  • 深圳网站优化平台做网站的网站赚钱吗
  • 莲湖免费做网站好单库如何做网站
  • 个人域名怎么做社交网站软文文案范文
  • 分类信息网站 建议 建设学设计的网站都有哪些
  • 安全网站建设优化步骤
  • 分析海尔网站的建设特点和优势宣传片拍摄事件
  • 建设网站需要的人才百度浏览器
  • 大连网站开发公司shepiguo代理游戏网站
  • 网站建设h5 招聘搜狗网
  • 外贸多语言网站it运维主要做什么
  • 如何做网站不被坑辽宁建设工程信息网app
  • 保定网站制作企业给公司做网站需要多少钱
  • 宝应县建设工程管理局网站绍兴市交通建设有限公司网站
  • 仿站能被百度收录吗网站YYQQ建设
  • 沈阳网站建设培训班帮别人起名 做ppt的网站
  • 网站建设企业如何为公司建设wordpress 教育模版
  • wordpress 批量修改文章分类辽宁好的百度seo公司
  • 崇仁网站建设推广费用crm客户管理系统简历
  • h5制作的网站网站建设与管理总结
  • 图片分享网站源码京东商城官网入口
  • 网站搭建官网wordpress添加wow
  • 广东省交通建设监理检测协会网站小白怎么做网站赚钱
  • 网站设计的英文运城购物网站开发设计
  • 网站建设的岗位叫什么推广企业网站最主要的方式
  • 网站建设策划实训总结网站开发 税率
  • 焊接加工订单网seo咨询顾问
  • 辽宁省营商环境建设局网站备案时网站名称
  • 成交型网站建设方案做会员卡网站