Java教程

基本数据类型对应的8个包装类

本文主要是介绍基本数据类型对应的8个包装类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基本数据类型对应的8个包装类

为8种基本类型对应提供了8种包装类型,8种包装类型属于引用数据类型,父类是Object
8种基本类型对应的8种包装类型名:
基本数据类型 包装类型名
byte java.lang.Byte(父类是Number)
short java.lang.Short(父类是Number)
int java.lang.Integer(父类是Number)
long java.lang.Long(父类是Number)
float java.lang.Float(父类是Number)
double java.lang.Double(父类是Number)
boolean java.lang.Boolean(父类是Object)
char java.lang.Character(父类是Object)
重点以 java.lang.Integer 为例子学习
研究一下 Number类:Number类是抽象类
含有的方法:

  1. byteValue() 以byte形式返回指定的数值
  2. doubleValue() 以double形式返回指定的数值
  3. floatValue() 以float形式返回指定的数值
  4. intValue() 以int形式返回指定的数值
  5. longValue() 以long形式返回指定的数值
  6. shortValue() 以short形式返回指定的数值
    这些方法在所有的数字包装类的子类都有,这些方法是负责拆箱的

拆箱和装箱

public static void main(String[] args) {
//	1.基本数据类型转换为引用数据类型, 称作 装箱
    Integer i = new Integer(123);
//	 2. 引用数据类型转换为基本数据类型, 称作 拆箱
    float f = i.floatValue();
    System.out.println(f);//123.0
    int s = i.intValue();
    System.out.println(s);//123
   }

Integer包装类型

public static void main(String[] args) {
//	1.Integer访问常量来获取最值 
		System.out.println(Integer.MAX_VALUE);
		System.out.println(Integer.MIN_VALUE);
		//类比于Integer类,对于常见的Byte包装类
		System.out.println(Byte.MAX_VALUE);//127
		System.out.println(Byte.MIN_VALUE);//-128
//		2.自动装箱和自动拆箱
		Integer x = 100;//自动装箱  此处的x是引用数据,保存对象的内存地址,等同于Integer x = new Integer(100);
		int y = x;//自动拆箱
		System.out.println(x + 100);//200
		//此处 + 处的x不是基本数据类型,自动拆箱
//		3.整数型常量池 “池”cache就是缓存机制,优点就是效率高,但耗费内存
		/*java中为了提高程序的执行效率,将-128 到 127 之间的所有的包装对象提前创建好,放到
		一个方法区的整数型常量池中,目的是这个区间的数据不需要再new了,直接从整数型常量池中取出来使用*/
		//Integer类加载的时候,会初始化整数型常量池:共256个对象
		Integer a = 127;
		Integer b =127;
		System.out.println(a==b);//true
		// == 判断的是两个对象的内存地址
	
	}

Integer包装类常用的方法

public static void main(String[] args) {
//		1.不是一个数字,可以包装成Integer类吗?不可以, 出现了数字格式化异常 java.lang.NumberFormatException
		//Integer x = new Integer("100");
		//Integer s = new Integer("中文");
		//编译没有问题,运行时出错,出现了数字格式化异常,字符串改为不是一个数字就报错
//		 2.方法1(掌握): static int parseInt(String s) 传参String,返回int
		int s = Integer.parseInt("100");
		System.out.println(s+100);//200
		//类比于其他包装类
		double s1 = Double.parseDouble("1.2");
		System.out.println(s1+1);//2.2
//		3.了解方法
		//static String toBinaryString(int)   将十进制转换为二进制字符串
		String binaryString = Integer.toBinaryString(3);
		System.out.println(binaryString);//11
		
		// static String  toOctalString(int) 将十进制转换为八进制字符串
		String octalString = Integer.toOctalString(8);
		System.out.println(octalString);//10
		
		//static String  toHexString(int) 将十进制转换为十六进制字符串
		 String hexString = Integer.toHexString(17);
		 System.out.println(hexString);//11
		 //		4.了解valueOf方法
		//static Integer valueOf(int i) 将 int类型 转换为 Integer类型
		//static Integer valueOf(String i) 将String类型  转换为 Integer类型
		Integer s1 = Integer.valueOf(11);
		Integer s2 = Integer.valueOf("22");
		System.out.println(s1);//11
		System.out.println(s2);//22

小结:

public static void main(String[] args) {
//		1.int 和 String 之间转换:
	   //String转换为int: Integer.parseInt(String)
		int s1 = Integer.parseInt("100");
		System.out.println(s1+1);//101
		
		//int转换为String: 1. 拼接一个空字符串 2. String.valueOf(int)
		String s2 = s1+"";
		System.out.println(s2+100);//100100
		String s3 = String.valueOf(200);
		System.out.println(s3+100);//200100
		
//		2.int 和 Integer 之间转换
		//int转换为Integer: 1.自动装箱  2. Integer.valueOf(int)
		Integer x = 1000;
		Integer y =Integer.valueOf(2000);
		//Integer转换为int: 1.自动拆箱  
		int a = x;
		
//		3.String 和 Integer 之间转换
		//String转换为Integer:Integer.valueOf(String)
		Integer s5 = Integer.valueOf("100");
		//Integer转换为String:String.valueOf(Integer对象)
		String s4 = String.valueOf(x);
	}
这篇关于基本数据类型对应的8个包装类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!