Think IN JAVA ①

本文介绍了《Think in Java》一书的前两章节内容,涵盖了对象的概念、Java的基本特性、数据类型、作用域等基础知识,并对面向对象编程进行了初步探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 昨天开始在网上在线看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:作者

好了,写完了。前两章主要是理论,纯基础上的理解,没有操作性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值