??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品久久久久永久免费观看,精品福利视频导航大全,亚洲影院一区http://www.aygfsteel.com/grasszring/category/44796.html草之戒_zh-cnThu, 03 Jun 2010 17:39:29 GMTThu, 03 Jun 2010 17:39:29 GMT60Java学习W记(1)——Java~程思想(一切皆对象)http://www.aygfsteel.com/grasszring/articles/322430.htmlAidanAidanWed, 02 Jun 2010 07:24:00 GMThttp://www.aygfsteel.com/grasszring/articles/322430.htmlhttp://www.aygfsteel.com/grasszring/comments/322430.htmlhttp://www.aygfsteel.com/grasszring/articles/322430.html#Feedback0http://www.aygfsteel.com/grasszring/comments/commentRss/322430.htmlhttp://www.aygfsteel.com/grasszring/services/trackbacks/322430.html        在此ơ我的blog计划中,会把Java~程思想每一张的W记都记录在blog中,我在l常在网上看到有Java~程思想讲得有点啰嗦Q确实我L书也有这U想法,所以在我的blog中我会尽量减,只会出现有关Java和内容,会把作者描q的C/C++Ҏ斚w省略掉,当然q只是做一个参考,大家一定要d习完整的Java~程思想?br />

1.用引用操U对?/h3>        Java中一切都视ؓ对象Q但实际操作对象是一?#8220;引用”(reference)标识W?br /> q就如果Q遥控器(引用)操作电视(对象)一P我们拿着遥控器就能与电视Z持连接。如果想要调整音量大或者更换频道时Q我们实际上是操作的遥控器,再由控制器调控电视机。我们可以带着控制器在戉K四处走动Q同样也可以操作电视机?br /> 控制器和电视机是同时可以单独存在的,没有电视机,遥控器也可单独存在?br />
String s;
在上面我们创Z一个String的引用,但它只是一样引用,q未与Q何一个对象相兌Q如果你试向s发送消息,则会得到一个运行时异常Q所以一U安全的做法是,在我们创Z个引用同时便行初始化?br />
String s = "init";
上面的String是Java中的一U特D类型,所以可以直接用带引号的文本进行初始化Q通常Q必dJava中的对象采用一U更通用的初始化Ҏ?br />

2.必须p己创建所有的对象

       通常我们使用new操作W来创徏一个对象?br />
String s = new String("init");
上面是创Z个String对象同时初始化ƈ把该对象的引用赋值给sQ此时s便是一个对象的引用(sq是一个对象,只是一个引??br />

2.1.存储位置

       Java中有5个不同的数据存储区:
       1).寄存器:它位于处理器内部是最快的存储区。但寄存器极其有限,它是Ҏ需求进行分配,我们不能直接操作也不能在E序中感觉到它的存在?br />        2).堆栈Q?/strong>位于通用RAM(随机讉K存储?中通过堆栈指针可以处理器哪里操作堆栈。指针向下移动则分配新的内存Q若向上Ud则释N些内存,速度公次于存储器Q但Java必须知道存储在堆栈内所有项的确切生命周期,以便上下Ud指针。这限制了程序的灉|性,所以只有某些Java数据存储于堆栈中(对象的引?QJava对象q不存放于其中?br />        3).堆:通用的内存池Q用于存放所有的Java对象。存储在堆里的数据编译器不需要知道存zd长时间。当使用new创徏一个对象时Q会自动在堆里存储分配。ؓ了这U灵zL也牺牲更多的时间?br />        4).帔R存储Q?/strong>帔R通过直接存放于代码的内部Q因Z们永q不会被改变?br />        5).非RAM存储Q?/strong>该存储于E序之外Q即使程序停止依然保持自q状态如(对象,持久化对?。对象{化ؓ字节,发送给另一台机器,“持久化对?#8221;卛_象被存储于磁盘或者其他媒介上Q在需要时可恢复常规对象?br />

2.2.基本数据cd

       在Java中经常用到这样一pdҎ对象?#8220;基本cd”Qnew创徏对象会存储在“?#8221;里,如果是一些特别小的、简单的cdQ往往不是那么有效Q在Java中提供一些不需要用new创徏变量Q而是创徏一?span style="color: red;">q引用?#8220;自动”变量。这个变量直接存?#8220;?#8221;q存放于堆栈中?br />        Java中的所有基本类型所占的存储I间大小是固定的Q不会因为硬件架构变化而变化?br />       

3.W一个JavaE序

package com.onlyeffort.java.concurrency;

// 可替换ؓQimport java.util.*;
import java.util.Random;

//定义一个公q名ؓQHelloWorld
public class HelloWorld {
    
// mainҎQ程序的入口Q结构不可变Q主体可?/span>
    public static void main(String[] args) {
        
// body start..大括号开?br />         // 创徏一个对?/span>
        HelloWorld hw = new HelloWorld();
        
// 使用hw引用调用sayҎ
        System.out.println(hw.say());
        
// body end..大括L?/span>
    }
    
/**
     * 
     * 
@return q回一个字W串,q打出出?
     
*/
    
public String say() {
        Random rand 
= new Random();
        
return "Hello,World!" + rand.nextInt();
    }
}
      W一行ؓ包声明语句,包名全ؓ写Q一般ؓ域名的反转Ş式,防止出现冲突Q因为域名在全球是唯一的?br />       当我们需要用其它公qcȝ件时需要用import语句引入cR但java~译器在每个Java文g~译时会自动引用java.lang.*;下面的所有类Q只是lang包下面的所有,但ƈ不包含lang下面的子包,如果我们需要用java.lang.reflect.Array;Ӟq需要我们手动引用?br />       mainҎ是Javaq行时程序的入口Q结构单一不可改变。在mainҎ中我们创Z一个HelloWorld对象Qƈ把它赋值给hwQ此时hw是一个HelloWorld对象的一个引用,hwq是一个对象。在后面我们调用了HelloWorld的sayҎQ此Ҏq回一个字W串Q在sayҎ中,我们创徏了一个随机数Qƈ把它与一个字W串相连接。rand.nextInt()Ҏ会返回一个intcd的整敎ͼq里Java~译器会执行cd转换Q把intcd转换为Stringcdq执行字W串q接。在最后我们用了return语句q回q个Ҏ的返回倹{?br />       return在JavaE序中有两种作用Q一Q会l束当前Ҏ(return;);二:q回某个Ҏ的返回?return value;)?br />       在这个HelloWorld中出C“//”?#8220;/***/”q都是Java当中的注释。Java~译器编译时会忽略注释后面的所有内宏V?br />


Aidan 2010-06-02 15:24 发表评论
]]>
վ֩ģ壺 | | | | | | ̨ɽ| | º| ţ| | | ɳƺ| ĺ| | ɽ| ˿| | | | | пǰ| | | Ϋ| | | | ף| ƽ˳| ƺ| ɽ| | | | º| ƽ| | | | |