java中装箱,拆箱
(1)包装类
java中不能定义基本数据类型的对象,但是提供了基本数据类型的包装类来解决这一问题,例如int类型的包装类Integer, 包装类的常用方法有Integer.ParseInt()方法类将int类型的数据和String类型的数据做强转。
(2)装箱和拆箱
在java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型)。基本类型的数据不是对象,不能作为对象调用其toString()、hashCode()、getClass()、equals()等等方法。
所以在java中,针对8种基本数据类型,提供了针对每个基本数据类型的包装类。如下:
INDEX 基本数据类型 包装类
1 int Integer
2 char Character
3 float Float
4 double Double
5 byte Byte
6 short Short
7 long Long
8 boolean Boolean
所谓装箱,就是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。
所谓拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据。
//JDK1.5 之前使用手动方式进行装箱 和拆箱的 操作
public class IntegerDemo
{
public static void main (String []agrs)
{
int i=10;
Integer j=new Integer(i); //手动装箱操作
int i1=j.intValue();//手动拆箱操作
System.out.println(i1*i1);
}
}; //output:100
//JDK1.5之后可自动进行的装箱和拆箱的操作,比较方便
public class IntegerDemo02
{
public static void main (String []agrs)
{
int i=10
Integer j=i;
int k=j;
System.out.println(++k);
}
}; //output:11
包装类的另外一个比较有用的是可以将String 字符串类型转换为相应的基本数据类型。下面以将String转为int为例:
public class IntegerDemo04
{
public static void main (String[] args)
{
String str="1500";
try
{
int i=Integer.parseInt(str);
System.out.println(++i);
}
catch (Exception e)
{
e.printStackTrace(); //打印异常信息
}
}
};// output: 1501
如果在上述方法中str="15er00";则在调用parseInt方法时候会产生NumberFormatException异常,见JDK API中对该方法的描述:
public static int parseInt(String s) throws NumberFormatException
将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。
参数:
s - 包含要解析的 int 表示形式的 String。
返回:
用十进制参数表示的整数值。
抛出:
NumberFormatException - 如果字符串不包含可解析的整数。
总结在包装类中将String转换为包装类所对应的基本数据类型的方法如下,所有的方法都将抛出NumberFormatException异常,需要在调用时候使用try ..catch 进行捕获
index 包装类 返回的基本数据类型 方法名
1 Integer int static int Integer.parseInt(Sting s)
2 Character char static char Character.parseChar(String s)
3 Float float static float Float.parseFloat(String s)
4 Dobule double static double Double.parseDouble(String s)
5 Byte byte static byte Byte.parseByte(String s)
6 Short short static short Short.parseShort(String s)
7 Long long static long Long.parseLong(String s)
8 Boolean boolean static boolean Boolean.parseBoolean(String s)
最新文章
- 添加文件到HDFS的集中缓存
- Oracle连接的若干错误
- adb上使用cp/mv命令的替代方法(failed on '***' - Cross-device link解决方法)
- JMS - 消息选择器
- Live555 分析(三):客服端
- [原创]浅谈NT下Ring3无驱进入Ring0的方法
- Serializable 作用
- X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件
- 福科田led漫反射灯条生产工序
- Android Preference详解
- SQL性能分析之执行计划
- ubuntu下使用ss-qt5
- node 重新安装依赖模块
- 清除被占用的8080端口,否则npm run dev无法正常运行
- jquery正则表达式验证(手机号、身份证号、中文名称)
- python之面向对象高级
- 全文索引&;&;地理空间索引
- grep精确匹配搜索某个单词的用法 (附: grep高效用法小结))
- Oracle Enterprise Linux 6.4 下挂载ISCSI 设备
- 黄聪:FFmpeg视频转码技巧之-crf参数(H.264篇)
热门文章
- 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解
- PyQt(Python+Qt)学习随笔:QTableWidget设置项的setItem方法
- 攻防世界 ctf web进阶区 unserialize
- 用STM32定时器测量信号频率——测频法和测周法[原创cnblogs.com/helesheng]
- 百度前端技术学院-基础-day7.8
- 题解-CF348E Pilgrims
- AcWing 398. 交通实时查询系统
- Android之Activity启动流程详解(基于api28)
- 3. 搞定收工,PropertyEditor就到这
- js上 六、运算符-2