昨天开始在网上在线看Think IN JAVA的,工作之余在看,或许是这几天刚好没啥事,顺便看看,反正就是在看这本书,在家也看。
两天看了两章了,速度够快的,但是没什么感觉,都是最基础的思想疏导,我简要做一下笔记,反正这两章对于我目前来说没多大作用,也不是白看,存在即是合理的,但是对于没有java基础的人来说,理解这些东西不是那么容易滴,好,我做如下简约的记录:
第一章:对象入门
1.抽象的进步
所有编程语言的最终目的都是提供“抽象”方法。
五大特征:
⑴所有的东西都是对象。
⑵程序是一堆对象的组合。
⑶每个对象都有自己的存储空间,可容纳其他对象。
⑷每个对象都有一种类型。
⑸同一类所有对象都能接收相同的消息。
1.2 对象的接口
在面向对象的程序设计中,尽管我真正要做的是新建各种各样的数据“类型”(type),但几乎所有面向对象的程序设计语言都采用了“class”关键字,提出了“问题空间”和“方案空间”的概念。
1.3实现方案的隐藏
Java采用三个显示(明确)关键字以及一个隐式(暗示)关键字设置类边界:public、private、protect以及暗示性的friendly,默认就是后者friendly。
1.4方案的重复使用
↓
1.13略,并没有写记录。
第二章:一切都是对象
2.1用句柄操作对象
句柄:Handle 类比于电视机与遥控器,遥控器就像句柄,电视机就是对象。String s 是句柄,创建一个句柄时,无论如何都要进行初始化 String s="abc" ;
2.2所有的对象都必须创建
String s = new String ("abc");
2.2.1保存到什么地方
①寄存器。
②堆栈,通过“堆栈指针”获得处理的直接支持,向上移动可以释放那些内存,向下移动则是创建新内存。
③堆,和堆栈不同,“内存堆”或“堆”(Heap)在于编译器不必知道要从堆里分配多少存储空间及需要停留时间,通过new关键字编制。
④静态储存,“静态”(static)指“位于固定位置”。
⑤常数存储,常数值通常直接置于程序内部。
⑥非RAM(随机访问存储器)存储,基于远程机器或者磁盘存储。
2.2.2特殊情况:主要类型(基本数据类型)
有一系列类需特别对待;可将它们想象成“基本”、“主要”或者“主”(Primitive)类型,进行程序设计时要频繁用到它们。之所以要特别对待,是由于用new创建对象(特别是小的、简单的变量)并不是非常有效,因为new将对象置于“堆”里。对于这些类型,Java采纳了与C和C++相同的方法。也就是说,不是用new创建变量,而是创建一个并非句柄的“自动”变量。这个变量容纳了具体的值,并置于堆栈中,能够更高效地存取。
boolean-->Boolean; char-->Character;
byte-->Byte; short-->Short;
int-->Integer; long-->Long;
float-->Float; double-->Double;
void-->Void;
高精度数值:BigInteger和BigDecimal,代价:失去了速度得到了精度。
2.2.3数组
2.3绝对不要清除对象
2.3.1作用域
作用域同时决定了它的“可见性”以及“存在时间”。
2.3.2对象的作用域
{
String s = new String("abc");
}/*作用域终点*/
句柄s会在作用域终点处消失,但s指向的String对象依然占据着内存空间,“垃圾收集器”会识别引用是否还有效来判断是否需要释放被占用的内存空间。
2.4新建数据类型:类(class)
2.4.1字段与方法
数据成员(字段)及成员函数(方法)
⑴主要成员的默认值
boolean-->false; char-->'\u0000'(null);
byte-->(byte)0; short-->(short)0;
int-->0; long-->0L;
float-->0.0f; double-->0.0d;
2.5方法、自变量、返回值
2.5.1自变量列表
2.6构建java
2.6.1名字的可见性
2.6.2使用其他组件
import导入其他需要用的对象。
2.6.3 static关键字
通常,我们创建类时会指出那个类的对象的外观与行为。除非用new创建那个类的一个对象,否则实际上并未得到任何东西。只有执行了new后,才会正式生成数据存储空间,并可使用相应的方法。
但在两种特殊的情形下,上述方法并不堪用。一种情形是只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用的方法。为满足这两方面的要求,可使用static(静态)关键字。一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一起。所以尽管从未创建那个类的一个对象,仍能调用一个static方法,或访问一些static数据。而在这之前,对于非static数据和方法,我们必须创建一个对象,并用那个对象访问数据或方法。这是由于非static数据和方法必须知道它们操作的具体对象。当然,在正式使用前,由于static方法不需要创建任何对象,所以它们不可简单地调用其他那些成员,同时不引用一个已命名的对象,从而直接访问非static成员或方法(因为非static成员和方法必须同一个特定的对象关联到一起)。
有些面向对象的语言使用了“类数据”和“类方法”这两个术语。它们意味着数据和方法只是为作为一个整体的类而存在的,并不是为那个类的任何特定对象。有时,您会在其他一些Java书刊里发现这样的称呼。
为了将数据成员或方法设为static,只需在定义前置和这个关键字即可。例如,下述代码能生成一个static数据成员,并对其初始化:
class StaticTest {
Static int i = 47;
}
2.7我们的第一个java程序
2.8注释与嵌入文档
2.8.1注释文档 javadoc工具
通过两种方式来使用javadoc:嵌入的HTML或者使用“文档标记“,@see引用另外一个注释文档,@author:作者
好了,写完了。前两章主要是理论,纯基础上的理解,没有操作性。