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

java内存分析



JAVA
中,有六个不同的地方可以存储数据:

1.
寄存器(
register
)。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极
其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。

2.
堆栈(
stack
)。位于通用
RAM
中,但通过它的“堆栈指针”可以从处理器哪里获得支持。堆栈指针若向下移动,则分配新的内存;
若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时候,
JAVA
编译器必须知道存储在堆栈内所有数据的确切大小和生命周期,因为它必须生成相应的代码,以便上下移动堆栈指针。这一约束限制了程序的灵活
性,所以虽然某些
JAVA
数据存储在堆栈中——特别是对象引用,但是
JAVA
对象不存储其中。

3.
堆(
heap
)。一种通用性的内存池(也存在于
RAM
中),用于存放所以的
JAVA
对象。堆不同于堆栈的好处是:编译器不需要知道要从堆里分配多少存储区域,也不必知道存储的数
据在堆里存活多长时间。因此,在堆里分配存储有很大的灵活性。当你需要创建一个对象的时候,只需要
new
写一行简单的代码,当执行这行代码时,会自动在堆里进行存储分配。当然,为这种灵活性必须要付出相应的代码。用堆进行存储分配比用堆栈进行
存储存储需要更多的时间。

4.
静态存储(
static
storage
)。这里的“静态”是指“在固定的位置”。静态存储里存放程序运行时
一直存在的数据。你可用关键字
static
来标识一个对象的特定元素是静态的,但
JAVA
对象本身从来不会存放在静态存储空间里。

5.
常量存储(
constant
storage
)。常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永
远不会被改变。有时,在嵌入式系统中,常量本身会和其他部分分割离开,所以在这种情况下,可以选择将其放在
ROM


6.

RAM
存储。如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存
在。

 
上面这段话摘取之《
Thinking in Java
》』
 
---------------------------------------------------------------------
堆是一个运行时数据区
,
类的对象从中分配空间。这些对象通过
new
建立,它们不需要程序代码来显式的释放。堆是


相关文档:

Java中集合容器类List和Set的用法

List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
表1  List接口定义的常用方法及功能
从表1可以看出,List接口提供的适合于自身的 ......

java中 string类型转换成UTF 8

1、测试方法如下:
          public static String toUtf8(String str) {
               return new String(str.getBytes("UTF-8"),"UTF-8"):
       &nb ......

传智播客java培训 java基础之MYSQL

 明天有一个新的就业班开课了,有的同学决定转班,自己心里也挺矛盾的,犹豫不决!
去可以让自己对基础更加熟练,毕竟所有的知识都是新东西,如果有更多的时间练习,效果一
定更好!不去是觉得原理都懂得了,只要坚持上完剩下的课程,可以再去慢慢练习代码,没有
必要浪费时间?好矛盾,明天找张老师咨询下....
今 ......

Java/JSP连接Postgre数据库常见问题解答

一、
问:org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "192.168.254.103", user "postgres",database "postgres", SSL off
答:PostgreSQ数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,就会报一些以上的异常。要解决这个问题 ......

如何在Java中获取当前代码行行号

为了实现自定义的log类,能够输出具体的代码行行号,通过使用StackTraceElement对象实现了。
这里指出需要注意的几个问题:
1. 程序中返回的代码行行号,是新建StackTrackElement对象的那一行。
2. 可以通过传参的方法实现输出特定行行号。具体实现见代码。
1/**
 2 *
 3 */
 4package leo.demo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号