Object 类的方法及用途
公有方法:
- equals - 用于对象间的比较。一般用于判断两个对象的内容是否相同。 
- getClass - 返回类对象。 
- hashCode - 返回对象的 hash code。一般在 HashSet、HashMap 和 HashTable 里会被调用到。 - 一些约定: - 如果对象的 equals 方法做比较所用到的信息没有被修改,那对它多次调用 hashCode 方法返回的值应该相同。
- 如果两个对象调用 equals 方法返回 true,那么它们的 hashCode 方法应该返回相同的值。
- 如果两个对象调用 equals 方法返回 false,它们的 hashCode 方法不是必须返回不相同的值。但给不同对象返回不同 hash code 能提升散列表的性能。
 
- notify - 唤醒一个正在等待此对象的线程。 
- notifyAll - 唤醒所有正在等待此对象的线程。 
- toString - 返回该对象的字符串表示。 
- wait - 让当前线程进入等待状态,直到另一个线程调用了该对象的 notify 或 notifyAll 方法。 
保护方法:
- clone - 创建并返回该对象的拷贝。 
- finalize - 垃圾收集器认为不存在该对象的引用后调用。 
运算规则
如果对基本数据类型执行算术运行或按位运算,大家会发现,只要类型比 int 小(即 char、byte 或 short),那么在运算前,这些值都会自动转换成 int,这样一来,最终生成的结果就是 int 类型。如果想把结果赋值给较小的类型,就必须使用类型转换(既然把结果赋给了较小的类型,就可能出现信息丢失)。通常,表达式中出现的最大的数值决定了表达式最终的数据类型。如果将一个 float 值与一个 double 值相乘,结果就是 double,如果将一个 int 和一个 long 值相加,则结果为 long。
类型转换
float to int
四舍五入
i = Math.round(f);
示例结果:
| float | int | 
|---|---|
| 2.0 | 2 | 
| 2.22 | 2 | 
| 2.68 | 3 | 
| -2.0 | -2 | 
| -2.22 | -2 | 
| -2.68 | -3 | 
相当于 (int) Math.floor(f + 0.5f)。
Math.round(float) returns a int, Math.round(double) returns a long. see http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#round(double)
截取整数部分
i = (int) f;
示例结果:
| float | int | 
|---|---|
| 2.0 | 2 | 
| 2.22 | 2 | 
| 2.68 | 2 | 
| -2.0 | -2 | 
| -2.22 | -2 | 
| -2.68 | -2 | 
向下取整
i = (int) Math.floor(f)
示例结果:
| float | int | 
|---|---|
| 2.0 | 2 | 
| 2.22 | 2 | 
| 2.68 | 2 | 
| -2.0 | -2 | 
| -2.22 | -3 | 
| -2.68 | -3 | 
向上取整
i = (int) Math.ceil(f)
示例结果:
| float | int | 
|---|---|
| 2.0 | 2 | 
| 2.22 | 3 | 
| 2.68 | 3 | 
| -2.0 | -2 | 
| -2.22 | -2 | 
| -2.68 | -2 | 
如何排除依赖包里的某一个类
用 Maven 管理依赖时,可以用 <exclude> 排除 jar 包维度的间接依赖,但是如果想要排除某一个类,如何处理?
有一种方法是在项目里写一个同名类,如果不想要它,就把它写成空类,如果想修改它的行为,就重写这个类。
参考
文档信息
- 本文作者:Yingqi Chen
- 本文链接:https://cyq1005658400.github.io/blog//wiki/java-basis/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)