(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)

最新文章

  1. 添加文件到HDFS的集中缓存
  2. Oracle连接的若干错误
  3. adb上使用cp/mv命令的替代方法(failed on '***' - Cross-device link解决方法)
  4. JMS - 消息选择器
  5. Live555 分析(三):客服端
  6. [原创]浅谈NT下Ring3无驱进入Ring0的方法
  7. Serializable 作用
  8. X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件
  9. 福科田led漫反射灯条生产工序
  10. Android Preference详解
  11. SQL性能分析之执行计划
  12. ubuntu下使用ss-qt5
  13. node 重新安装依赖模块
  14. 清除被占用的8080端口,否则npm run dev无法正常运行
  15. jquery正则表达式验证(手机号、身份证号、中文名称)
  16. python之面向对象高级
  17. 全文索引&&地理空间索引
  18. grep精确匹配搜索某个单词的用法 (附: grep高效用法小结))
  19. Oracle Enterprise Linux 6.4 下挂载ISCSI 设备
  20. 黄聪:FFmpeg视频转码技巧之-crf参数(H.264篇)

热门文章

  1. 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解
  2. PyQt(Python+Qt)学习随笔:QTableWidget设置项的setItem方法
  3. 攻防世界 ctf web进阶区 unserialize
  4. 用STM32定时器测量信号频率——测频法和测周法[原创cnblogs.com/helesheng]
  5. 百度前端技术学院-基础-day7.8
  6. 题解-CF348E Pilgrims
  7. AcWing 398. 交通实时查询系统
  8. Android之Activity启动流程详解(基于api28)
  9. 3. 搞定收工,PropertyEditor就到这
  10. js上 六、运算符-2