Object类
- 在Java中所有的类都继承与Object类,当然只要是类,它里面一定由一些方法和属性,其中 equals() 方法就是Object类中的其中一个;比较常用.
回顾:操作符 == 和Object中的方法 equals()
package zhai.object;
import java.io.IOException;
public class ObjectDemo1 {
public static void main(String[] args) {
String s = new String("zhai");
String ss = "zhai";
// equals():方法是Object类中的一个方法是比较字符串中的内容是否相等
System.out.println(s.equals(ss));
// == :是操作符,它是用来比较基本数据类型中的数字,要是用来比较字符串的话,它只会比较字符串中的地址
if (s == ss){
System.out.println(ss);
}else {
System.out.println("内存地址是不会相等的!");
}
}
}
输出:
true
内存地址是不会相等的!
注意:很显然的可以看见只要拿 == 比较new后的字符串它输出一定不相等,因为它比较的是内存中的字符串内容地址;但是通过equals()可以比较字符串的内容是否相等。
包装类
因为 Java 是一门强类型语言,所以它每个类型的字符都有相对应的数据类型,然而就把类型定义死了,不能去操作变量;但是这时候 Java 就提供了包装类这个词,既然它是个类就一定有属性和方法;提供了很大的方便,用于不同类型的变量进行来回切换;如:你输入一个字符串,它把你这个字符串包装起来输出个Int类型的整型.
练习:
package zhai.integer;
import java.util.Scanner;
public class IntegerDemo1 {
public static void main(String[] args) {
// 定义一个字符串
String s = "2";
// 将字符串转为 Double 类型使用 Double中的 parseDouble() 方法
double v = Double.parseDouble(s);
// 字符串是不能运算的;通过包装类后可以进行输出
System.out.println(v * 2);
String s1 = "123123";
// 可以将字符串转为 int 类型
int i = Integer.parseInt(s1);
// 经过操作后输出
System.out.println(i-123122);
}
}
输出:
4.0 // 注意我们定义的是字符串 2
1 // 这边定义的字符串123123 注意:这就是包装类的作用
这里就引出了拆箱和装箱的说法:
- 将包装类转换为基本数据类型称为:拆箱
- 将基本数据类型转化为包装类称为:装箱
注意:实例化包装类可以将基本数据类型装箱,因为有构造方法。
package zhai.integer;
import java.util.Scanner;
public class IntegerDemo1 {
public static void main(String[] args) {
// 定义一个字符串
String s = "2";
// 将字符串转为 Double 类型使用 Double中的 parseDouble() 方法
double v = Double.parseDouble(s);
// 字符串是不能运算的;通过包装类后可以进行输出
System.out.println(v * 2);
Double d = new Double(3.12); // 装箱操作
System.out.println(d);
String s1 = "123123";
// 可以将字符串转为 int 类型
int i = Integer.parseInt(s1); // 拆箱
// 经过操作后输出
System.out.println(i-123122);
}
}
输出:
4.0
3.12
1
int 和 Integer 的区别
- int 是基本数据类型之一,Integer是个类且是Int的包装类.
- int默认值是0,而Integer变量默认值为null.
- int可以直接使用变量,Integer必须要通过实例化后用对象调用.
- int是一个存储整型的容器,而Integer通过实例化后是个对象。
package zhai.integer;
public class IntegerDemo2 {
public static void main(String[] args) {
// 自动装箱:将 基本数据类型(int) 转换为 包装类(Integer)
Integer i = 1;
// 自动拆箱:将 包装类(Integer)转换为 进本数据类型(Int)
int i1 = i ;
System.out.println(i);
// 比较 Integer 中的数据和 int变量
System.out.println(i == i1);
Integer i2 = 12;
Integer i3 = 12;
System.out.println(i2 == i3);
// 非 new 的 Integer 值在-127~128之间的数字会为 true 否则 false
Integer i4 = 128;
Integer i5 = 128;
System.out.println(i4 == i5);
// new 对象的地址不同
Integer i7 = new Integer(24);
Integer i6 = 24;
System.out.println(i6==i7);
}
}
输出:
1
true
true
false
false



