java编程思想读书笔记(一)

第一章给我印象比较深的是这段话。

Alan Kay总结了Smalltalk的五大基本特征。这是第一种成功的面向对象程序设计语言,也是Java的基础语言。通过这些特征,我们可理解“纯粹”的面向对象程序设计方法是什么样的:
(1) 所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。
(2) 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。 

(3) 每个对象都有自己的存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。
(4) 每个对象都有一种类型。根据语法,每个对象都是某个“类”的一个“实例”。其中,“类”(Class)是“类型”(Type)的同义词。一个类最重要的特征就是“能将什么消息发给它?”。
(5) 同一类所有对象都能接收相同的消息。这实际是别有含义的一种说法,大家不久便能理解。由于类型为“圆”(Circle)的一个对象也属于类型为“形状”(Shape)的一个对象,所以一个圆完全能接收形状消息。这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括“圆”。这一特性称为对象的“可替换性”,是OOP最重要的概念之一。

一些语言设计者认为面向对象的程序设计本身并不足以方便解决所有形式的程序问题,提倡将不同的方法组合成“多形程序设计语言”。

我比较推崇将面向对象和纯函数编程混合使用。

第二章比较重要的各种对象都是引用传递,主类型除外

各种主类型类型的大小。

里面有些东西和C++不一样。

变量类型 java c++
boolean  1 1或8
char  16 8
byte  8 8
short  16 16
int  32 32
long  64 32
float  32 32
double  64 64
Void  - -

 

书中说“在每个程序文件的开头,都必须放置一个import语句,导入那个文件的代码里要用到的所有额外的类。注意我们说它们是“额外”的,因为一个特殊的类库会自动导入每个Java文件:java.lang。”

但是不是说我们写的文件必须要有import语句,如果不需要导入任何别的类,可以不写。

java主函数是一个静态的public的main函数,带有一个参数String[] args用来给程序传入参数,这点和c++很象。

注释和文档写了很多东西,一直坚信“代码是最好注释”的我,直接忽略。

完成练习:写一个Hellow world

疑问:package是个什么东西?

第三章

位移运算符

<< 低位补零

>> 正数,高位插入0,负数高位插入1

>>>无符号右移,高位一直插入0

没有sizeof,那我想知道一个类的大小怎么办?

原文地址:https://www.cnblogs.com/HighFun/p/2763413.html