您的位置:首页 > 编程语言 > Java开发

Think in Java学习总结(一)之对象

2016-07-13 09:06 357 查看

一切皆对象

1. 主成员的默认值

若某个主数据类型属于一个类成员,那么即使不明确(显式)进行初始化,也可以保证它们获得一个默认

值。

主类型 默认值

Boolean false

Char ‘\u0000’(null)

byte (byte)0

short (short)0

int 0

long 0L

float 0.0f

double 0.0d

然而,这种保证却并不适用于“局部”变量——那些变量并非一个类的字段。所以,假若在一个函数定义中,则需要对其赋初始值。

因此,并不是在任何情况下变量都会得到默认值的;这应该是基于对象用new关键字创建的时候,其字段都赋予初始值并分配了相应的内存空间,而方法并没有完全被创建出来,那么方法中的局部变量就无法得到其初始值;

2.Java中 == 和equals()的区别

== 作用于基本数据类型的时候是完全正确的,符合逻辑的,完全可以达到我们期望的结果,但对于非基本类型的数据,即对象时, ==比较的是两个对象所持有的句柄,即地址

equals 是为了面向对象的设计而产生的,此方法源于Object类中,因此,所有的类对象都可以使用此方法;但是此方法在Object中的实现也只是比较两个对象的地址的,如果我们想要在自己的定义的类中保证两个对象比较的值相等,就需要重写此方法,根据我们自己判断两个对象相等的方法来添加代码,实现我们所希望的功能;

比如String 和 StringBuffer的equals方法的区别:

Stirng 方法中的equals作了实现,而StringBuffer中的equals方法并未进行重写,因此当我们利用StringBuffer中的equals方法进行比较时,得到的永远都是false,除非是比较他本身;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: