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

Java内存管理

Java内存管理(一、内存分配)
关键字: 内存分配,常量池
一、Java内存分配
1、 Java有几种存储区域?
* 寄存器
    -- 在CPU内部,开发人员不能通过代码来控制寄存器的分配,由编译器来管理
* 栈
    -- 在Windows下, 栈是向低地址扩展的数据结构,是一块连续的内存的区域,即栈顶的地址和栈的最大容量是系统预先规定好的。
    -- 优点:由系统自动分配,速度较快。
    -- 缺点:不够灵活,但程序员是无法控制的。
    -- 存放基本数据类型、开发过程中就创建的对象(而不是运行过程中)
* 堆
    -- 是向高地址扩展的数据结构,是不连续的内存区域
    -- 在堆中,没有堆栈指针,为此也就无法直接从处理器那边获得支持
    -- 堆的好处是有很大的灵活性。如Java编译器不需要知道从堆里需要分配多少存储区域,也不必知道存储的数据在堆里会存活多长时间。
* 静态存储区域与常量存储区域
    -- 静态存储区用来存放static类型的变量
    -- 常量存储区用来存放常量类型(final)类型的值,一般在只读存储器中
* 非RAM存储
    -- 如流对象,是要发送到另外一台机器上的
    -- 持久化的对象,存放在磁盘上
2、 java内存分配
    -- 基础数据类型直接在栈空间分配;
    -- 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收;
    -- 引用数据类型,需要用new来创建,既在栈空间分配一个地址空间,又在堆空间分配对象的类变量;
    -- 方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完后从栈空间回收;
    -- 局部变量 new 出来时,在栈空间和堆空间中分配空间,当局部变量生命周期结束后,栈空间立刻被回收,堆空间区域等待GC回收;
    -- 方法调用时传入的 literal 参数,先在栈空间分配,在方法调用完成后从栈空间释放;
    -- 字符串常量在 DATA 区域分配 ,this 在堆空间分配;
    -- 数组既在栈空间分配数组名称, 又在堆空间分配数组实际的大小!
3、Java内存模型
* Java虚拟机将其管辖的内存大致分三个逻辑部分:方法区(Method Area)、Java栈和Java堆。
    -- 方法区是静态分配的,编译器将变量在绑定在


相关文档:

原创+源码 基于Java Web技术开发的BBS论坛系统

 本文转自:程序员之家论坛  原文地址:http://www.phome.asia/forum/thread/20601.htm
 
我已把附件上传到csdn下载频道地址:http://download.csdn.net/source/1928015
            也可去原文地址下载附件。(*^__^*)
前 言
  &nbs ......

java除法的陷阱

Java除法运算的陷阱
 
除法运算谁不会啊,很多人不屑一顾,真是无知者无畏!
其实除法、求余运算有一些陷阱。一旦计算发生了问题,还很不好找。不好找的原因主要是问题的偶然性太强,如果你知道可能发生什么问题,你的代码就可以写得更安全。
 
数学除法规定,0不能做除数,因为会得到一个无穷大数据。
&nb ......

java Socket 通讯的代码例子

java Socket 通讯的代码例子
实现Client端功能的ClientApp.java原文件:
import java.net.*;
import java.io.*;
import java.lang.*; 
public class ClientApp
{
public static void main(String args[])
{
try
{
//创建通讯并且和主机Rock连接
Socket cSocket=new Socket("192.168.100.188", ......

java static和final的理解

final 关键字 和 static 用法
一、final 
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
final类不能被继承,没有子类,final类中的方法默认是final的。 
......

java keywords and language tutorial

http://en.wikipedia.org/wiki/List_of_Java_keywords
http://java.sun.com/docs/books/tutorial/java/index.html
extends,implements,final,static,synchronized,super
Nested Classes
class OuterClass {
    ...
    class NestedClass {
      &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号