p24~p29:

1、基本类型的作用域由花括号的位置所决定,

需要注意的是:在C和C++里屏蔽外部变量的做法,在Java里是不允许的。


2、对象的作用域:引用的作用域和基本类型的相同。而对象却可以存活于作用域之外,

只要你需要,就会一直保留下去。

 

3、Java垃圾回收器:这一机制保证了程序不会发生“内存泄漏”。它监控用new创建的所有对象(在堆中),

并辨别那些不会再被引用的对象,随后,释放这些对象的内存空间。

 

4、如果一切都是对象,那么是什么决定了某一类对象的外观与行为?

 

class

1、可以在类中设置两种类型的元素:字段和方法

 

2、基本数据类型作为类的字段时Java将确保给定默认值,

但不适用于在方法中定义的变量(包括引用),在方法内的变量必须人工初始化,即便是null或0,

例如:connection  conn = null 作为类的字段则不要。

优于C++的地方:如果方法中声明的变量没有初始化,Java会在编译时返回一个错误)

 

3、方法签名 = 方法名 + 参数列表。(唯一确定某个方法)

 

4、通过参数传递对象:像Java中任何传递对象的场合一样,实际上都是将对象传递给另一个引用

 

5、return的两方面含义:1)已经做完,离开此方法。2)返回一个值。(如果有的话)

例如,如果不想返回任何值:void nothing(){ return; }

 

Java程序

1、Java解决名字冲突:反转域名来命名类库。

 

2、运用其他构件:import

 

3、创建类就是在描述那个类的对象的外观与行为。

 

4、除非用new创建那个类的对象,否则,实际上并未获得任何对象。

但是经常会碰到两种情况:一种情形是,只想为某特定域分配单一空间(例如序号),

而不去考虑究竟创建多少对象。另一种情形是,希望没有创建对象,也能够调用某一个方法。

 

5、static关键字:

class StaticTest {
  static int i = 47;      
}
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();

1)静态的只有一份。(StaticTest.i只有一份存储空间,st1和st2所引用的对象共享一个i)

2)可以通过类名直接访问静态成员,并且应该作为首选方式

(这不仅是因为它强调了变量的静态结构,而且在某些情况下还为编译器优化提供了更好的机会)

3)static关键字的最典型应用就是:定义main()方法。