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

第二章 一切都是对象

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

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

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

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

2) 堆栈

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

3) 堆

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

4) 常量存储

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

5) 非RAM存储

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

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

基本类型大小最小值最大值包装器类型
boolean---Boolean
char16-bitUincode 0Uicode 2^16-1Character
byte8 bits-128+127Byte
short16 bits-2^15+2^15-1Short
int32 bits-2^31+2^31-1Integer
long64 bits-2^63+2^63-1Long
float32 bitsIEEE754IEEE754Float
double64 bitsIEEE754IEEE754Double
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值