Think In Java 第二章 一切皆对象

本文详细介绍了Java中的对象句柄与对象的关系,解释了句柄作为指向对象的引用的作用。同时,深入探讨了Java内存分配机制,包括寄存器、堆栈、堆、静态存储、常数存储及非RAM存储的概念及其应用。此外,还概述了Java的基本数据类型以及如何构建Java程序。

句柄 & 对象

尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”,例s为句柄,String("abcdef")为对象

String s = new String("abcdef");

注:创建一个句柄时,记住无论如何要初始化

内存分配

寄存器:根据需要由编译器分配,我们对此没有直接的控制权

堆栈:驻留于常规 RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。对象句柄一般保存在其中。

堆:一种常规用途的内存池(也在 RAM区域),其中保存了Java 对象。

静态存储:程序运行期间,静态存储的数据将随时等候调用,可用static 关键字指出一个对象的特定元素是静态的。

常数存储:常数值通常直接置于程序代码内部

非RAM 存储:若数据完全独立于一个程序之外,则程序不运行时仍可存在,并在程序的控制范围之外。两个最主要的例子便是“流式对象”和“固定对象”。

基本类型

这些变量容纳了具体的值,并置于堆栈中,能够更高效地存取。

>boolean 1位  -           -                  Boolean
char     16位 Unicode 0  Unicode 2的16次方-1  Character
byte     8位  -128       +127                Byte
short    16位 -2 的15次方 +2的 15次方-1       Short
nt       32位 -2的31次方  +2的31次方-1        Integer
long     64位 -2的63次方  +2的63次方-1        Long
float    32位 IEEE754    IEEE754             Float
double   64位 IEEE754    IEEE754             Double
Void

高精度数字

高精度的计算:BigInteger和 BigDecimal

作用域

在作用域里定义的一个变量,它只有在那个作用域结束之前才可使用

注:Java中同c++不同,下面写法Java认为是非法的

{
    int x = 12;
    {
        int x = 96; /* illegal */
    }
}

构建Java程序

名字的可见性:java的设计者鼓励程序员反转使用自己的Internet域名

使用其他组件:import 关键字准确告诉Java 编译器我们希望的类是什么

static关键字:静态对象、静态变量

注释和嵌入文档

//:Property.java
import java.util.Date;
import java.util.Properties;

/** The first Thinking in Java example program.
* Lists system information on current machine.
* @aurhor Bruce Eckel
* @author http://www.BruceEckel.com
* @version 1.0
* */
public class Property {
    /** Sole entry point to class & application
     * @param args array of string arguments
    * @return No return value
    * @exception exception No exception thrown
    * 
    * */
    public static void main(String [] args) {
        System.out.println(new Date());
        /** 一个变量注释 */
        Properties p = System.getProperties();
        p.list(System.out);
        System.out.println("---Memory Usage:");
        Runtime rt = Runtime.getRuntime();
        System.out.println("Total Memory = "
                        + rt.totalMemory()
                        +" Free Memory ="
                        + rt.freeMemory());
    }
}///:

用于提取注释的工具叫作javadoc,javadoc输出的是一个 HTML 文件,可用自己的Web 浏览器查看。

转载于:https://www.cnblogs.com/pallcard-LK/p/8909343.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值