中建材建设有限公司网站现在公司做网站还需要域名吗
- 作者: 五速梦信息网
- 时间: 2026年04月20日 03:48
当前位置: 首页 > news >正文
中建材建设有限公司网站,现在公司做网站还需要域名吗,做购物网站小图标,网站整站优化1 程序计数器 程序计数器是一块较小的内存空间#xff0c;可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令#xff0c;分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完。 ja…1 程序计数器 程序计数器是一块较小的内存空间可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完。 java虚拟机的多线程是通过线程轮流切换并分配CPU的时间片的方式实现的因此在任何时刻一个处理器如果是多核处理器则只是一个核都只会处理一个线程为了线程切换后能恢复到正确的执行位置每条线程都需要有一个独立的程序计数器各线程之间计数器互不影响独立存储因此这类内存区域为“线程私有”的内存。 从上面的介绍中我们知道程序计数器主要有两个作用 字节码解释器通过改变程序计数器来依次读取指令从而实现代码的流程控制如顺序执行、选择、循环、异常处理。 在多线程的情况下程序计数器用于记录当前线程执行的位置从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。 注意程序计数器是唯不会出现 OutOfMemoryError 的内存区域它的生命周期随着线程的创建而创建随着线程的结束而死亡。 2 Java 虚拟机栈 Java虚拟机栈也是线程私有的它的生命周期和线程相同描述的是 Java 方法执行的内存模型。Java虚拟机栈是由一个个栈帧组成线程在执行一个方法时便会向栈中放入一个栈帧每个栈帧中都拥有局部变量表、操作数栈、动态链接、方法出口信息。局部变量表主要存放了编译器可知的各种基本数据类型boolean、byte、char、short、int、float、long、double和对象引用reference类型它不同于对象本身可能是一个指向对象起始地址的引用指针也可能是指向一个代表对象的句柄或其他与此对象相关的位置。 Java 虚拟机栈会出现两种异常StackOverFlowError 和 OutOfMemoryError。 StackOverFlowError若Java虚拟机栈的内存大小不允许动态扩展那么当线程请求栈的深度超过当前Java虚拟机栈的最大深度的时候就抛出StackOverFlowError异常。 OutOfMemoryError若 Java 虚拟机栈的内存大小允许动态扩展且当线程请求栈时内存用完了无法再动态扩展了此时抛出OutOfMemoryError异常。 Java 虚拟机栈也是线程私有的每个线程都有各自的Java虚拟机栈而且随着线程的创建而创建随着线程的死亡而死亡。 3 本地方法栈 和虚拟机栈所发挥的作用非常相似区别是 虚拟机栈为虚拟机执行 Java 方法 也就是字节码服务而本地方法栈则为虚拟机使用到的 Native 方法服务。 在 HotSpot 虚拟机中和 Java 虚拟机栈合二为一。 本地方法被执行的时候在本地方法栈也会创建一个栈帧用于存放该本地方法的局部变量表、操作数栈、动态链接、出口信息。方法执行完毕后相应的栈帧也会出栈并释放内存空间也会出现 StackOverFlowError 和 OutOfMemoryError 两种异常。 4 堆 堆是Java 虚拟机所管理的内存中最大的一块Java 堆是所有线程共享的一块内存区域在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例几乎所有的对象实例以及数组都在这里分配内存目前由于编译器的优化对象在堆上分配已经没有那么绝对了参见https://www.cnblogs.com/aiqiqi/p/10650394.html。 Java 堆是垃圾收集器管理的主要区域因此也被称作GC堆Garbage Collected Heap。从垃圾回收的角度由于现在收集器基本都采用分代垃圾收集算法所以Java堆还可以细分为新生代和老年代其中新生代又分为Eden空间、From Survivor、To Survivor空间。进一步划分的目的是更好地回收内存或者更快地分配内存。“分代回收”是基于这样一个事实对象的生命周期不同所以针对不同生命周期的对象可以采取不同的回收方式以便提高回收效率。从内存分配的角度来看线程共享的java堆中可能会划分出多个线程私有的分配缓冲区Thread Local Allocation BufferTLAB。 如图所示JVM内存主要由新生代、老年代、永久代构成。 ① 新生代Young Generation大多数对象在新生代中被创建其中很多对象的生命周期很短。每次新生代的垃圾回收又称Minor GC后只有少量对象存活所以选用复制算法只需要少量的复制成本就可以完成回收。 新生代内又分三个区一个Eden区两个Survivor区一般而言大部分对象在Eden区中生成。当Eden区满时还存活的对象将被复制到两个Survivor区中的一个。当这个Survivor区满时此区的存活且不满足“晋升”条件的对象将被复制到另外一个Survivor区。对象每经历一次Minor GC年龄加1达到“晋升年龄阈值”后被放到老年代这个过程也称为“晋升”。显然“晋升年龄阈值”的大小直接影响着对象在新生代中的停留时间在Serial和ParNew GC两种回收器中“晋升年龄阈值”通过参数MaxTenuringThreshold设定默认值为15。 ② 老年代Old Generation在新生代中经历了N次垃圾回收后仍然存活的对象就会被放到年老代该区域中对象存活率高。老年代的垃圾回收又称Major GC通常使用“标记-清理”或“标记-整理”算法。整堆包括新生代和老年代的垃圾回收称为Full GCHotSpot VM里除了CMS之外其它能收集老年代的GC都会同时收集整个GC堆包括新生代。 ③ 永久代Perm Generation主要存放元数据例如Class、Method的元信息与垃圾回收要回收的Java对象关系不大。相对于新生代和年老代来说该区域的划分对垃圾回收影响比较小。 在 JDK 1.8中移除整个永久代取而代之的是一个叫元空间Metaspace的区域永久代使用的是JVM的堆内存空间而元空间使用的是物理内存直接受到本机的物理内存限制。 5 方法区 方法区与 Java 堆一样是各个线程共享的内存区域它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分但是它却有一个别名叫做 Non-Heap非堆目的应该是与 Java 堆区分开来。 HotSpot 虚拟机中方法区也常被称为 “永久代”本质上两者并不等价。仅仅是因为 HotSpot 虚拟机设计团队用永久代来实现方法区而已这样 HotSpot 虚拟机的垃圾收集器就可以像管理 Java 堆一样管理这部分内存了。但是这并不是一个好主意因为这样更容易遇到内存溢出问题。 相对而言垃圾收集行为在这个区域是比较少出现的但并非数据进入方法区后就“永久存在”了。 6 运行时常量池 运行时常量池是方法区的一部分。Class 文件中除了有类的版本、字段、方法、接口等描述信息外还有常量池信息用于存放编译期生成的各种字面量和符号引用 既然运行时常量池时方法区的一部分自然受到方法区内存的限制当常量池无法再申请到内存时会抛出 OutOfMemoryError 异常。 JDK1.7及之后版本的 JVM 已经将运行时常量池从方法区中移了出来在 Java 堆Heap中开辟了一块区域存放运行时常量池。 7 直接内存 直接内存并不是虚拟机运行时数据区的一部分也不是虚拟机规范中定义的内存区域但是这部分内存也被频繁地使用。而且也可能导致OutOfMemoryError异常出现。 JDK1.4中新加入的 NIO(New Input/Output) 类引入了一种基于通道Channel 与缓存区Buffer 的 I/O 方式它可以直接使用Native函数库直接分配堆外内存然后通过一个存储在 Java 堆中的 DirectByteBuffer 对象作为这块内存的引用进行操作。这样就能在一些场景中显著提高性能因为避免了在 Java 堆和 Native 堆之间来回复制数据。 本机直接内存的分配不会收到 Java 堆的限制但是既然是内存就会受到本机总内存大小以及处理器寻址空间的限制。
相关文章
-
中建八局土木建设有限公司网站wordpress单页淘客源码
中建八局土木建设有限公司网站wordpress单页淘客源码
- 技术栈
- 2026年04月20日
-
中济建设有限公司网站cms网站有哪些
中济建设有限公司网站cms网站有哪些
- 技术栈
- 2026年04月20日
-
中济建设官方网站建站公司哪家好
中济建设官方网站建站公司哪家好
- 技术栈
- 2026年04月20日
-
中建设计集团网站跨境电商公司招聘岗位及要求
中建设计集团网站跨境电商公司招聘岗位及要求
- 技术栈
- 2026年04月20日
-
中建西部建设股份有限公司网站中国建筑设计研究院有限公司
中建西部建设股份有限公司网站中国建筑设计研究院有限公司
- 技术栈
- 2026年04月20日
-
中交建设集团天津公司网站管理信息系统平台
中交建设集团天津公司网站管理信息系统平台
- 技术栈
- 2026年04月20日
