第二章 一切皆对象

 

    首先本书的作者是从c++转java的,所以很多的比较都是针对这两门语言的比较.文章的排版是根据书中的目录进行划分的,并用了一定的缩进来方便阅读.

 

2.1 用引用操作对象

 

2.2 必须由你来创建所有对象

 

    为什么java中的数组更加安全?

        答:java确保数组会被初始化(对null的引用),而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销

        和运行时的下标检查为代价的。比如说String a[4],当访问a[5]时,java首先会进行范围检查,只有通过了范围检查才能继续访问,而         在c或c++中这种访问内存块之外数据的操作讲会产生致命错误。

 

    Null

        当创建了一个引用时,该引用会被自动初始化为一个特殊值null,如果试图使用一个还是null的引用,运行时将会报错,而这种检查是

        在使用之前进行了,更加安全。

 

2.3 永远不需要销毁对象

 

    内存泄露;

        java有一个gc,用来监视用new创建的所有对象,并辨别那些不会被引用的对象,并释放。

        一旦垃圾收集器准备好释放无用对象占用的存储空间,它首先调用那些对象的finalize()方法,然后才真正回收对象的内存。

 

2.4 创建新的数据类型:类

    若类的某个成员是基本数据类型,即使没有初始化,java也会确保它有一个初始值

        boolean | false

        char    | '/u0000'

        short   | 0

        int     | 0

        .....

       而在c中int x,x将会是一个随机值

 

2.5 方法、参数和返回值

    static的方法是针对类调用的,并不依赖于对象的存在。

    static自动对每个类来说都只有一份存储空间,非static字段则是对每个对象都有一份空间

 

    向对象发送消息

        a.f():a是对象,消息是f()

        形参传递的都是对象的引用,基本数据类型除外

 

2.6 java程序

    每个java文件都默认导入java.lang包

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值