Java:基本数据类型包装类简述

基本数据类型包装类

在开始分享今天的内容之前,我们需要知道:在实际程序使用中,程序界面上用户输入的数据都是以字符型进行存储的,但是我们知道,Java中有8种基本数据类型,而我们使用非字符类型的数据类型的频率也是相当高的,也就是说,程序开发种,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,而成绩需要转换成double类型等,这显然是非常麻烦的事情。不过,在Java中,为我们提供了相应的对象来解决该问题:基本数据类型对象包装类,即Java将基本数据类型封装成了对象。八种基本类型对应的包装类如下:

类型 英文 对应的包装类
字节型 byte Byte
短整型 short Short
整型 int Integer
长整型 long Long
字符型 char Character
布尔型 boolean Boolean
浮点型 float Float
浮点型 double Double

考虑到基本数据类型包装类的用法大多数都是一致的关系,这里就选取Integer为例,分享基本数据类型包装类的用法。

将字符串转换成基本类型(parseXXX(String s))

parseXXX(String s);这里的XXX表示的是基本数据类型,参数为可以转换成基本数据类型的字符串。注:如果字符串无法转换成基本数据类型,将会发生数字转换的问题 NumberFormatException
例子1:

package demo;

public class IntegerDemo {
    
    
	public static void main(String[] args) {
    
    
		function();
	}
	/*
	 * Interger类中的静态方法parseInt(String s),返回基本数据类型
	 * 要求:字符串必须是数字格式的
	 */
	public static void function() {
    
    
		int i = Integer.parseInt("16");
		System.out.println(i/2);
	}
}

这个例子中,把字符串"16"转换成了数字16,然后进行运算输出8,需要注意的是这里的"16"不能输入" 16"这类的非数字类型的字符串,否则会报错。
例子2:

package demo;

public class IntegerDemo {
    
    
	public static void main(String[] args) {
    
    
		function();
	}
	/*
	 * Interger类中的静态方法parseInt(String s,int radix)
	 * 
	 */
	public static void function() {
    
    
		int i = Integer.parseInt("110",2);
		System.out.println(i);
	}
}

上面这个例子中的方法是parseInt(String s)的重载方法,作用是把二进制转换成十进制,方法中的radix参数代表的是基数(进制),这里这个参数是可以换成八进制或者十六进制这些的,但是改变了radix后前面的String s 参数就必须符合相应的进制规则,比如radix = 2,String s = " 112",这里的String s 参数是不符合二进制的。

将基本数据类型转换为字符串的三种方法

(1)基本数据类型 + “”;
例子:

package demo;

public class IntegerDemo {
    
    
	public static void main(String[] args) {
    
    
		function();
	}
	public static void function() {
    
    
		int i = 10;
		String s = i +"";
		System.out.println(i+1);
	}
}

(2)Interger类中的静态方法toString();
例子:

package demo;

public class IntegerDemo {
    
    
	public static void main(String[] args) {
    
    
		function();
	}
	public static void function() {
    
    
		int i = 10;
		String s = Integer.toString(i);
		System.out.println(s);
	}
}

(3)Interger类中的静态方法toString(int a, int radix);
例子:

package demo;

public class IntegerDemo {
    
    
	public static void main(String[] args) {
    
    
		function();
	}
	public static void function() {
    
    
		int i = 5;
		String s = Integer.toString(i,2);
		System.out.println(s);
	}
}

例子2中的方法的的意思是把i转换成二进制的字符串,和上面parseInt(String s,index)方法的含义不同

Integer构造方法

例子:

package demo;

public class IntegerDemo {
    
    
	public static void main(String[] args) {
    
    
		function();
	}
	public static void function() {
    
    
	Integer in = new Integer("100");
	int i = in.intValue();
	System.out.println(i);
			
	}
}

这个例子的意思是调用Integer类的构造方法,将数字格式的字符出串,传递到Integer类的构造方法中,创建Integer类的对象,包装这个字符串,需要将这个字符串转成基本数据类型还需要调用inValue()方法;

Integer类中的其他方法

(1)两个静态成员变量
MAX_VALUE
MIN_VALUE
这两个变量表示该类型的最大和最小值,如果需要知道其余的基本类型的取值范围,只需要用相应的包装类调用就可以,比如long类型的是:Long.MAX_VALUE Long.MIN_VALUE
(2)静态方法toBinarString(int )
十进制转二进制
(3)静态方法toOctalString(int)
十进制转八进制
(4)静态方法toHexString(int)
十进制转十六进制

自动装箱和自动拆箱

自动装箱:基本数据类型直接变成对象
自动拆箱:对象中的数据变回基本数据类型

	Integer in = 1;//自动装箱 相当于Integer in = new Integer(1);

		in = in +1;//等号右边:将in对象转换成基本数值(自动拆箱)in.intValue() + 1;加法运算后,再次装箱,把基本数值转换成对象

自动装箱与拆箱的好处:节省代码,基本类型和引用类型可以直接计算,方便操作
自动装箱与拆箱的缺点:容易出现Integer in = null;的代码,会报空指针异常

猜你喜欢

转载自blog.csdn.net/qq_43825377/article/details/109108976