Thinking in JAVA笔记——第二章 一切都是对象

2.1用引用操作对象

虽然一切皆对象,但实际上用的是对象的“引用”。

理解:引用可以理解为别名,引用“知道”对象实际的存放地址,并通过引用可以操作对象

2.2创建对象

new操作符

2.2.1 对象存储位置

  1)寄存器:不能直接控制

  2)堆栈:位于RAM,对象引用,基本类型存于堆栈

  3)堆:位于RAM的动态存储区,存放所有的Java对象

  4)常量存贮:代码内部或ROM中

  5)非RAM存储:流对象和持久化对象

2.2.2特例:基本类型

置于堆栈中,具有包装器类,将基本类型转换为对象

高精度类BigInteger,BigDecimal:类似包装器类,但无基本类型对应

2.2.3 Java中的数组

Java数组有严格的范围检查,初值为null,必须初始化一个对象后才能使用

2.3永远不需要销毁对象

2.3.1 作用域

由花括号的位置决定!

2.3.2对象的作用域

出了作用域,引用无效,而对象实际上还存在于堆中。

java使用垃圾回收器管理内存

2.4 创建新的数据类型:类

对象的类型/蓝图

2.4.1字段和方法

字段field/数据成员/实例变量:类的数据域,定义对象的属性/特征

方法/成员方法:类的方法域,定义对象的行为

默认值:

  若字段为基本数据类型,则Java提供默认初始值,但建议明确地初始化

  若是局部变量,不初始化则不通过编译!

2.5方法,参数,返回值

Java方法只能作为类的一部分,只能通过对象来钓调用(static除外)。

2.5.1参数

传递的是对象的引用

(基本数据类型怎么传参数???)

答:基本数据类型是值传递,如果非要引用传递,可以用包装器类

2.6构建java程序

2.6.1命名可见性:package

c++采用命名空间

java采用package?,Internet域名倒写

2.6.2使用其他类:import

2.6.3static关键字

声明一个字段或方法为static是,表示这个字段或方法不与包含它的那个类的任何对象关联在一起。(与该类的对象是独立的)

可以使用类名访问。

static字段的目的:定义常量(与final合用)?,其他?

static方法的目的:使用类名调用方法。管理对象实例???

2.7第一个Java程序

java.lang默认导入每个Java文件

提到ant编译文件

2.8 注释和嵌入式文档

2.8.1注释文档

javadoc可以提取注释,生成文档!(javadoc还可以定制!)

在要求开发文档的开发过程中非常有用!使用嵌入html或标签详见P33

2.9编码风格:

2.10总结

时间: 2024-10-14 09:08:02

Thinking in JAVA笔记——第二章 一切都是对象的相关文章

Thinking In Java笔记(第二章 一切都是对象)

第二章 一切都是对象 2.1 用引用操纵对象 每种语言都具有操纵内存中元素的方式,必须注意将要处理的是什么数据类型,是直接操纵元素还是基于某种特殊语法间接表示(例如C和C++里的指针)来操纵对象. java中一切都被视为对象,可以用单一固定的语法,但程序员所操纵的标识符实际上只是对象的一个"引用",引用可以独立于对象存在,也可以和实际的对象相关联.例如: String s1; String s2 = new String("hello world"); 上面的s1即

『Java编程思想-第四版』第二章:一切都是对象

Java编程思想-第四版学习总结,此为第二章:一切都是对象. package com.w3cjava.second; @SuppressWarnings("all") public class Second { /** * Java编程思想(第四版) * 第2章 一切都是对象 * @param args */ public static void main(String[] args) { /** * 2.1 用引用操作对象 * 遥控器(引用)操作电视机(对象),改变音量,改变频道 *

[Think in Java]第2章 一切都是对象

[Think in Java]第2章 一切都是对象 如果我们说另一种不同的语言,那么我们就会发觉有一个有些不同的世界 -- Luduing Wittgerstein 尽管Java基于C++,但相比之下,Java是一种更纯粹的面向对象程序设计语言. Java语言假设我们只进行面向对象的程序设计(OOP). 2.1 用引用操纵对象 每种语言都有自己操纵内存中元素的方式,1. 直接操纵 2. 或者基于某种特殊语法的间接表示. java中,尽管一切都看作是对象了,但操作的标识符实际上是对象的一个引用(r

[Effective Java 读书笔记] 第二章 创建和销毁对象 第一条

第二章  创建和销毁对象 第一条 使用静态工厂方法替代构造器,原因: 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的 静态工厂方法不用每次调用的时候都创建新的对象(其实是因为它是static的,所以只能用static的,所以是一早就创建了,不需要重复创建吧..),比如书中 Boolean.valueOf(boolean) 1 public static final Boolean TRUE = new Boolean(true

java编程思想--第二章 一切都是对象

如果不做引申的话,本章没有多少可总结的内容.有些以前没有注意的细节可以写下来. 1.数据存储的位置 (1).寄存器.程序控制不了. (2).堆栈.对象的引用.基本类型. (3).堆.各种对象. (4).常量存储.和代码在一起. (5).非RAM存储.主要指流对象和持久化对象,前者准备网络传输,后者被丢到了硬盘上. 2.java中的数组会被自动初始化: (1).基本类型数组元素会被初始化为0 (2).引用类型数组元素会被初始化为null 3.变量作用域 (1).基本类型的跟C一样 (2).引用类型

[Effective Java 读书笔记] 第二章 创建和销毁对象 第六-?条

第六条 消除过期引用 JAVA中依然会有 memory leak的,比如一个栈先增长再收缩,那么从栈中弹出的对象是不会被当做垃圾回收的,即时使用栈的程序不再引用这些对象.这是因为栈的内部维护着对这些对象的过期引用(永远也不会被解除的引用),需要显示的将这些对象清空(置为null),告诉垃圾回收器回收这些对象. 比如Stack类的实现里,pop()函数最后会有对element置null的操作: public synchronized E pop() { E obj; int len = size(

java笔记 第二章

变量   数据类型和运算符 一   变量 1 变量 变量定义:可以改变的量 命名的规则: 最好用有意义的单词 一般用小写做变量名 2常量 常量的定义:不能改变的量 二  数据类型 一 整类型 1 byte    1个字节 2 short   2个字节 3 iny      8个字节 4 long    16个字节 二  字符类型 1 char    2个字节    可以中文可以英文 三  浮点类型 1  float    2个字节  单精度 2 bouble  4个字节  双精度 四  布尔类型

<Thinking in java 第二章> 一切都是对象

P23--Java提供了两个用于高精度计算的类:BIgInteger和BigDecimal,能作用于int和float的操作,也同样能作用于BigInteger和BigDecimal.只不过必须以方法调用的方式取代运算符方式来实现.在这里,我们以速度换取了精度. P27--方法名和参数列表(它们合起来称作方法签名)唯一的标识出某个方法.方法重载是方法名相同,通过参数列表的不同来区分调用不同的方法体,所以允许有不同的返回值. 原文地址:https://www.cnblogs.com/ryan121

第二章----一切都是对象

1.用引用操作对象 在java中一切都被视为对象,操作对象实际上的操作对象的一个"引用".两者之间的关系就相当于用遥控器(引用)来操作电视机(对象).拥有一个引用,并不一定需要有一个对象与它关联,比如Sting a;只是声明了一个引用并没有关联到一个对象. 2.必须由你创建所有对象 一但创建了一个引用,就希望与一个对象相关联,通常用new来新建一个对象(java中字符串可以用带引号的文本初始化). 2.1.存储位置 (1)寄存器.最快的存储区(位于处理器内部),java中无法人为直接控