96SEO 2026-02-19 10:59 7
Java运行时环境。

它主要包含两部分#xff1a;Jvm的标准实现和Java的一些基本类库。
相对于JVM来说,JRE多出来…
Java虚拟机它只识别.class类型文件它能将class文件中的字节码指令进行识别并调用操作系统向上的API完成动作。
Java运行时环境。
它主要包含两部分Jvm的标准实现和Java的一些基本类库。
相对于JVM来说,JRE多出来一部分Java类库。
Java开发工具包。
包括整个Java开发的核心它集成了JRE和一些好用的小工具如javac.exe、java.exe、jre.exe等。
存放实例对象所有的对象不包括直接内存对象、符合逃逸分析的对象和和数组都在堆内存分配JVM所管理的内存中最大的一块区域。
Java方法执行的内存模型存储局部变量表操作数栈动态链接方法出口等信息。
生命周期与线程相同
作用与虚拟机栈类似。
不同点本地方法栈为native方法执行服务虚拟机栈为虚拟机执行的java方法服务。
当前线程所执行的行号指示器是JVM内存区域最小的一块区域。
执行字节码工作时就是利用程序计数器来选取下一条需要执行的字节码指令。
虚拟机遇到new指令首先去检查这个指令的参数是否能在常量池中定位到这个类的符号引用并检查这个符号引用的类是否已被加载解析初始化。
如果类已经加载直接分配内存如果未加载则先进行类的加载。
类加载检查通过之后对新对象进行内存分配。
对象生成需要的内存大小在加载完成后便可完全确定为对象分配空间等同于从Java堆内存中划分出一块确定大小的内存内存大小划分分为两种情况JVM内存是规整的使用和未使用的内存分别放一边中间放一个指针作为分界点指示器这样分配就很简单只需要将指针向空闲空间那边挪动与对象大小相同的距离这就是“指针碰撞”。
JVM内存不是规整的使用内存和未使用内存相互交错这时候我们需要维护一张表用于记录哪些内存可用在分配时从列表中找到一个足够大的空间划分给对象并更新到这张表中JVM将内存空间初始化为0值如果使用TLAB就可以在TLAB分配的时候进行工作。
JVM对对象进行必要设置。
执行完以上步骤之后从JVM来看一个对象基本上就完成了但从Java程序代码绝对来看对象创建才刚刚开始需要执行init方法按照程序中设定的初始化操作初始化这时候一个真正的程序对象才生成了。
内存分为相等大小的两块每次使用其中一块。
当垃圾回收的时候把存活对象复制到另一块上然后把这块内存整个清理掉
浪费额外的内存作为复制区当对象存活率较高时复制算法效率会下降。
不是把存活的对象复制到另一块内存而是把存活对象往内存的一端移动然后直接回收边界以外内存。
目前大多数JVM垃圾收集器采用的算法根据对象存活的生命周期将内存划分为若干不同的区域一般情况将堆区划分为新生代、老年代和永久代。
老年代的特点是每次垃圾收集时只有少量对象被回收而新生代的特点是每次垃圾收集会有大量对象被回收那么根据不同代的特点采取最合适的收集算法。
Young区存放新创建的对象对象生命周期非常短几乎用完可以立即回收也叫eden区
TenuredYoung区经过多次回收后存活下来的对象将被移到改区也称old区
Permanent永久代主要存放加载类的信息生命周期长几乎不会被回收。
Class文件由类加载器装载后在JVM中形成一份描述Class结构的元信息对象通过该元信息对象可以获取Class结构信息如构造函数方法属性等。
虚拟机把描述类的数据从class文件加载到内存并对数据进行校验转换解析和初始化最终形成可以被虚拟机直接使用的Java对象。
在Java堆中生成一个代表这个类的java.lang.class对象作为方法区中这些数据的访问入口。
确保class文件的字节流中包含的信息符合当前虚拟机的规范并且不会损害虚拟机自身的安全包含四个验证动作文件格式验证元数据验证字节码验证符号引用验证。
正式为类的静态变量分配内存并设置类变量初始值阶段这些内存都将在方法区中分配。
虚拟机将常量池中的符号引用替换为直接引用的过程解析动作主要针对类或者接口、字段、类方法、接口方法、方法类型、方法句柄和调用点限定符7类符号引用进行。
为类的静态变量赋予正确的初始值JVM负责对类进行初始化主要对类变量进行初始。
引导类装入器是本地代码实现的类装入器他负责将java_runtime_home/lib下面的类库加载到内存中。
由于引导类加载器设计到虚拟机本地实现细节开发者无法知己获取到启动类加载器的引用。
负责将java_runtime_home/lib/ext或者由系统变量java.ext.dir指定位置中的类库加载到内存中程序员可以直接使用标准扩展类加载器
当一个类加载器需要加载一个类时并不会立即自己去记载而是首先委派给父类加载器去加载父类加载器加载不了再给父类的父类去加载一层一层往上委托直到顶层加载器启动类加载器)如果父类加载器反馈无法加载那么类加器才会自己去加载。
如下图所示
防止重复加载类。
在JVM中要唯一确定一个对象是由类加载器和全类名两者共同确定的考虑到各层级的类加载器之间仍然由重叠的类资源加载区域通过向上抛的方式可以避免一个类被多个不同的类加载器加载从而形成重复加载。
安全。
例如读者朋友定义了一个名为java.lang.Integer的类而该类在核心库中也存在借用双亲委派的机制我们就能有效防止该自定义的同名类被加载从而保护了平台的安全性。
是一款用于新生代的单线程收集器采用复制算法进行垃圾收集。
Serial
进行垃圾收集时不仅只用一条线程执行垃圾收集工作它在收集的同时所有的用户线程必须暂停Stop
就比如妈妈在家打扫卫生的时候肯定不会边打扫边让儿子往地上乱扔纸屑否则一边制造垃圾一遍清理垃圾这活啥时候也干不完。
收集器结合进行垃圾收集的示意图当用户线程都执行到安全点时所有线程暂停执行Serial
收集器以单线程采用复制算法进行垃圾收集工作收集完之后用户线程继续开始执行。
收集器结合进行垃圾收集的示意图当用户线程都执行到安全点时所有线程暂停执行ParNew
收集器以多线程采用复制算法进行垃圾收集工作收集完之后用户线程继续开始执行。
收集器也是一个新生代垃圾收集器同样使用复制算法也是一个多线程的垃
圾收集器它重点关注的是程序达到一个可控制的吞吐量ThoughputCPU
总消耗时间即吞吐量运行用户代码时间/(运行用户代码时间垃圾收集时间)
为了修正在并发标记期间因用户程序继续运行而导致标记产生变动的那一部分对象的标记
不可达对象和用户线程一起工作不需要暂停工作线程。
由于耗时最长的并
默认的收集器。
前面几款收集器收集的范围都是新生代或者老年代G1
Eden、Survivor、老年代每种区域的数量也不一定。
JVM
来实时记录该区域内的引用类型数据与其他区域数据的引用关系在前面的几款分代收集中新生代、老年代中也有一个
来实时记录与其他区域的引用关系在标记时直接参考这些引用关系就可以知道这些对象是否应该被清除而不用扫描全堆的数据。
回收的价值大小回收后获得的空间大小以及回收所需时间的经验值这样可以保证
收集器收集器收集过程有初始标记、并发标记、最终标记、筛选回收和
开始对堆中的对象进行可达新分析找出存活对象这个阶段耗时较长但可以和用户线程并发执行。
最终标记修正在并发标记阶段引用户程序执行而产生变动的标记记录。
停顿时间来指定回收计划用最少的时间来回收包含垃圾最多的区域这就是
的由来——第一时间清理垃圾最多的区块这里为了提高回收效率并没有采用和用户线程并发执行的方式而是停顿用户线程。
方法创建一个很大的对象如List,Array是否产生循环调用死循环是否引用了较大的全局变量
强引用new出的对象之类的只要强引用还在永远不会被回收因此强引用是造成
软引用当系统内存足够时它不会被回收当系统内存空间不足时它会被回收。
软引用通常用在对内存敏感的程序中。
弱引用它比软引用的生存期更短对于只有弱引用的对象来说只要垃圾回收机制一运行不管JVM
它不能单独使用必须和引用队列联合使用。
虚引用的主要作用是跟踪对象被垃圾回收的状态。
计算java线程id的16进制值因为后续用jstack看到的线程快照中线程id为小写十六进制值
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback