从这一章的标题咱们就能够很容易知道这章主要讲的仍是做为Java语言最大的一个特性( 面向对象)。这个跟本身开始学习Java不一样,一开始学习一门语言都是直接从语法开始,可是这本书是从Java的思想开始,这也是这本书的魔力所在。因此咱们学习的更应该是这本书的思想,而不是仅仅停留在语法的正确与否。
咱们去操做elements of memory使用引用(reference),这里面的引用就是咱们熟悉的=右边的变量。
相信使用过C语言这类面向过程的语言都会有这样的想法,在咱们使用一个变量的时候(例如int i = 0),咱们会觉得i就是0,可是在Java里面i存储在一个区域,0存在另外一个区域(Java内存区域待会会谈到)。理解好这一点就更容易理解相似C语言中的值传参和引用传参。
本书使用了一个很好的例子,将对象比做电视机,将引用比做遥控器,而等号就是就是红外线将他们链接的桥梁。因此咱们能够实现远程遥控,因此实质上咱们是经过引用去使用对象,而不是直接去使用对象。
为了更好的理解这个方式,书中举了一个例子java
String s
在这个时候咱们只是定义了一个引用,可是没有定义一个对象。c++
有了引用以后就是咱们在对对象操做的时候咱们必定首先要去建立一个对象,这个在initialization and cleanup 章节会有更好的说明。
这里面最主要的关键字就是new这个操做符。学过Java的这里不想再去多去赘述。数据库
1.Register.寄存器本书没有作不少说明,不作解释
2.The stack.栈,这个区域在computer的RAM区域里面。有一个stack pointer,这个指针的上移来删除释放内存,下移来存储。重点就是在于,这里面经常用来存放前面所说的reference。
3.The heap.堆,这个区域仍是在于computer的RAM区域里面。跟栈不一样的是咱们不须要知道使用内存的时候须要内存的大小。重点就是这里面经常用来存储对象。
4.Constant storage.常量存储,这个区域在computer的ROM区域。
5.Non-RAM storage.这里面存储一些程序没有运行须要存储的数据。本书举了两个例子,流,还有一个就是持久化的存储就是咱们常说的存储在数据库。编程
基础数据类型,这里不作太多解释,直接百度就行。数组
high-precision numbers
高精度计算,缺点就是计算慢。 不是使用操做符去计算,而是调用方法计算 主要有两个类(相似包装类) BigInteger BigDecimal
重点就是在于Java的设计是为了安全性,因此数组在c或者c++里面的功能在Java里面没有,之后章节会有更细致的说明,这里不作多余解释。安全
小知识点:若是没有引用一个对象,基础类型Java会给一个0,引用类型会给一个null。以下图
Primitive type Default boolean false char ‘\u0000’ (null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d
这个章节比较简单,主要就是建立对象和对象里面的具体内容。学习
1.名字的建立必定要见名知意,由于这样的代码才是可维护的代码,才是长期发展的代码。
2.咱们常常说,Java是面向对象的语言。可是咱们必定须要用到跟对象无关的变量,咱们只是单纯的使用一些变量和一些方法。因此就有了static关键字的设计。ui
1.首先由于要知足跟对象没有很大的关系,换一句话说就是,无论我有没有建立对象我均可以使用这些方法,因此使用static修饰的变量和方法,必定是每个对象公用的。 2.要实现跟对象无关,那么咱们在加载类的时候就应该分配内存给这些static修饰的变量和方法。
编程是一个手工活,因此必定要多练,因此咱们开始建立第一个Java程序。
1.当咱们建立Java程序的时候咱们要用到不少其余Java已经给咱们设计好的一些库,同时Java.long里面的库是默认都是在每个Java文件,这些是不须要咱们进行导入的。设计
本章的联系很明显。首先从Java是面对对象的语言出发,咱们去讨论对象。那么咱们要使用对象,就首先应该知道怎么去控制对象,因此有了reference。那么在咱们去控制对象,首先应该这个对象应该存在,因此咱们必定须要建立对象,使用new。有了建立咱们必定须要去释放内存,Java本身有垃圾处理机制,这部分不须要咱们本身去控制。而后把对象综合起来组成一个程序,这里面也讲到一个面对更多的问题,因此有了static这个关键字。最后面是本身写一个Java程序,里面有些关键信息。指针