大学生心理咨询网站建设论文黄骅港船舶动态计划表
语法特性篇
Java对象的比较
1. 对象比较的问题
- Java中引用类型的变量不能直接按照 > 或者 < 方式进行比较。
 - 那为什么==可以比较?  
- 因为:对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equal方法,而==默认情况下调 用的就是equal方法,
 - 但是该方法的比较规则是:没有比较引用变量引用对象的内容,而是直接比较引用变量的地 址,但有些情况下该种比较就不符合题意。
 
 
2. 对象比较的方法
-  覆写基类的 equals
 -  基于 Comparble 接口类的比较
 - 基于比较器比较
 
覆写基类的equals

说明:
- equals 是子类重写父类 Object中的方法;
 - 只能比较是否相等的;
 - 返回值是boolean类型,即true or false
 
基于Comparble接口类的比较

说明:
- 本身类需要使用implements 实现 Comparable<E> 接口;
 - 重新接口中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中,比较接口等等
 
