网站建设营销外包公司,企业内网,网站内建设的发展,网站建设制作 南京公司语法特性篇
Java对象的比较
1. 对象比较的问题
Java中引用类型的变量不能直接按照 或者 方式进行比较。那为什么可以比较#xff1f; 因为#xff1a;对于用户实现自定义类型#xff0c;都默认继承自Object类#xff0c;而Object类中提供了equal方法#xf…语法特性篇
Java对象的比较
1. 对象比较的问题
Java中引用类型的变量不能直接按照 或者 方式进行比较。那为什么可以比较 因为对于用户实现自定义类型都默认继承自Object类而Object类中提供了equal方法而默认情况下调 用的就是equal方法但是该方法的比较规则是没有比较引用变量引用对象的内容而是直接比较引用变量的地 址但有些情况下该种比较就不符合题意。
2. 对象比较的方法 覆写基类的 equals 基于 Comparble 接口类的比较 基于比较器比较 覆写基类的equals 说明
equals 是子类重写父类 Object中的方法只能比较是否相等的返回值是boolean类型即true or false 基于Comparble接口类的比较 说明
本身类需要使用implements 实现 ComparableE 接口重新接口中compareTo方法返回值是 int 类型;在类的内部实现侵入性强耦合度高 基于比较器比较 说明
需要重新定义一个比较类该比较类需要使用implements 实现Comparator接口重新方法中compare方法返回值是int类型在类的外部实现侵入性小耦合度低
Java中的字符串常量池 intern 方法 intern 是一个 native 方法 (Native 方法指底层使用 C 实现的看不到其实现的源代码 ) 该方法的作用是手 动将创建的 String对象添加到常量池中。 Java 反射 1. 反射的理解 Java的反射机制是在运行状态的时候对于任意一个类获取其中的所有属性和方法并且任意使用与调用还可以修改部分类型信息。 2. 用途 1. 获取只对系统开放的方法2. 开发各种通用框架 3. 反射程序就能判断出该对象和类属于哪些类。 3. 反射相关的类 Java的枚举 枚举不能被反射 Java的lambda表达式 lambda方法体中不能修改外部变量的值但是可以修改引用指向中的值也就是说不能修改栈上的值可以修改堆上的值;Java 的 lambda要搭配函数式接口使用lambda 可以使用集合遍历forEach中比较接口等等