2.1用引用操纵对象
JAVA中把一切都视为对象,操纵的标识符实际上是对象的一个“引用”。你拥有引用,但并不一定需要有对象与之关联。比如:String s;这里只是引用,不是对象。
2.2必须由你创建所有对象
一旦穿件了引用,就希望它能与一个新的对象相关联。通常用new操作符实现。
2.2.1存储到什么地方
1)寄存器。最快的存储区,位于处理器内部。一般是透明的。
2)堆栈。位于通用RAM中。某些JAVA数据存储于堆栈中-特别是对象引用,但是JAVA对象并不存储于其中。
3)堆。用于存放所有的JAVA对象。
4)常量存储。常量值通常直接存在程序代码内部,这样做是安全的,因为他们永远不会被改变。
5)非RAM存储。数据完全存活于程序之外,基本例子:流对象和持久化对象。
*对象引用存储在堆栈中,new出的对象存储在堆中。
2.2.2特例:基本类型
对于基本类型,JAVA往往是不用new来创建变量,而是创建一个并非引用的“自动变量”,这个变量的值存储在堆栈中,因此更加高效。
JAVA中基本类型所占空间大小不会变化,因此具有可移植性:
基本类型 | 大小 | 最小值 | 最大值 | 包装器类型 |
boolean | - | - | - | Boolean |
char | 16-bit | unicode0 | unicode2e16-1 | Character |
byte | 8bit | -128 | +127 | Byte |
short | 16bit | Short | ||
int | 32bit | Integer | ||
long | 64bit | Long | ||
float | 32bit | Float | ||
double | 64bit | Double | ||
void | - | Void |
2.2.3JAVA中的数组
存放基本类型的数组,编译器会确保这种数组的初始化,为它所占的内存全部置0。2.3永远不需要销毁对象
2.3.1作用域
作用域由花括号的位置决定。
{
int x=0;
{
int x=9;//illegal
}
}
JAVA不允许,因为可能会导致程序混乱。
2.3.2对象的作用域
{
String s=new String("a");
}
引用s在作用域终点消失,然而s指向的string对象仍然占据内存空间。但是JAVA的垃圾回收器会回收空间的。
2.4创建新的数据类型:类
2.4.1字段和方法
若类的某个成员是基本数据类型,即时没有初始化,JAVA也会确保它有一个默认值。但是
方法中的变量不会被初始化。
2.5构建一个JAVA程序
2.5.1static关键字
2种情况使用:一,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象。二,即使没有创建对象,也能够调用这个方法。
class StaticTest{
static int i=47;
}
StaticTest st1=new StaticTest();
StaticTest st2=new StaticTest();
st1.i和st2.i指向同一存储空间。
2.6注释和嵌入式文档
/* */,//两种方式。
2.6.1注释文档
javadoc便是提取注释的工具,可以输出HTML文件。
2.6.2语法
所有javadoc命令只能在/**注释中出现,注释结束于*/。注意:javadoc只能为public和protected成员进行文档注释。private和包内可访问成员会被忽略掉。
2.6.3嵌入式HTML
//:object/document.java
/**
*YOU CAN insert a list:
*item one
*/
///:~
2.6.4一些标签示例
@version 显示版本信息
@author显示作者信息
@param参数信息
@return返回值
@throws异常信息
2.6.5文档示例
//:object/Hello.java
import java.util.*;
/** the first thinking in java.
*Display a string
*@author Bruce Eclke
*author www.mind.net
@version 3.0
*/
public class Hello{
/**Entrv point to class.
*@param args array of string
*@throws exception no exception
*/
public static void main(string[] args){
}
}/*Output:(55% match)
Hello,it's:
wed oct 05 13:39:36 MDT 2014
*///:~
2.7编码风格
“驼峰风格”,类的首字母大写,多个单词组成,把他们每个首字母大写,并在一起。方法和字段以及对象引用名称与类风格一样,但是标识符第一个字母小写。