美文网首页软件测试精进之路百人计划
Java学习之——面向对象:2 一切都是对象

Java学习之——面向对象:2 一切都是对象

作者: cynthia猫 | 来源:发表于2018-08-25 19:14 被阅读3次

    尽管Java是基于C++的,但是相比之下,Java是一种更”纯粹“的面向对象程序设计语言。

    用引用操纵对象

    操纵的标识符实际上是对象的一个”引用“(reference)。可以想象成用遥控器(引用)来操纵电视机(对象)。

    此外,即使没有电视机,遥控器亦可独立存在。你拥有一个引用,并不一定需要有一个对象与它关联。例如创建一个String引用:

    String s;
    

    这里创建的只是引用,并不是对象。此时向s发送一个消息,会返回一个运行时错误。这是因为,此时s实际上没有与任何事物相关联。一种安全的做法是:创建一个引用的同时便进行初始化。

    String s = "asdf";
    

    必须由你创建所有对象

    new关键字的意思是:给我一个新对象。

    String s = new String("asdf");
    

    存储到什么地方

    有五个不同的地方可以存储数据:

    1. 寄存器:你不能直接控制。
    2. 堆栈:某些Java数据存储于堆栈中——特别是对象引用,但是Java对象并不存储于其中。
    3. 堆:用于存放所有的Java对象。
    4. 常量存储:直接存放在程序代码内部。
    5. 非RAM存储:数据完全存活于程序之外,在程序没有运行时也可以存在。两个基本的例子是流对象持久化对象

    特征:基本类型

    boolean, char, byte, short, int, long, float, double, void.
    BigInteger, BigDecimal.

    Java中的数组

    Java确保数据会被初始化,而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销及运行时的下标检查为代价的。换来的是安全性和效率的提高。

    永远不需要销毁对象

    作用域(scope)

    在作用域里定义的变量只可用于作用域结束之前。

    对象的作用域

    假如你采用代码:

    {
    String s = new String("a string");
    }
    

    s在作用域终点就消失了,然而,s指向的String对象仍继续占据内存空间。
    Java的垃圾回收器用来监视用new创建的所有对象,辨别那些不会再被引用的对象,并且释放这些对象的内存空间。

    (未完待续)

    相关文章

      网友评论

        本文标题:Java学习之——面向对象:2 一切都是对象

        本文链接:https://www.haomeiwen.com/subject/cvigiftx.html