Java编程思想读书笔记——一切都是对象

来源:互联网 发布:淘宝鳄鱼皮真假鉴别 编辑:程序博客网 时间:2024/05/22 13:30

第二章 一切都是对象

本章介绍Java程序的基本组成部分。

2.1 用引用操纵对象
操纵对象的标识符就是引用。例如:
String str = “asdf”;

2.2 必须由你创建所有对象
存储区域的分类:
1) 寄存器

最快的存储区,位于处理器内部,但数量有限,且不能直接控制。

2) 堆栈

位于通用RAM(随机访问存储)中,堆栈指针向下移动,则分配新的内存,向上移动则释放内存,仅次于寄存器,存储Java程序的对象引用,但不存储Java对象。创建程序时,Java系统必须明确知道存储在该区域所有项的确切生命周期

3) 堆

位于RAM区,是一种通用的内存池,用于存储所有的Java对象。与堆栈不同的是,无需知道存储的数据在堆内的存活时间。

4) 常量存储

常量值通常直接存放在程序代码内部

5) 非RAM存储

数据完全存活于程序之外,不受程序控制,典型的例子是流对象和持久化对象。这种存储方式在于,把对象转化成可以存放在其他媒介上的事物,在需要时,可以恢复成常规的、基于RAM的对象。

基本类型(无需new来创建变量)

基本类型 大小 最小值 最大值 包装器类型 boolean - - - Boolean char 16-bit Uincode 0 Uicode 2^16-1 Character byte 8 bits -128 +127 Byte short 16 bits -2^15 +2^15-1 Short int 32 bits -2^31 +2^31-1 Integer long 64 bits -2^63 +2^63-1 Long float 32 bits IEEE754 IEEE754 Float double 64 bits IEEE754 IEEE754 Double void - - - void
java SE5后的自动包装功能能自动地将基本类型和对应的包装类型互相转换。

高精度数字

BigInteger和BigDecimal,前者用于任意位数的整数,后者用于任意精度的数字的计算。

Java中的数组

与C和C++不同,Java中的数据会被初始化,并且不能在它的范围之外被访问(即数组下标不能越界)。

2.3 永远不需要销毁对象
2.3.1 作用域

作用域决定其内定义的变量名的可见性和生命周期,其由花括号决定。

2.3.2 对象的作用域

Java对象不具备和基本数据类型一样的生命周期。当使用new关键字新建对象时,该对象可以存活于作用域之外。
{   String str = new String("a string");}
当引用s在作用域终点消失时,String对象并没有消失,依然占据内存空间,它最终的销毁是由Java中"垃圾回收机制"来完成。

2.4 创建新的数据类型:类

类中包含两种元素:字段(数据成员)和方法(成员方法)。
class ATypeName{    /* Class body goes here */}

2.5 方法、参数和返回值

调用方法就是向对象发送消息。
ReturnType methodName(/* Argument list */){    /* Method body */}
参数类型为基本数据类型,则传递的是引用;参数类型为对象数据类型,则传递的是对象。

2.6 构建一个Java程序
名字可见性

包名:域名反转,小写。

运用其他构建

使用关键字import导包。

static关键字

当声明一个事物为static时,意味着这个域或者方法不会与包含它的那个类的任何实例对象关联。

2.7 你的第一个Java程序

import java.util.Date;public class HelloDate {    public static void main(String[] args){        System.out.println("Hello, it's: ");        System.out.println(new Date());    }}
编译javac HelloDate.java,运行java HelloDate。

2.8 注释和嵌入式文档
注释

单行注释://多行注释:/*         ...         */

嵌入式文档

javadoc:/**          ...(使用HTML或者文档标签)         */可在类、字段和方法上使用

嵌入式HTML

/** * You can <em>even</em> insert a list: * <ol> * <li>Item one</li> * <li>Item two</li> * <li>Item three</li> * </ol> */
不要使用标题标签,如<h1>或<hr>等。所有类型的注释文档(类、字段和方法)都支持嵌入式HTML。

标签
1. @see: 引用其他类

    该标签格式如下:    @see classname    @see fully-qualified-classname    @see fully-qualified-classname#methodname

2. {@link package.class#method label}

    与@see类似,但只用于行内。

3. {@docRoot}

    产生到文档根目录的相对路径。

4. {@inheritDoc}

    该标签从当前的类的最直接基类继承相关文档到当前的注释文档中。

5. @version

    该标签格式如下:    @version version-information

6. @author

    该标签格式如下:    @author author-information

7. @since

    该标签允许指定程序代码最早使用版本。

8. @param

    该标签用于方法文档中,方法的每一个参数都有一个这样的标签,其格式为    @param parameter-name description

9. @return

    该标签用于方法文档,其格式为:    @return description

10. @throws

    该标签用于方法文档,其格式为:    @throws fully-qualified-class-name description

11. @deprecated

该标签用于指出一些旧特性已被新特性取代,建议用户不要再使用这些旧特性。

2.9 编码风格

类名:每个单词首字母大写包名:域名反转,全部小写其余:驼峰风格,一个单词全部小写,后面单词首字母大写。
阅读全文
0 0
原创粉丝点击