Java编程思想--第2章 一切都是对象

2.1 用引用操纵对象

操作的标识符是对象的一个引用,而不代表对象本身。

2.2 必须由你创建所有对象

一旦创建了一个引用,就希望它能与一个新的对象相关联。通常用new关键字来实现这个目的,意思就是“给我一个新对象”。

2.2.1 存储到什么地方

寄存器:最快的存储区,位于CPU内部。因为数量有限,要按需分配,程序员感受不到。

堆栈:位于RAM中,但是通过堆栈指针可以从处理器哪里获得直接支持。堆栈指针向下移动,则分配新的内存;若向上移动,则释放这些内存。一般是存放对象引用,约束:创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以便移动堆栈指针。

堆:一种通用的内存池,也位于RAM区,用于存放所有的Java对象。堆不同于栈的好处:编译器不需要知道存储的数据在堆内存活多长时间,因此堆内存分配有很大的灵活性。

常亮存储:常量值通常直接存放在代码内部,因为永远不会改变。

非RAM存储:如果数据完全存活在程序之外,那么它可以不受程序的任何控制,在程序没有运行的时候它也可以存在,如流对象和持久化对象。

【注意】基本类型、对象引用存放在堆栈中,对象本身放在堆中。String是一个不变的常量,放在常量池中。如果是new出来的String对象放在堆中,它的引用是在栈中。

2.2.2 特别基本类型

基本类型:为了提高效率,不用new来创建,而是创建一个并非是“引用”。这个变量直接存储值,并且置于堆栈中。

基本数据类型大小最小值最大值包装器类型

boolean---Boolean

cahr16bitUnicode0Unicode2^16-1Character

byte8bit-128+127Byte

short16bits-2^15+2^15-1Short

int32bits-2^31+2^15-1Interger

long64bits-2^63+2^63-1Long

float32bitsIEEE754IEEE754Double

double64bitsIEEE754IEEE754Double

所有数值类型都有正负号。

基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型、

构造方法:

char c = 'x';

Character ch = new Character(c);

也可以这样:

Character ch = new Character(‘'x');

JDK1.5后有自动装箱拆箱功能

Character ch = 'x'; 或 char c = ch;

Java提供了两个高精度的类:BigInteger和BigDecimal,他们大体上是属于包装类的范畴,但是没有对应的基本类型。

2.2.3 Java中的数组

Java可以确保数组会被初始化,而且不会在他的访问范围之外被访问。

当数组存放基本数据类型的时候,全部初始化为0。

当创建一个数组对象时,实际上就是创建了一个引用数组,并且每个引用都会自动被初始化为一个特定的值,该值拥有一个自己的关键字null。一旦编译器看见null,就知道这个引用还没有指向某个对象。在使用任何引用之前,必须为其指定一个对象;如果试图使用一个还是null的引用,在运行时会报错。

2.3 永远不需要销毁对象

2.3.1作用域

由大括号决定,决定了在其内定义的变量名的可见性和生命周期。在作用域内定义的变量只可用于作用域结束之前。Java中不存在C++的作用域覆盖的情况。

2.3.2 对象的作用域

Java对象的生命周期和基本数据类型的不一样。当用new创建一个新的对象时,它可以存活于它的创建所在的作用域之外。

{

String s = new String("Hello");

}

引用s在作用域终点就消失了。然而,s指向的String对象仍继续占据内存空间。所以Java有一个垃圾回收器,用来监视new创建的所有对象,并辨别那些不怎么被引用的对象。然后将其释放掉。

2.4 创建新的数据类型:类

2.4.1 字段和方法

类中可以设置两种类型的元素:字段(数据成员)和方法(成员函数)

字段可以是基本数据类型,也可以是任何类型的对象,通过其引用和其进行通信,必须要初始化该引用,以便使其与一个实际的对象相关联。

每个对象都有用来存储其字段的空间,普通字段不能在对象间共享。

使用 . 来引用对象成员,如data.i = 10;

基本成员默认值

若类的某个成员是基本数据类型,即使没有进行初始化,Java也会给它默认值,这种默认只针对类的字段。(boolean是false,其他是0)

2.5 方法、参数和返回值

方法就是函数。它的基本组成方式:名称、参数、返回值和方法体。

Java中的方法只能作为类的一部分来创建。

调用方法的行为称作发送消息给对象。

2.5.1 参数列表

方法的参数列表是指要传递什么信息给方法。

return关键字表示做完了要离开这个方法了,带上要返回的结果。

2.6 构建一个Java程序

2.6.1 名字可见性

引入包名,反写域名。

2.6.2 运用其他构件

import关键字

2.6.3 static关键字

用new来创建对象的时候,数据存储空间才会被分配,其方法才供外界调用。通过static关键字可以不用创建对象而调用方法。

当声明一个事物是static时,意味着它不会与它所在的类的任何对象关联在一起。所以,即使从未创建某个类的任何对象,也可以调用其static方法或访问其static域。

也就是说,为什么非得创建一个对象,才能使用方法和字段。因为非static域的字段和方法都是和特定的对象绑定的。如果你想不创建对象,直接使用方法和字段,就设定static,这样没有和特定对象绑定,直接用就好了,不用创建对象。

使用: 直接类名+方法名即可。

2.7 第一个Java程序

java.lang包是默认导入到每个类文件中的,他的所有类都是可以直接被使用的。

2.8 注释和嵌入文档

介绍一些常用的javadoc标签:

1.@see:引用其他类:在生产的HTML文件中,可以通过这个标签链接到其他文档。

2.{@link package.class#memeber label} :与@see相似

3.{@docRoot} :产生到文件根目录的相对路径。

4.@version : 存放版本信息

5.@author :作者

6.@since: 允许指定程序代码最早使用版本。

7.@Param :是用来描述方法中参数列表。

8.@return :描述返回值的含义

9.@throws :调用失败后抛出的对象。

10.@Deprecated :弃用的意思。指出一些旧特性被新特性取代,不要使用这些特性,可能会被删除。

2.9 编码风格

类名的首字母大写。使用驼峰风格。

方法、变量名等地一个字母小写。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345