一.
存储方式:
1.
堆栈。位于通用RAM(随机访问存储器)中,存储Java对象的引用。效率高于堆,但是灵活性不高。
2.
堆。一种通用的内存池(也位于RAM区),用于存放所有的Java对象。堆不同于堆栈的好处是:编辑器不需要知道存储的数据在堆里存活多长时间。因此,在堆里分配存储有很大的灵活性。
二.
基本类型:
1. 基本类类型的创建比较特殊,不需要用new来创建,而是创建一个并非是引用的“自动”变量,比如Int c=5;这个变量直接储存“值”,并置于堆栈中,而不是堆里,因此更加高效。
2. 基本类型具有的基本类型包装类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。例如:char c = ’x’ ;
Character ch = new Character(c);
也可以这样用:Character ch = new Character(‘x’);
Java SE5的自动包装功能将自动地将基本类型转换为包装器类型:
Character ch = ‘x’;
并可以反向转换: char c = ch;
三.
关键字return
:
关键字return的用法包括两方面:首先,它代表“已经做完,离开此方法”。其次,如果此方法产生一个值,这个值要放在return语句后面。如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return,因此在方法中并非总是必须要有一个return语句。但是,如果一个方法声明它将返回void之外的其他东西,那么必须确保每一条代码路径都将返回一个值。
例如:boolean flag (){ return true; }
void nothing(){ return ;}
若返回类型是void, return关键字的作用只是用来退出方法。因此,没有必要到方法结束时才离开,可以在任何地方返回值。但是如果返回类型不是void, 那么无论在何处返回,编辑器都会强制返回一个正确类型的返回值。
四.
Static
关键字:
1.使用static关键字是为了解决两种情形的问题。一种情形是,只想为某特定域分配单一存储空间,而不是去考虑究竟要创建多少对象,甚至根本就不创建任何对象。另一种情形是:希望某个方法不与包含它的类的任何对象关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。所以对于static 的域或方法有两种方式可以调用,第一种是直接用类名调用,另一种是用创建的对象名调用。
2.特别值得注意的是:尽管当static作用于某个字段时,肯定会改变数据创建的方式(因为一个static字段对每个类来说都只有一份存储空间,而非static字段则是对每个对象有一个存储空间),但是如果static作用于某个方法,差别就没那么大。
3.在static 方法的内部不能调用非静态方法或域,反过来都是可以的。特殊的是:构造方法也是static的,但是却可以调用非static的域和方法。
4.在初始化时,是先初始化静态字段,在初始化非静态字段。
实例代码:
package
first2;
public
class
Hess {
static
int
b
=70;
public
int
c
=90;
public
int
getC() {
return
c
;
}
public
void
setC(
int
c) {
this
.
c
= c;
}
public
static
int
getB() {
return
b
;
}
public
static
void
setB(
int
b) {
Hess.
b
= b;
}
}
package
first2;
class
Hess1 {
public
static
native
long
currentTimeMillis();
public
static
void
main(String[]a){
Hess h=
new
Hess();
Hess h1=
new
Hess();
h.setB(10);
//h.b=10;
h.setC(60);
System.
out
.println(h.getB());
System.
out
.println(h.getC());
System.
out
.println(h1.getB());
System.
out
.println(h1.getC());
}
}
输出结果:
10
60
10
90