JAVA学习笔记整理

想要学习Java很久了,大概可以追朔到四年前还在读书的时候。但是,现在才开始学习,一是因为我的懒惰,二是因为工作领域属于嵌入式,不需要JAVA。然而,现在的情况是,JAVA已经渗入到了嵌入式领域,看看google的Android平台就清楚JAVA的威力了。所以,我决心开始学习JAVA。学习的另一个原因还在于个人的原因:我很惭愧,到目前为止,我还不能作出一个带有GUI的应用程序,无论在windows还是在linux,没有这方面的经验和知识,而JAVA给了我的一次补过的机会,它可以做到一次编写,到处运行。

参考的JAVA书籍:

Thinking in JAVA (Fourth Edition), Bruce Eckel

Core JAVA (Eighth Edition), Cay S.Horstmann, Gary Cornell

第一章 对象导论

1. JAVA 所基于的五个特征:

Everything is an object. 面向对象设计的基本理念。但是基本数据类型(int, char, long, short, float, double, boolean)及其实例并不是对象,它们应是构成对象的最基本的数据单位。

A program is a bunch of objects telling each other what to do by sending messages.向对象发送消息的含义,即是调用该对象的公有方法;比如,你想打开一个电灯泡,你可以向“电灯泡对象”发送一个消息:Light lt.turnOn()

Each object has its own memory made up of other objects. 每个对象的实例都必须执行new操作。

Every object has a type. class是对象的类型;object是对象的实例;"对象引用"是引用对象的变量。比如,Light lt = new Light()这条语句中Light是class, “new Light()” 是对象实例,lt是对象引用。

All objects of a particular type can receive the same messages.对象设计中的继承和多态,由此引出。

2.在JAVA里,程序员按角色分为类创建者和客户端程序员是大有裨益的。典型的case是类库开发者和JAVA应用程序员。然而,其实在同一个JAVA项目或者JAVA程序实现过程中,你一般可能既是类创建者,又是客户端程序员。

客户端程序员的目标是收集各种用来实现快速应用开发的类;类创建者的目标是构建类,这种类只向客户端程序员暴露必须的部分,隐藏其他部分。

JAVA用三个关键字在类的内部设定边界:public,private,protected.

JAVA还有一个默认的访问权限,当类的内部元素(数据或方法)没有使用到上面三个关键字时,它将被设置为默认权限。这种权限称为“包访问权限”,类可以访问同一包中的其他类的成员,但是在包之外,这些成员如同指定了private一样。

3.组合(composition):使用现有的类合成新的类;如果这种组合是动态发生的,则成为“聚合"(aggregation)。组合被视为"has-a”关系。

在建立新类时,首先应该考虑组合,它更简单灵活。

4.继承(inheritance):源类(基类,父类,超类);导出类(继承类,子类);使用extends关键字;

有两种方法可以使超类与子类产生差异:一是直接在导出类中添加新方法,这些新方法并不是基类接口的一部分;二是改变现有基类的方法的行为,称之为覆盖(overriding)。继承被视为"is-a”, “is-like-a”关系。

5.多态。在JAVA中,动态绑定是默认行为,不需要添加额外的关键字来实现多态。“后期绑定”:当向对象发送消息时,被调用的代码知道运行时才能确定。

6.单根继承结构。所有的类最终都继承自单一的基类:Object。在单根继承结构中,所有对象都具有一个公用的接口,所有他们归根到底都是相同的基本类型。

单根继承结构保证所有对象都具备某些功能。比如所有对象都可以容易地在堆上创建,而参数传递也得到了极大简化。

单根继承结构使垃圾回收器的实现变得容易很多。

7.容器。容器对象可以在任何需要时都可以扩充自己,以容纳你至于其中的所有对象。(我对容器的理解是它是“动态数组”的超级版本)

JAVA SE5增加了参数化类型,在JAVA中它称为范型。

8.JAVA对象的创建和生命周期

JAVA完全采用了动态内存分配方式。每当想要创建新对象时,就要使用new关键字来构建对象的动态实例。

JAVA提供了被称为“垃圾回收器”的机制,它可以自动发现对象何时不再使用,继而销毁它。

JAVA内置了异常处理机制,而且强制你必须使用它。

JAVA的并发性内置于语言本身,而且JAVA SE5增添了大量额外的库支持。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzyzjp.html