一、相同点 都是用来进行值或对象的比较。 二、不同点 对于“==”而言,对于基本类型(char,byte,short,int,long,float,double,boolean),对比的是值,所以是相等的,对于引用对象,对比的是引用的对象的堆地址,例如: 注意对于包装类例如Integer而言,有一些 ...
分类:
编程语言 时间:
2018-04-26 12:19:46
阅读次数:
127
控制台的打印结果是什么?答案是:false。 接下来看解析: 原始值的比较是值的比较: 它们的值相等时它们就相等(==) 它们的值和类型都相等时它们就恒等( )。 对象和原始值不同,对象的比较并非值的比较,而是引用的比较: 即使两个对象包含同样的属性及相同的值,它们也是不相等的 即使两个数组各个索引 ...
分类:
编程语言 时间:
2018-04-25 14:27:00
阅读次数:
266
一、面向过程和面向对象的比较1、面向过程面向过程的程序设计:核心是过程二字,过程指的是解决问题的步骤,是一种机械式的思维方式。优点是:复杂度的问题流程化,进而简单化缺点是:一套流水线或者流程就是用来解决一个问题,程序扩展困难,牵一发而动全身。应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等。2、面向对象面向对象的程序设计:核心是对
分类:
其他好文 时间:
2018-01-16 12:25:20
阅读次数:
167
一、Java求余%的结果符号取决于除数的符号位;小数也可以求余,余数仍为小数。 二、String对象的比较问题 A.String是不可变的,不能被继承。String类内部通过char数组来保存字符串,而这个char数组被声明为:final。String类的设计使用了不变模式。 B.String类的声 ...
分类:
编程语言 时间:
2017-12-28 19:55:44
阅读次数:
190
运行结果: 1.结果的第一行是false原因为: 两个integer引用的地址不同,==比较的是引用(内存地址),所以最终结果是false。 2.通过源码可以很清楚的看到后两个结果是true的原因: Objects对象中equals方法的源码: Integer对象中重写的Object.equals( ...
分类:
其他好文 时间:
2017-12-19 01:43:52
阅读次数:
223
GetHashCode方法我的理解是做两个对象的比较,每个对象,不管是值类型还是应用类型都提供这个基本函数,都可以去重写它。GetHashTable通常用于HashTable、List<>、Dictionary等集合,如果两个集合返回的哈希码相同那么这两个集合不一定是同一个集合(也可能是两个相等的集 ...
分类:
其他好文 时间:
2017-12-11 13:54:13
阅读次数:
135
最近一直有事,博客也停笔了一段时间,十分抱歉。 这一篇主要讲讲对象的比较,什么是对象的比较,我们知道两个数值类型只需要用“==”符号即可进行相等判断,但如果是两个Goods对象呢?如何进行比较?这时候,我们的equals方法就派上用场了。equals方法是类的祖先Object类的另一个protect ...
分类:
编程语言 时间:
2017-11-20 13:19:33
阅读次数:
111
(1)面向过程与面向对象的比较 面向过程程序设计方法(C语言) 分析出要解决所需要的步骤,然后用函数把各步骤逐个实现,运行时依次调用各个函数即可。 程序 = 算法 + 数据结构 面向对象程序设计方法(C++语言) 把问题分解成各个对象,描述各个对象的属性和行为,通过对象的相互作用来解决问题。 对象 ...
分类:
其他好文 时间:
2017-11-19 12:31:37
阅读次数:
120
equals方法: 我们经常遇到过两个对象的比较,判断2个对象是否相等的情况,在python中,因为不是强类型语言,在比较基本数据类型的时候,我们一般用== 在比较对象的时候,根据对象的属性判断对象是否相等。 在java中也是,在比较对象的时候根据对象的属性值来判断,在java中,所有java类的超 ...
分类:
编程语言 时间:
2017-11-06 16:46:11
阅读次数:
297