《java编程思想》读数笔记之---基础杂谈

一:用引用操作对象

这里写图片描述

二:内存分配

        寄存器:
            最快的存储区,位于处理器内部,数量有限,java程序员不能直接控制,在程序中感觉不到这块区域的存在,但是c和c++允许建议向寄存器分配内存。
        堆栈:
            位于随机访问存储区,堆栈指针可以获得处理器的直接支持,堆栈指针下移获得新内存,堆栈指针上移释放内存,速度仅次于寄存器,创建程序时,java系统必须知道在堆栈内所有项的确切声明周期,所以一般存java对象引用而不是存java对象。
        堆:
            也位于随机访问存储区,是一种通用的内存池,编译器不需要知道存储于堆中数据的生命周期,分配存储灵活,当需要一个对象时用new关键字,就可以在堆中分配内存,缺陷是分配和清理内存的时间较长。
        常量存储:
            通常直接放在程序代码内部,因为它永远不会被改变。
        非RAM存储:
            数据完全存活于程序外部,可以不受程序的控制,程序没有运行时也可以存在,比如流它可以从一台电脑到另一台电脑,还有持久化数据到硬盘。

三:基本类型(java中的基本类型都是小写,包装类型为大写)

java中存储在堆栈中的基本数据类型

这里写图片描述
另外java中还提供了可以支持任意精度整数的非基本数据类型BigIngeter,支持任意精度定点数的非基本数据类型的BigDecimal

四:基本成员的默认值

    若是基本数据类型,java中,即使没有初始化java也会给其初始化一个默认值保证,初始化值为下图所示:

这里写图片描述
注意:当变量为成员变量时java才会确保给其默认值,如果是局部变量那么该值有可能是任意值java并不会自动给其初始化,自动初始化发生在构造器被调用之前。如下图代码。
这里写图片描述
上图中y是成员变量,所以其会被自动初始化,打印时编译通过,而j是局部变量,所以打印编译出错。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章