前戏
java的数据类型分两种:
- 基本类型:byte、short、int、long、boolean、float、double、char
- 引用类型:所有class和interface类型
引用类型可以赋值为null,表示空,但基本类型不能赋值为null.
| 基本类型 | 对应的引用类型 |
|---|---|
| boolean | java.lang.Boolean |
| byte | java.lang.Byte |
| short | java.lang.Short |
| int | java.lang.Integer |
| long | java.lang.Long |
| float | java.lang.Float |
| double | java.lang.Double |
| char | java.lang.Character |
public class Playing{public static void main(String[] args) {int i = 100;// 通过new操作符创建Integer实例(不推荐使用,会有编译错误)//Integer n1 = new Integer(i);// 通过静态方法valueOf(int)创建Integer实例//Integer n2 = Integer.valueOf(i);// 通过静态方法valueOf(String)创建Integer实例Integer n3 = Integer.valueOf("100");System.out.println(n3.intValue());// 类中是严格区分引用类型和基本类型的Integer n = null; // Integer 引用类型,编译器自动使用Integer.valueOf(int)int i = n;}}
不变类
/*一旦创建了Integer对象,该对象就是不变的。对两个Integer实例进行比较要特别注意:绝对不能用==比较,因为Integer是引用类型,必须使用equals()比较*/public class Playing {public static void main(String[] args) {Integer x = 127;Integer y = 127;Integer m = 99999;Integer n = 99999;System.out.println("x == y: " + (x==y)); // trueSystem.out.println("m == n: " + (m==n)); // falseSystem.out.println("x.equals(y): " + x.equals(y)); // trueSystem.out.println("m.equals(n): " + m.equals(n)); // true}}
进制转换
public class Playing{public static void main(String[] args) {int x1 = Integer.parseInt("100"); // 100int x2 = Integer.parseInt("100",2); // 256,因为按16进制解析System.out.println(Integer.toString(100)); // "100",表示为10进制System.out.println(Integer.toString(100,2)); // "1100100",表示2进制System.out.println(Integer.toBinaryString(100)); // "1100100",表示2进制}}// 所有的整数和浮点数的包装类型都继承自Number
