Object
程序员文章站
2022-04-21 21:39:08
...
1.所有类的父类
不知道传入参数的类型或兼容所有类型,使用object参数
2.
优先选择后者,源码中含有判空操作,避免空指针异常
3.equals
object 的 equals() 与 == 效果相同
4.equals 与 ==
基本数据类型:无equals 方法,无需比较
引用数据类型:
[table]
||变量名||栈|| 说明|| 堆||
||str1||0x55||堆中所占空间的首地址||"123"||
|| || || || ||
||str2||0x99||堆中所占空间的首地址||"123"||
[/table]
object 的equals方法 与 == 等价,比较的是栈中的内容,
引用类型栈中存储的是堆中的地址,new 操作会开辟新的空间,所有一定不等
public static void stringArray(){
String [] strArray = new String[]{};
test(strArray);
}
public static void test(Object[] objectArray){
}
不知道传入参数的类型或兼容所有类型,使用object参数
2.
object.toString()
String.valueOf(object)
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
优先选择后者,源码中含有判空操作,避免空指针异常
3.equals
object 的 equals() 与 == 效果相同
public boolean equals(Object obj) {
return (this == obj);
}
public boolean equals(Object anObject) {
// 1.若传入对象为空
if (this == anObject) {
return true;
}
// 2.是否是同一对象 this == anObject 如果是同一对象,直接返回TRUE
// 3.是否是同一类型
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
// 4.众多属性中关键属性是否相同
// 5.如person属性众多,客观上身份证号码相同,即为同一个人
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
4.equals 与 ==
基本数据类型:无equals 方法,无需比较
引用数据类型:
String str1 = new String("123");
String str2 = new String("123");
[table]
||变量名||栈|| 说明|| 堆||
||str1||0x55||堆中所占空间的首地址||"123"||
|| || || || ||
||str2||0x99||堆中所占空间的首地址||"123"||
[/table]
object 的equals方法 与 == 等价,比较的是栈中的内容,
引用类型栈中存储的是堆中的地址,new 操作会开辟新的空间,所有一定不等
下一篇: antv/G2 使用遇坑之旅
推荐阅读
-
PHP中遍历stdclass object的实现代码
-
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object
-
PHP JSON出错:Cannot use object of type stdClass as array解决方法
-
JavaScript的深入理解:变量对象(Variable Object)
-
木卯先生的笔记---Object类
-
JavaScript 复制对象与Object.assign方法无法实现深复制
-
C#使用Object类实现栈的方法详解
-
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
-
PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】
-
详谈js中数组(array)和对象(object)的区别