第2章 一切都是对象

2.1 用引用操纵对象
    拥有一个引用,并不一定需要有一个对象与它关联。

2.2 必须由你创建所有对象
    使用new操作符创建一个新对象。
  2.2.1 存储到什么地方
    1)寄存器
    最快的存储区,位于处理器内部。但数量有限,Java中不可直接控制
    2)堆栈(栈)
    仅次于寄存器的速度,位于通用随机RAM(随机访问存储器)中,使用堆栈指针进行分配和释放内存。
    对象引用存于堆栈,而对象不存于此。
    3)堆
    存储分配与清理比栈中慢,通用内存池,也位于RAM区中,用于存放所有的Java对象。即new操作后生成的对象在堆中分配。
    4)常量存储
     直接存放于程序代码内部,或者ROM中(嵌入式系统)
    5)非RAM存储
    数据完全存活于程序之外,程序不运行时也存在。
    典型是:流对象和持久化对象。
    流对象是对象转换为字节流,发送给另一台机器。
    持久化对象是存放于磁盘上,需要时可以恢复成常规的。
  2.2.2 基本类型
    存储于栈中。
    (1)    4种整形:(注意:Java没任何无符号类型)
    long         8字节        64位        -2的63次方     ———+2的63次方-1             Long                    必须有一个后缀L(足够大)
    int            4字节        32位        -2的31次方     ———+2的31次方-1             Integer
    short         2字节        16位        -32768———+32767                             Short
    byte         1字节        8位         -128    ———+127                                    Byte
    (2)    2种浮点型:
    float         4字节        32位                                            Float                    一个后缀F
    double     8字节        64位                                            Double                无后缀F的,默认为double
    (3)    1种字符型(表示Unicode编码):
    char         2字节        16位                                            Character
  字符串String中的每个字符都是2个字节(16位)。
  (4) 1种布尔型:
    boolean                                                                Boolean                在Java中不可以使用数值或者指针作为判断条件。
    使用包装器可在堆中创建一个基本类型对应的对象
    高精度数字
    两个高精度计算的类:BigInteger(任意精度的整数)和BigDecimal(任意精度的定点数)。必须以方法调用方式取得运算符来进行数值运算
  2.2.3 Java中的数组
    Java确保数组被初始化,而且不能访问其范围之外。
    当创建一个数组对象时,实际是创建了一个引用数组,并且每个引用都会自动被初始化为一个特定值,有自己的关键字null。如果试图使用一个还是null的引用,则运行时会报错。
    当创建一个基本类型的数组时,会确保其所占内存全部置0。

2.3 永远不要销毁的对象
  2.3.1 作用域
    Java中的局部变量不能与外部变量重名,而c,c++可以。
  2.3.2 对象的作用域
    在局部用new创建的对象引用和对象,在出了局部后,引用的作用域就消失了,而对象却继续占据内存空间。
    此时,Java垃圾回收器就自动检测到此对象不会再被引用,则自动将对象所占空间回收。

2.4 创建新的类型:类
  2.4.1 字段(数据成员)和方法(成员函数)
    若类的某个成员是基本数据类型,会自动被初始化为默认值。
    boolean  ———— false
    char         ———— null
    byte         ———— (byte)0
    short         ———— (short)0
    int                ———— 0
    long        ———— 0L
    float        ————    0.0f
    double    ———— 0.0d
    但是对于函数中的基本数据类型的局部变量,不会自动进行初始化,而且Java会要求你必须自己进行初始化赋值后,才能使用该变量。

2.5 方法、参数和返回值
    方法名和参数列表(合称“方法签名”)唯一的标示一个方法。
    Java中的方法只能作为类的一部分来创建,而方法只有通过对象才能被调用(除了static方法)。
   2.5.1 参数列表
    参数传递的实际是引用。
   
2.6 构建一个Java程序
   2.6.1 名字可见性
    使用域名反转来命名目录结构,及包名
   2.6.2 运用其他构件
    使用import导入一个包即一个类库。
   2.6.3 static关键字
    当声明一个方法或域是static时,意味着不会与包含它的那个类额任何对象实例关联在一起 。
    引用类的static变量和方法有两种方法,一种是通过一个对象来定位它,一种是直接使用类名来定位它(推荐方式,便于编译器优化)。
   
2.7 第一个Java程序
   2.7.1 编译和运行
    Ant用于批量编译和运行Java程序
  
2.8 注释和嵌入式文档
   2.8.1 注释文档
    将代码与文档链接起来。使用特殊的注释语法来标记文档,再使用javadoc来提取注释。
    javadoc可以查找程序内的特殊注释标签,既可以解析这些标签标记的信息,也将毗邻注释的类名和方法名抽取出来。
    javadoc输出的是一个HTML文档。
   2.8.2 语法
    所有的javadoc命令都只能在"/**"和"*/"之间出现。
    共有3种注释文档,分别对应类,域和方法。只可以对public和protected成员进行文档注释。
   2.8.3 嵌入式HTML
   2.8.4 一些标签示例
   2.8.5 文档示例

2.9 编码风格
    类名首字母要大写,由多个单词构成时,则每一个字母的首字母要大写。
    而方法、成员变量以及对象同类名规则,不过第一个字母要小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值