一切都被视为对象,因此可采用单一固定的语法。尽管一切都“看做”对象,但操纵的标识符实际上是对象的一个引用。“引用和对象”就好像是用遥控器(引用)操控电视(对象)。没有电视,也可以有遥控器。
你拥有一个引用,并不一定要有对象和它关联。
String s;只是一个引用,不是对象。
String s = new String("asdf");
Java程序中占用的空间,存储到什么地方?
- 寄存器
- 堆栈 “基本类型”:boolean, char, byte, short, int ,long, float, double
- 堆 -> 通过new创建的对象
- 常量存储
- 非RAM存储
2.4 创建新的数据类型:类
class ATypeName{};
ATypeName a = new ATypeName();
类中包括字段(数据成员)、方法(成员函数)。
字段可以是任何类型的对象,可以通过引用与其通信。也可以是基本类型的一种。
如果字段是某个对象的引用,那么 必须初始化该引用,以便使其与一个实际的对象关联。
字段可以是任何类型的对象,可以通过引用与其通信。也可以是基本类型的一种。
如果字段是某个对象的引用,那么 必须初始化该引用,以便使其与一个实际的对象关联。
static关键字:
当声明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。所以,即使从未创建某个类的任何对象,也可以调用其static方法或访问其static域。class StaticTest{
static int i = 47;
};
现在,即使创建了两个StaticTest对象,StaticTest.i也只有一份存储空间,这两个对象共享一个i。
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
st1.i == st2.i
static也可以通过其类名直接引用。
foreach:
for(float x : f);
foreach可以用于任何Iterable对象。