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

上海信息公司做网站网站创建后台

上海信息公司做网站,网站创建后台,营销网站参考,软件外包平台哪家可信赖Java编码执行流程图 a.java -javac#xff08;前端编译器#xff0c;javac属于其中一种#xff09; -a.class 和java类库 -classloader- Java解释器(一行行解释并运行) 或即时编译器JIT(Just In Time#xff0c;属于后端编译器)JIT可以将一个方法#xff…Java编码执行流程图 a.java -javac前端编译器javac属于其中一种 -a.class 和java类库 -classloader- Java解释器(一行行解释并运行) 或即时编译器JIT(Just In Time属于后端编译器)JIT可以将一个方法热点代码中所有的字节码编译成机器码放在缓存中然后需要的时候拿出来直接用 判断热点代码的方式是热点探测JDK:jredevelopment kit JRE:jvmcore lib JVMJVM实现 hotspot1.8以后收费,开源版openJDK jrockit,被oracle收购合并于hotspot taobaoJVMJVM内存 JVM内存 1虚拟机栈每个线程有一个私有的栈随着线程的创建而创建。每个方法会创建一个栈帧栈帧中存放了局部变量表基本数据类型和对象引用、操作数栈、方法出口等 栈的大小可以固定也可以动态扩展。 当栈调用深度大于JVM允许的范围会抛出StackOverflowError 2本地方法栈 3PC寄存器记录当前程序执行到哪一步 4堆存放所有的对象和数组。 分为新生代伊甸园、存活区占1/3堆空间、老年代占2/3堆空间 5方法区所有线程共享。用于存储类的信息、常量池、方法数据、方法代码等。 方法区逻辑上属于堆的一部分但是为了与堆区分又叫“非堆” JDK1.8之前方法区的实现是永久代JDK1.8之后分方法区的实现是元空间(元空间本地存储) 永久代、元空间 元空间和永久代概念 元空间和永久代类似都是JVM规范中方法区的实现 永久代是JVM虚拟机中一块内存空间可以设置大小在内存不够时会触发FullGC也就是和老年代同时垃圾回收 元空间不属于JVM内存而是使用本地内存默认是可以无限制使用本地内存也可以通过参数限制内存使用大小 元空间为什么代替了永久代 1字符串存在永久代中容易出现性能问题和内存溢出。 2类及方法的信息比较难确定其大小永久代大小指定比较困难太小容易出现永久代溢出太大容易造成老年代溢出 3永久代会为GC带来不必要的复杂度并且回收效率偏低。 string声明的字面量数据都放在字符串常量池中 jdk1.6中字符串常量池存放在方法区永久代中 jdk1.7及以后字符串常量池存放在堆空间intern() 如果不是用双引号声明的String对象可以使用String提供的intern方法。 intern 方法会从字符串常量池中查询当前字符串是否存在若不存在就会将当前字符串放入常量池中 String str1 new String(hello); //将字符串放在常量池中 String intern string.intern(); //直接从常量池获取 String str2 hello;//字面量赋值 System.out.println(str1str2);//false System.out.println(internstr2);//true堆栈 栈方法调用自动释放、变量名 堆new出的对象 为什么不把基本数据类型放在堆中 1栈比堆运算效率快但是堆空间比栈空间大 2将复杂的数据类型放在堆中目的是不影响栈运行效率通过引用的方式去堆中找。 3基本数据类型占用内存少放在栈空间中能够提高效率。 GC 垃圾回收算法mark-sweep标记清除、copying拷贝、mark-compact标记压缩 Java1.8默认PSPOJava1.9默认G1 内存模型 分代模型 新生代1/3coping算法比例为8:1:1eden伊甸区8survivor1survivor1 新生代采用coping算法 比如先给eden区new10个对象然后回收9个对象将剩余的1个放到survivor这时eden区又为空 然后在eden区new10个对象再回收时回收eden区和第一个survivor区将不需要回收的对象放在第二个survivor区老年代2/3随着在新生代中年龄增长PSPO:15次,CMS:6次放到老年代中 Full GCFull Garbage Collection当老年代的空间占用达到一定阈值时JVM 可能会触发 Full GC 来对整个堆包括新生代和老年代进行回收。Full GC 会扫描整个堆内存包括老年代以释放未被使用的对象占用的内存。 CMS GCConcurrent Mark-Sweep Garbage Collection在使用 CMS 垃圾收集器时老年代的回收通常是通过 CMS 的并发标记清除算法来实现的。这种方式允许在应用程序运行的同时进行老年代的回收操作以减少停顿时间。 G1 GCGarbage-First Garbage CollectionG1 垃圾收集器通过划分堆内存为多个区域来管理内存其中包括老年代。G1 GC 会根据堆内存的使用情况动态地选择哪些区域进行垃圾回收而不是简单地依赖于年龄或者固定的老年代回收阈值。 分区模型 JVM内存分成不同区域regionserial单线程serial old垃圾回收组合 seriala stop-the-world,copying collector which use a single GC thread serial olda stop-the-world,mark-sweep-compact collector what use a single GC thread 内存几十兆时 serial单线程stwstop the world垃圾回收 serial采用copying拷贝算法 serial old采用mark-sweep标记清除、mark-compact标记压缩parallel并行 scavengeparallel old垃圾回收组合 parallel scavenge: a stop-the-world,copying collector which use a multiple GC thread parallel old: a stop-the-world,mark-sweep-compact collector that use a multiple GC thread parallel并行其实就是多线程同时垃圾回收 内存几百兆~1G时 并行多线程 PSPO组合 JDK1.8默认垃圾回收线程 在需要垃圾回收时多个线程同时干活 但是不能无限增加垃圾回收线程数量因为线程切换需要花费时间CMSParNew垃圾回收组合 CMSconcurrent-mark-sweep并发标记清除 内存20G Concurrent GC 并发垃圾回收 并发指GC线程和业务线程同时进行 CMS适用于老年代三色标记算法 黑色标记对象A对象A和子属性都已完成标记 灰色标记对象B对象B已完成标记但是子属性没有完成 白色标记对象D对象D和子属性都没有完成标记incremental update增量更新 当A的子属性是BB的子属性是D时如果BD之间断开关联AD之间增加关联时 需要将黑色标记对象A改成灰色。这称为CMS解决方案incremental update增量更新incremental update增量更新bug 但是CMS存在bug 当垃圾回收线程t1标记完成对象A、子属性A1并且正在标记子属性A2时 切换至业务线程t2t2给对象A将子属性A1指向白色对象 切换至垃圾回收线程t3把对象A标记为灰色 切换回垃圾回收线程t1继续标记完子属性A2时就会把A标记成黑色。 导致对象D漏标 需要在重新标记Remark时STW浪费时间G1 内存上百G 垃圾处理时间号称200ms G1:garbage first首先回收垃圾特别多的区域 是一个老年代和新生代共用的垃圾回收器 G1采用局部收集的回收思想。将Java堆内存划分成多个相同大小的独立region区域。 物理上不分代但是分区逻辑上分代 G1分region回收优先回收花费时间少垃圾比例高的region 新老年代比例一般不用手动指定G1也采用三色标记但是将incremental update增量更新升级为SATB(snopshot at the begining)SATB(snopshot at the begining) SATB(snopshot at the begining) 在起始时做一个快照当B-D消失时要把这个引用推到GC的堆栈保证D还能被GC扫描到 配合Rset(remember set记忆集region分区有10~15%区域用于记录哪些分区有引用当前分区) 只用扫描哪些region引用到了D这个region如果全部不指向D那么D就是垃圾。 如果有别的对象指向DD就保留下来
http://www.pierceye.com/news/799595/

