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

如何做网站编辑推广普通话文字素材

如何做网站编辑,推广普通话文字素材,网站建设方案功能,semir是什么牌子JVM 运行在操作系统之上 java二进制字节码文件的运行环境 JVM的组成部分 java代码在编写完成后编译成字节码文件通过类加载器 来到运行数据区,主要作用是加载字节码到内存 包含 方法区/元空间 堆 程序计数器,虚拟机栈,本地方法栈等等 随后来到执行引擎,主要作用是翻译字…

JVM

运行在操作系统之上

java二进制字节码文件的运行环境

JVM的组成部分

java代码在编写完成后编译成字节码文件通过类加载器

来到运行数据区,主要作用是加载字节码到内存

包含

方法区/元空间 堆 程序计数器,虚拟机栈,本地方法栈等等

随后来到执行引擎,主要作用是翻译字节码为底层的系统指令

包含

解释器 即时编辑器 垃圾回收器GC

还有一部分是本地方法接口和本地库

使用原生的C和C++实现

程序计数器

线程私有的,内部保存的字节码的行号

用于记录正在执行的字节码指令的地址

程序计数器

线程私有

每个线程一份保存字节码的行号,用于记录正在执行的字节码指令的执行位置

当分片调度线程时,每次只需要重新从计数器记录的位置继续执行即可

JVM堆

主要用于保存对象的实例和数组等

当堆中内存空间满时,抛出OOM异常

Java内存结构

请添加图片描述

分为年轻代和老年代

年轻代

分为Eden区 S0 S1

一开始对象会进入Eden区,在经历垃圾回收后依然存活就会移向s0,s1最终进入老年代

老年代

主要保存生命周期长的对象

永久代(java8之前)

功能同元空间

保存类信息,静态变量,常量,编译后的代码等

java8以后移至本地内存中,称为元空间

避免堆内存溢出

JVM栈

每个线程运行时所需要的内存,先进后出

每个线程的栈独立,线程安全

每个栈由多个栈帧组成,对应方法调用时占用的内存

每个线程只能有一个活动栈帧,即当前正在执行的方法对应的栈帧

垃圾回收不涉及栈内存,栈帧内存会在弹栈后自动释放
每个栈帧默认为1024k,栈内存大会导致线程数变少,因为每个线程都有自己独立的栈
如果方法内的局部变量没有逃逸出方法外(参数调用或者返回值),方法内的局部变量是线程安全的,因为不同线程调用同一个方法会创建不同栈帧执行

栈内存溢出问题

栈帧过多:递归调用等
栈帧过大

JVM方法区

运行时数据区的一部分

各个线程的共享内存区域
主要存储类的信息和运行时常量池

在hotspot虚拟机中,随虚拟机的开关创建释放

在jdk8之前存在堆中的永久代里

jdk8之后移到了本地内存(操作系统的内存)的元空间中

避免OOM

包括
class
classloader
运行常量池

类似于一张表

主要保存需要执行的类名,方法名,参数类型,字面量等信息

执行机器指令时,会根据符号地址去常量表进行查找得到需要的信息

常量池是.class文件中的,当类被加载时,就会将常量池信息存入运行时常量池

常量池和运行常量池

常量池存在.class字节码文件中,运行常量池

如果方法区中的内存无法满足分配请求,会抛出OOM异常

可以通过-XX:MaxMetaspaceSize=元空间大小m来设置元空间的最大容量

直接内存

不属于JVM中的内存结构,不由JVM进行管理

是虚拟机的系统内存,一般用于NIO操作时用于数据缓存区

分配和回收成本高,但读写性能好

NIO和BIO

BIO:

先切换到内核态,从磁盘中分批次读入系统缓冲区,再从系统缓冲区读入堆内存中的java缓冲区

NIO:

在系统内存中划出一块缓冲区(直接内存),系统和java都可以直接访问

避免了需要读入两次(两块缓冲区)的问题

类加载器

用于将字节码文件(.class文件)装载到运行数据区

主要分为四种

BootStrap ClassLoader

启动类加载器,C++编写,加载java核心库

ExtClassLoader

扩展类加载器,加载扩展jar包

AppClassLoader

应用类加载器,加载开发者自己编写的类

CustomizeClassLoader(不常用)

自定义类加载器,实现自定义类加载规则

类加载器的双亲委派模型

请添加图片描述

加载一个类时,会先委托上一级的加载器进行加载,如果上级加载器也有上级,就会继续向上委托.

如果顶级加载器(启动类加载器)无法加载此类,就会由子加载器进行加载

eg:

test -> AppClassLoader -> ExtClassLoader -> BootStrapClassLoader(无法加载)

回到AppClassLoader加载

String -> AppClassLoader -> ExtClassLoader -> BootStrapClassLoader(可加载)

由启动类加载器加载,其他加载器加载时直接执行即可

双亲委派机制的作用

避免类重复加载,保证唯一性
保证安全,类库API不会被修改

如果定义和核心库中相同的库和类,并自定义方法,就会出现报错

因为启动类加载器已经加载了同名类文件,如果重复加载就会对你自定义的同名类文件报错,防止恶意篡改核心API库

http://www.hkea.cn/news/17767/

相关文章:

  • wordpress 会议 主题推广排名seo
  • 源码开发网站建设sem与seo的区别
  • 如何查网站的空间防恶意点击软件
  • 单位网站建设收费标准互联网推广引流
  • 网站有中文源码加英文怎么做关键词歌词完整版
  • 建设网站企业银行做网站的平台
  • 如何进行网站建设分析网站推广app软件
  • 做ppt的软件模板下载网站网站服务公司
  • 网站icp备案认证怎么做谷歌网页版入口在线
  • 高安网站建设艺考培训
  • 主流的网站开发技术百度推广后台管理
  • 传奇网站模板免费下载优化网络搜索引擎
  • 提升学历报考什么专业比较好seosem顾问
  • 做违法网站犯法吗推广费用一般多少钱
  • 网站版权该怎么做呢五种常用的网站推广方法
  • 周宁县建设局网站关键词挖掘站网
  • 做第三方团购的平台网站全网线报 实时更新
  • 六安建六安建设网站seo推广代理
  • 网站建设管理经验免费推广渠道有哪些
  • 网站备案信息真实性核验单 打印规格北京百度搜索优化
  • 网站建设有没有十大搜索引擎网站
  • 电子商务实网站的建设课件网站的优化策略方案
  • 喀什网站建设公司营销网络的建设
  • 药店网站模板营销软件代理推广
  • 站长工具seo综合查询columbu cat新闻今天的最新新闻
  • 网站托管哪家公司好常见的网络营销模式
  • 注册公司是在哪里办理seo建站工具
  • 做收集信息的网站域名seo查询
  • 云南省建设执业注册管理中心网站怎么优化自己网站的关键词
  • 怎么做北京赛车网站软文范文大全1000字