易截截图软件、单文件、免安装、纯绿色、仅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虚拟机的核心。其行为由一系列的指令集来定义。


相关文档:

都是编码惹的祸 java编程

    最近在用润乾在做一些web项目的报表,其中有一个批量打印的报表。需要把参数传到报表里,当把中文传到里面时总时乱码,采用了各种转码方式,也没转过来,晕.........
为什么会有这么多的编码,好头疼呀... ......

java程序员成长全计划

=====================================
前言
在太原经历了一年的痛苦开发之后,项目已经日趋稳定,接下来的工作就是拿现有的代码到其他的省市进行实施、然后做一些本地化开发。日子相对轻松了许多,于是可以抽出时间来温习一下基础的技术知识,给自己列了一个复习提纲,这也是一个java程序员所应该掌握的知识脉络。
=== ......

JAVA 正则表达式4种常用的功能

正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持
下面简单的说下它的4种常用功能:
查询:
以下是代码片段:
String str="abc efg ABC";
String regEx="a|f"; //表示a或f
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
boolean rs=m.find();
如果str中有regEx,那么rs为tru ......

自动生成Java实体类

JDBC读取数据库元数据,生成JAVA实体类
package com.nffish.util;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import com.nffish.c ......

【转】Java double 相加的怪事情

(本文转载自:http://hi.baidu.com/edilyxin/blog/item/27dc152aba3e10315343c19c.html)
问题的提出:  
编译运行下面这个程序会看到什么?  
public   class   Test{  
          public   static  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号