相关文章:

  • 英文网站设计制作wordpress搜索不到
  • 企业营销网站建设的基本步骤吉林省建设工程质量监督站网站
  • 现在用什么软件做网站北京工程设计公司排名
  • 烟台网站开发技术找人做网站服务器不是自己的怎么办
  • 网站样式下载pc网站建设的优势是什么
  • 网站是怎么建设的网页制作基础教程第2版葛艳玲答案
  • 企业做一个网站的费用网站设计专业需要什么
  • 昆山住房和城乡建设部网站网站开发用的工具
  • 广州优化网站建设网站建设是怎么赚钱
  • 公司建设网站公司系统软件开发培训机构
  • 小程序分销系统开发成熟的网站怎么做seo推广
  • 网站dns修改wordpress极简清新主题
  • 南京网站建设价位招商门户网站建设方案
  • 中学加强校园网站建设个人博客网站开发的原因
  • 网站域名管理中心广州市外贸网站建设企业
  • wordpress建站位置布吉网站建设价格
  • 网站域名正在维护中企业内网网站建设
  • 广西南宁官方网站企业wordpress和ueeshop
  • access数据库做网站自贸区注册公司有什么优势
  • 福州做网站公司企信网企业信用信息系统黑龙江
  • 网站建设先学什么保定徐水网站建设
  • 济南网站建设哪个好电商创业
  • 如何在年报网站上做遗失公告天津做企业网站公司
  • 嘉兴网站关键词排名网页制作与设计课程设计报告
  • 室内装饰网站模板网络营销的策略
  • 如何做网站充值58百度搜索引擎
  • 专门做衣服的网站有哪些广告公司名字怎么取
  • 亚马逊如何做折扣网站的营销在线3d建模网站
  • 深圳市seo网站设计dz做的网站容易收录吗
  • 西安手机网站wordpress 绑定两个域名