易截截图软件、单文件、免安装、纯绿色、仅160KB

认识Java虚拟机的内部体系结构

Java虚拟机的内部体系结构也许很少有人去关心,因为对于Java程序员来说,一般只需要跟API打交道就可以了。这些体系结构只是Java虚拟机内部的结构而已。但是如果理解了其内部结构,对于我们开发项目,以及排除系统中的相关故障是由帮助的。
先看看总体结构图,如下:
各部分的主要功能分别是:
1. 类装载子系统:负责Java类型的装载连接以及初始化。Java虚拟机有两种类装载器,启动类装载器和用户自定义类装载器。启动类装载器是JAVA虚拟机实现的一部分,自定义装载器是JAVA程序的一部分。由不同类装载器装载的类将被放在不同的命名空间中。
2. 方法区:方法区主要存储2类信息,一是被装载的类型信息,从class文件流中提取。二是类型中的类(静态)变量。方法区中的信息是所有线程共享的,所以对方法区的数据访问必须设计成为线程安全的。
3. Java堆:存放java运行时创建的所有类实例或数组。一个java虚拟机实例中只存在一个堆空间,所有线程共享,因此设计程序时也要考虑到多线程访问堆数据的同步问题。
4. Java栈:每当启动一个新线程,JAVA虚拟机都会创建一个新的JAVA栈,用于保存线程的运行状态。JAVA栈中的数据都是私有的,线程之间不能相互访问各自的栈。当一个线程调用一个方法时,方法的局部变量保存在该线程的栈中。所以方法内创建的局部变量都不存在线程安全问题。
5. PC寄存器:有叫程序计数器。每个线程都有自己的程序计数器,在线程启动的时候自动创建。PC寄存器里总是保存下一条将被执行的指令的“地址”。
6. 本地方法栈:保存调用本地方法相关的数据。这里基本是一个全新的不受虚拟机限制的区域。
7. 执行引擎:执行引擎是java虚拟机的核心。其行为由一系列的指令集来定义。


相关文档:

Effective Java 学习笔记(2)

 有时,我们在写一个构造函数时,经常因为它包含众多的参数而苦恼,这时可以考虑用Builder模式来创建对象。
如,我们要设计一个营养成份的类,包含能量,蛋白质,脂肪,钙,铁,锌,维生素A, 维生素B1 ... 等,但在构造的时候,不一定每次都需要这些参数,如钙,铁,锌和维生素等是可选的,为了适应多种可能的搭配,比 ......

JAVA规范学习——String字面常量

package testPackage;
class Test {
public static void main(String[] args) {
String hello = "Hello", lo = "lo";
System.out.print((hello == "Hello") + " ");
System.out.print((Other.hello == hello) + " ");
System.out.print((other.Other.hello == hello) + " ");
System.out.print((hello == ("Hel"+"lo ......

Java过滤器验证登录用户

1.首先写一个权限过滤filter类,实现Filter接口
/*首先写一个权限过滤filter*/
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import ......

Java/JSP中文乱码问题解决心得

Java/JSP中文乱码问题解决心得
自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。
一、Java中文问题的由来
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JS ......

java怎么实现分页

1.PaginationTable.java
package com.sinoest.train.common;
import java.util.List;
/**
* 分页表
* @author 李易烜-修改
* 2009-6-17
*/
public class PaginationTable {
private List<?> entryList;//> 数据
private int totalNumOfRows;// 总行数
private int rowsPerPage = 10;// ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号