Java 八大基本数据类型以及包装类的详解

本文详细介绍了Java中八种基本数据类型及其对应的包装类,并解释了为何需要包装类。通过实例展示了如何使用这些包装类进行数据转换及操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、java中八种基本数据类型对应的包装类型: 
 原始类型 包装类 原始类型所占的字节数  
 short    Short       2个字节                        
 int        Integer     4个字节
 long     Long        8个字节
 float     Float       4个字节
 double  Double   8个字节
 byte      Byte        1个字节
 char       Character  2个字节
 boolean Boolean 这个试编译环境而定

思考:java中提供的八种基本数据类型不够用吗?为什么java中还要提供对应的包装类呢?

1.基本数据类型之间的相互转换不是都可以制动转换的,而你强制转换又会出问题,比如String类型的转换为int类型的,那么jdk为了方便用户就提供了相应的包装类。

2.便于函数传值 

3.就是在一些地方要用到Object的时候方便将基本数据类型装换

例子:

public class Integer{
 private int i;
 public Integer(int a){
 i =a;
 }

 public static int parseToInt(){
 return i;
 }
 public static Integer valueOf(String str){
 //封装一系列的逻辑最终将str转换成int类型的IntegerStr
 return new Integer(IntegerStr);
 }
}
上面是jdk关于Integer的一个例子 比如Integer intg = Integer.valueOf(str); int i = intg.parseToInt();
这样用户就很方便的完成了 String和int的转换 这样就方便了用户


有时候一个函数需要传递一个Object的变量 而你想传递int类型的进去显然不行,怎么办呢,用到了包装类。

public void test(Object obj){
}
你想传递5进去就可以这样
test(new Integer(5));

二,包装类的使用

以Integer为例子~

public class IntegerTest{
 public static void main(String[] args){ 
  //获取int类型的最大值和最小值
  System.out.println("int最小值:" + Integer.MIN_VALUE);
  System.out.println("int最大值:" + Integer.MAX_VALUE);  
  //以int推byte
  System.out.println("byte最小值:" + Byte.MIN_VALUE);
  System.out.println("byte最大值:" + Byte.MAX_VALUE); 
  //创建Integer类型的对象
  Integer i1 = new Integer(10); //int--> Integer
  Integer i2 = new Integer("123"); //String --> Integer  
  System.out.println(i1); //10
  System.out.println(i2); //123  
  //以下程序编译可以通过。但是运行的时候会报异常.数字格式化异常.
  //虽然可以将字符串转换成Integer类型,但是该字符串也必须是"数字字符串".
  //Integer i3 = new Integer("abcd"); //NumberFormatException  
 }
}
效果图:

Integer中常用的方法:

public class IntegerTest1{ 
 public static void main(String[] args){  
  //int-->Integer
  //基本数据类型-->引用类型
  Integer i1 = new Integer(10);  
  //Integer-->int
  //引用类型-->基本类型
  int i2 = i1.intValue(); 
  System.out.println(i2 + 1); //11  
  //重要:static int parseInt(String s);
  //String-->int
  int age = Integer.parseInt("25");
  System.out.println(age+1); //26  
  //"abc"这个字符串必须是“数字字符串”才行.
  //int price = Integer.parseInt("abc"); //NumberFormatException
  //重要:static double parseDouble(String s);
  double price = Double.parseDouble("3.0");
  System.out.println(price+1.0); //4.0 
  //将int类型的十进制转换成2进制
  String s1 = Integer.toBinaryString(10);
  System.out.println(s1); //1010 
  //将int类型的十进制转换成16进制
  String s2 = Integer.toHexString(10);
  System.out.println(s2); //a  
  //将int类型的十进制转换成8进制
  String s3 = Integer.toOctalString(10);
  System.out.println(s3); //12  
  //int-->Integer
  Integer i3 = Integer.valueOf(10);  
  //String--->Integer
  Integer i4 = Integer.valueOf("10");
  System.out.println(i3);
  System.out.println(i4); 
 }
}
效果图如下:


包装类的作用还是很强大的~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值