在 java 中为什么会有基本数据类型的包装类?
①:基本数据类型之间的相互转换不是都可以制动转换的,而你强制转换又会出问题,比如String类型的转换为int类型的,那么jdk为了方便用户就提供了相应的包装类;
②:有时候一个函数需要传递一个Object的变量 而你想传递int类型的进去显然不行,怎么办呢,用到了包装类;
故基本数据类型的包装类用法主要是:实现基本类型之间的转换; 便于函数传值; 在一些地方要用到Object的时候方便将基本数据类型装换
基本数据类型的包装类:
1. 每一个基本数据类型,在一般情况下分配在栈上面,如果你想把它包装一下,包装成一个对象,就可以分配在堆上面,使用基本数据类型的包装类;
2. 包装类(如:Integer,Boolean,Double 等)这些封装了一个相应的基本数据类型数值,并为其提供一系列操作;
3. 以 java.lang.Integer 类为例,相应的构造方法:
Integer(int Value)、Integer(String s)
包装类常见方法:
1. 以下方法以 java.lang.Integer 类为例:
1.1 public static final int MAX_VALUE:值为 231-1 的常量,它表示 int
类型能够表示的最大值;
1.2 public static final int MIN_VALUE : 值为 -231 的常量,它表示 int
类型能够表示的最小值;
1.3 public int intValue():以 int
类型返回该 Integer
的值. 其返回的是转换为 int 类型后该对象表示的数值;
1.4 public long longValue():以 long
类型返回该 Integer
的值. 其返回的是转换为 long
类型后该对象表示的数值;
1.5 public double doubleValue():以 double
类型返回该 Integer
的值. 其返回的是转换为 double
类型后该对象表示的数值;
1.6 public static int parseInt(String s) throws NumberFormatException:将字符串参数作为有符号的十进制整数进行解析。
1.7 public static Integer valueOf(String s) throws NumberFormatException:返回 Integer 对象,其中封装的整型数据为字符串 s 所表示.
2. 包装类举例:
public class Test { public static void main(String[] args){ Integer i = new Integer(100); // 分配在堆内存中 Double d = new Double("12.568"); // 相当于先把字符串转换为double类型的数,然后再封装到Double基本数据类型的对象中去 int j = (int) (i.intValue()+d.doubleValue()); double pi = Double.parseDouble("3.1415926"); double r = Double.valueOf("2.000").doubleValue(); System.out.println(r); //2.0 double s = pi*r*r; try { int k = Integer.parseInt("1.25"); } catch (NumberFormatException e) { System.out.println("数据格式不对"); // 数据格式不对 } System.out.println(Integer.toBinaryString(123)+'B'); // 1111011B System.out.println(Integer.toHexString(123)+'H'); // 7bH System.out.println(Integer.toOctalString(123)+'O'); // 173O } }