• thinking in java


    操纵对象,操纵的标识符实际是指向一个对象的“句柄”
    (Handle): 想象成用遥控板(句柄)操纵电视机(对象)

    安全的做法是:创建一个句柄时,记住无论如何都进行初始化:String s = "asdf";

    寄存器:最快的保存区域(处理器内部),数量十分有限,由编译器分配,我们对此没有直接的控制权

    对象句柄保存在堆栈里,中保存了Java 对象(灵活,代价:在堆里分配存储空间时会花掉更长的时间!)

    静态存储。这儿的“静态”(Static)是指“位于固定位置”(尽管也在 RAM(random access memory)里)。程序运行期间,静

    态存储的数据将随时等候调用。可用static 关键字指出一个对象的特定元素是静态的。但 Java 对象本身永
    远都不会置入静态存储空间。

    常数存储。常数值通常直接置于程序代码内部。这样做是安全的,因为它们永远都不会改变。有的常数
    需要严格地保护,所以可考虑将它们置入只读存储器(ROM)。

    RAM(random access memory)即随机存储内存(运行内存,决定可以同时运行多少应用程序),这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。

    ROM(Read-Only Memory)即只读内存(存放视频、音乐、软件等文件),是一种只能读出事先所存数据的固态半导体存储器。

    对象的创建过程。请考虑一个名为 Dog的类:
    (1) 类型为 Dog的一个对象首次创建时,或者Dog 类的static方法/static 字段首次访问时,Java 解释器
    必须找到Dog.class(在事先设好的类路径里搜索)。
    (2) 找到Dog.class 后(它会创建一个 Class对象,这将在后面学到),它的所有 static初始化模块都会运
    行。因此,static初始化仅发生一次——在 Class 对象首次载入的时候。
    (3) 创建一个new Dog()时,Dog 对象的构建进程首先会在内存堆(Heap)里为一个 Dog对象分配足够多的存
    储空间。
    (4) 这种存储空间会清为零,将Dog中的所有基本类型设为它们的默认值(零用于数字,以及 boolean和
    char 的等价设定)。
    (5) 进行字段定义时发生的所有初始化都会执行。
    (6) 执行构建器。正如第6 章将要讲到的那样,这实际可能要求进行相当多的操作,特别是在涉及继承的时
    候。

    int[] a1 = { 1, 2, 3, 4, 5 };
    for(int i = 0; i < a2.length; i++)
    a1[i]++;//值加1

    -----------------------------------------------------------------------------

  • 相关阅读:
    Go语言版本的helloworld
    编译Elasticsearch源码
    Intellij IDEA将java源码打成jar包
    搭建Elasticsearch集群常见问题
    棣小天儿的第一个python程序
    Json反序列化Map的key不能是Object
    mac本配置python环境
    Timestamp解析0000-00-00 00:00:00报格式错误
    Spring-Mybatis配置多数据源
    mysql新建数据库时的collation选择(转)
  • 原文地址:https://www.cnblogs.com/Alwaysbecoding/p/9909791.html
Copyright © 2020-2023  润新知