资讯专栏INFORMATION COLUMN

everything is object

Gilbertat / 2536人阅读

摘要:寄存器本书没有做很多说明,不做解释栈,这个区域在的区域里面。有一个这个指针的上移来删除释放内存,下移来存储。重点就是这里面常常用来存储对象。常量存储,这个区域在的区域。本章的联系很明显。

引言
从这一章的标题我们就可以很容易知道这章主要讲的还是作为Java语言最大的一个特性(面向对象)。这个跟自己开始学习Java不同,一开始学习一门语言都是直接从语法开始,但是这本书是从Java的思想开始,这也是这本书的魔力所在。所以我们学习的更应该是这本书的思想,而不是仅仅停留在语法的正确与否。
you manipulate objects with reference

我们去操作elements of memory使用引用(reference),这里面的引用就是我们熟悉的=右边的变量。
相信使用过C语言这类面向过程的语言都会有这样的想法,在我们使用一个变量的时候(例如int i = 0),我们会以为i就是0,但是在Java里面i存储在一个区域,0存在另一个区域(Java内存区域待会会谈到)。理解好这一点就更容易理解类似C语言中的值传参和引用传参。
本书使用了一个很好的例子,将对象比作电视机,将引用比作遥控器,而等号就是就是红外线将他们连接的桥梁。所以我们可以实现远程遥控,所以实质上我们是通过引用去使用对象,而不是直接去使用对象。
为了更好的理解这个方式,书中举了一个例子

String s

在这个时候我们只是定义了一个引用,但是没有定义一个对象。

you must create all the object

有了引用之后就是我们在对对象操作的时候我们一定首先要去创建一个对象,这个在initialization and cleanup 章节会有更好的说明。
这里面最主要的关键字就是new这个操作符。学过Java的这里不想再去多去赘述。

where storage lives

1.Register.寄存器本书没有做很多说明,不做解释
2.The stack.栈,这个区域在computer的RAM区域里面。有一个stack pointer,这个指针的上移来删除释放内存,下移来存储。重点就是在于,这里面常常用来存放前面所说的reference。
3.The heap.堆,这个区域还是在于computer的RAM区域里面。跟栈不同的是我们不需要知道使用内存的时候需要内存的大小。重点就是这里面常常用来存储对象。
4.Constant storage.常量存储,这个区域在computer的ROM区域。
5.Non-RAM storage.这里面存储一些程序没有运行需要存储的数据。本书举了两个例子,流,还有一个就是持久化的存储就是我们常说的存储在数据库。

primitive type

基础数据类型,这里不做太多解释,直接百度就行。

high-precision numbers
高精度计算,缺点就是计算慢。
不是使用操作符去计算,而是调用方法计算
主要有两个类(类似包装类)
BigInteger
BigDecimal
arrays in java

重点就是在于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 
you never need to destroy an object

这个章节比较简单,主要就是创建对象和对象里面的具体内容。

building a java program

1.名字的创建一定要见名知意,因为这样的代码才是可维护的代码,才是长期发展的代码。
2.我们经常说,Java是面向对象的语言。但是我们一定需要用到跟对象无关的变量,我们只是单纯的使用一些变量和一些方法。所以就有了static关键字的设计。

1.首先因为要满足跟对象没有很大的关系,换一句话说就是,不管我有没有创建对象我都可以使用这些方法,所以使用static修饰的变量和方法,一定是每一个对象公用的。
2.要实现跟对象无关,那么我们在加载类的时候就应该分配内存给这些static修饰的变量和方法。
    
your first java program

编程是一个手工活,所以一定要多练,所以我们开始创建第一个Java程序。
1.当我们创建Java程序的时候我们要用到很多其他Java已经给我们设计好的一些库,同时Java.long里面的库是默认都是在每一个Java文件,这些是不需要我们进行导入的。

summary

本章的联系很明显。首先从Java是面对对象的语言出发,我们去讨论对象。那么我们要使用对象,就首先应该知道怎么去控制对象,所以有了reference。那么在我们去控制对象,首先应该这个对象应该存在,所以我们一定需要创建对象,使用new。有了创建我们一定需要去释放内存,Java自己有垃圾处理机制,这部分不需要我们自己去控制。然后把对象综合起来组成一个程序,这里面也讲到一个面对更多的问题,所以有了static这个关键字。最后面是自己写一个Java程序,里面有些关键信息。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76614.html

相关文章

  • gulp排除已压缩文件思路

    摘要:默认排除语法的弊端有个时候我们需要时用排除已经压缩过的,等。主要用两个属性来描述文件,它们分别是路径及内容。判断函数接受一个文件对象,返回一个值。官方例子仅压缩符合条件的文件,丹斯所有文件包括不符合条件的都会被发送到目录。 gulp默认排除语法的弊端 有个时候我们需要时用gulp排除已经压缩过的js,css等。如果以压缩文件是以.min.js之类命名规范的还好,如果不是呢?而且还有其他...

    Aklman 评论0 收藏0
  • 理解Javascript的Proxy

    摘要:关于在计算机领域是一个很普遍的概念,中文通常翻译为代理,代理一般用于描述某人或某事代表他人行事。常见的概念有代理服务器反向代理代理模式等。所以至少可以起到两方面的作用进行访问控制和增加功能。理解了上面两个问题,学习的就简单多了。 关于Proxy Proxy在计算机领域是一个很普遍的概念,中文通常翻译为代理,代理一般用于描述某人或某事代表他人行事。常见的概念有Proxy Server(代...

    adie 评论0 收藏0
  • Learning Notes - Understanding the Weird Parts of

    摘要:标签前端作者更多文章个人网站 Learning Notes - Understanding the Weird Parts of JavaScript 标签 : 前端 JavaScript [TOC] The learning notes of the MOOC JavaScript: Understanding the Weird Parts on Udemy,including...

    inapt 评论0 收藏0
  • Advanced JS Notebook

    How JavaScript works? JavaScript is a single-threaded language that can be non-blocking. showImg(https://segmentfault.com/img/bVbiqTf?w=1678&h=852); JavaScript Engine For the code below: const f()=>{ ...

    jimhs 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<