• Java编程思想读书笔记之一切皆对象


    一切皆对象

    Java程序运行时,数据保存到哪里

    • 寄存器
      这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。

    • 堆栈中
      驻留于常规 RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。


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

    • 静态存储
      这儿的“静态”(Static)是指“位于固定位置”(尽管也在 RAM 里)。可用static关键字指出一个对象的特定元素是静态的。但 Java 对象本身永远都不会置入静态存储空间。

    • 常数存储
      常数值通常直接置于代码内部。

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

    特殊情况,主要类型

    JAVA决定了每种类型的大小,这些数据类型的大小并不随着机器结构的变化而变化。这种大小的不可更改正是 Java 程序具有很强移植能力的原因之一。

    主类型 大小 最小值 最大值 封装器类型
    boolean 1 - - Boolean
    char 16 Unicode 0 Unicode 2 的 16 次方-1 Character
    byte 8 -128 127 Byte
    short 16 -2 的 15 次方 +2 的 15 次方-1 Byte
    int 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

    作用域

    对于在作用域里定义的名字,作用域同时决定了它的“可见性”以及“存在时间”。在 C,C++和 Java 里,作用域是由花括号的位置决定的。

    
    { 
      int x = 12; 
      /* only x available */ 
      { 
        int q = 96; 
        /* both x & q available */ 
      } 
      /* only x available */ 
      /* q “out of scope” */ 
    }
    

    注意尽管在 C 和 C++里是合法的,但在 Java 里不能象下面这样书写代码:

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

    字段和方法

    一旦将变量作为类成员使用,就要特别注意由Java分配的默认值。这样做可保证主类型的成员变量肯定得到了初始化(C++不具备这一功能),可有效遏止多种相关的编程错误。

    然而,这种保证却并不适用于“局部”变量——那些变量并非一个类的字段。所以,假若在一个函数定义中写入下述代码:

    int x;
    

    那么 x 会得到一些随机值(这与C和C++是一样的),不会自动初始化成零。我们责任是在正式使用 x 前分配一个适当的值。如果忘记,就会得到一条编译期错误,告诉我们变量可能尚未初始化。

    这种处理正是 Java优于 C++的表现之一。许多 C++编译器会对变量未初始化发出警告,但在 Java 里却是错误。

  • 相关阅读:
    用java抓取网页信息!
    WPF之Binding对数据的转换(第五天)
    WPF读书笔记 x名称空间详解(第二天)
    WPF的UI布局(Layout)WPF读书笔记(第三天)
    WPF 数据绑定Bingding基础(第四天)
    WPF读书笔记(第一天)
    HelloWin程序(窗口与消息)
    django创建数据库表方法
    OpenSSH利用处理畸形长度密码造成的时间差,枚举系统用户(CVE20166210)
    ldap匿名访问测试脚本
  • 原文地址:https://www.cnblogs.com/haifeiWu/p/9079572.html
Copyright © 2020-2023  润新知