在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这样的引用类型的对象重新简化为值类型的数据。
Java代码
//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为例:
Java代码
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中对该方法的描述:
Java代码
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)
类似的一个方法为 parseXXX(String s,int radix),对于Integer包装类,这个radix表示进制. parseInt(String s)默认为十进制。 其他包装类的radix参数意义,请参见API文档
http://jzinfo.iteye.com/blog/450590(写的很好,所以没有收藏)
所以在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这样的引用类型的对象重新简化为值类型的数据。
Java代码
//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为例:
Java代码
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中对该方法的描述:
Java代码
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)
类似的一个方法为 parseXXX(String s,int radix),对于Integer包装类,这个radix表示进制. parseInt(String s)默认为十进制。 其他包装类的radix参数意义,请参见API文档
http://jzinfo.iteye.com/blog/450590(写的很好,所以没有收藏)
发表评论
-
java验证字符串中是否包含数字,对数字的操作
2016-03-15 11:01 9542在javascript中有一个方法 ... -
jdk7 Collections.sort()方法报非法参数异常
2016-03-03 18:57 12111JDK7的Comparison method violates ... -
log4j.properties配置详解
2016-01-18 16:50 1329Log4J的配置文件(Configuration File)就 ... -
Java 日期时间 Date类型,long类型,String类型表现形式的转换
2015-12-24 17:35 3317Java 日期时间 Date类型,long类型,String类 ... -
Java多线程-工具篇-BlockingQueue
2015-11-24 16:13 1016Java多线程-工具篇-Block ... -
Java 实例 - 队列(Queue)入门用法
2015-11-23 17:27 2036队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表 ... -
Java中序列化的serialVersionUID作用
2015-11-13 14:13 4885Java序列化是将一个对象 ... -
java的序列化和反序列化
2015-10-27 19:48 1152Java基础学习总结——Jav ... -
java中volatile关键字的含义
2015-08-12 20:10 792java中volatile关键字的含 ... -
Java读写文件中文乱码问题
2015-07-20 17:49 3006问题:在用Java程序进行读写含中文的txt文件时,经常会出现 ... -
String类中split方法的使用
2015-07-02 14:39 1031String类中split方法的使用 split 方法:将一个 ... -
PreparedStatement防止SQL注入
2015-04-11 16:27 2841一条效率差的sql语句,足以毁掉整个应用. Stateme ... -
Redis与Memcached的区别
2015-04-11 15:20 1108如果简单地比较Redis与Memcached的区别,大多数都 ... -
Session的生命周期
2015-04-11 11:58 968我们已经知道,Session是在用户第一次访问网 ... -
JAVA多线程和并发基础
2015-04-11 11:58 807JAVA多线程和并发基础 ... -
Hibernate一级缓存详解
2015-04-11 11:58 15681.Session 级别的缓存,它同session邦定。它 ... -
Java堆内存Heap与非堆内存Non-Heap
2015-04-08 22:19 1677堆(Heap)和非堆(Non-heap)内存 按照官 ... -
JVM内存模型
2015-04-08 22:07 956/*** 转载请注明作者l ... -
java类加载机制
2015-04-08 21:42 747研究Java类加载机制必要 ... -
classloader加载class的流程及自定义ClassLoader
2015-04-08 21:33 2311/*** 转载请注明作者longdick http: ...
相关推荐
在Java编程语言中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是两个重要的特性,它们简化了基本类型(如int、double等)与对应的包装类(如Integer、Double等)之间的转换过程。这些特性是在Java 5引入的,极大...
在Java中,自动装箱(Autoboxing)和拆箱(Unboxing)是Java编译器提供的一种特性,用于在基本数据类型和对应的包装类之间进行自动转换。这种特性简化了编程过程中的类型转换操作,使得代码更为简洁易读。 **自动...
在Java编程语言中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是从Java 1.5版本开始引入的一项特性,其目的是简化原始类型(Primitive Types)与它们对应的包装类(Wrapper Classes)之间的转换过程。...
对于基本数据类型与包装类之间的转换,Java提供了一个非常便利的功能——自动装箱和自动拆箱。这些功能极大地简化了编程流程,使代码更加简洁易读。 #### 基本数据类型与包装类 在Java中,**基本数据类型**是指...
在Java编程中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是两个非常核心的概念,它们允许基本数据类型和它们对应的包装类之间无缝转换。这种转换机制在Java 5中引入,极大地简化了代码编写,但同时也带来了一些...
从Java 5开始,引入了自动装箱和拆箱特性,使得基础数据类型和其包装器类之间的转换更加方便。例如: ```java Integer y = 567; // 自动装箱 y++; // 自动拆箱,自增,再自动装箱 System.out.println("y = " + y); ...
Java中自动装箱和拆箱是Java语言中一个重要的特性,它可以将基本数据类型和它们的包装类之间进行转换,这个过程是透明的,程序员不需要手动进行转换。但是,这个过程会引起一些耗时问题,本文将详细介绍Java中自动...
在Java中,自动装箱和拆箱主要依赖于包装类的几个特殊方法。例如,对于`Integer`类,它提供了`valueOf()`和`intValue()`方法来支持自动装箱和拆箱。 - **装箱**:通过调用`Integer.valueOf(int)`方法实现。 - **...
学习和理解Java包装类的基本概念和语法; 实际项目中需要使用包装类来增加类型安全性和重用性的开发任务。 目标: 本代码资源的目标是帮助读者理解包装类的用法和优势,并通过实际的示例代码加深对包装类的掌握。...
Java 包装类、拆箱和装箱详解 Java 语言作为一门典型的面向对象编程语言,然而其八种基本数据类型并不支持面向对象编程。这些基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。为了解决这个问题...
"详解Java包装类及自动装箱拆箱" Java 包装类是 Java 语言中的一种基本类型的封装体,它将基本类型的值“包装”到对象中,使基本类型的值能够包含在集合中,或者作为方法的返回值。Java 包装类有两个主要的目的:将...
如果i在-128和127之间,则从IntegerCache中获取包装类的实例,否则new一个新实例。这是使用了亨元模式,来减少对象的创建。 在Java中,自动装箱和拆箱的实现原理如下: * 自动装箱:编译器调用valueOf()方法将原始...
Java中的装箱与拆箱是面向对象编程中一个重要的概念,尤其在处理基本类型与对象类型之间的转换时显得尤为重要。本文将深入讲解Java装箱与拆箱的基本概念,并通过实例代码进行演示。 装箱(Boxing)是Java自动将基本...
Java中的自动装箱和拆箱是自J2SE 5.0版本引入的特性,它极大地简化了基本数据类型与其对应的包装类之间的转换过程。基本数据类型包括int、double、boolean等,而包装类如Integer、Double和Boolean分别对应这些基本...
Java中的装箱和拆箱是面向对象编程中的一个重要概念,主要涉及到基本数据类型与它们对应的包装器类之间的转换。在Java SE 5及以后的版本中,为了方便开发者使用,引入了自动装箱和拆箱的功能。 一、什么是装箱和...
在Java中,自动装箱是指将基本数据类型自动转换为对应的包装类对象的过程,而自动拆箱则是指将包装类对象自动转换为基本数据类型的逆过程。这一特性自Java 5起引入,极大地简化了开发者的编程工作。 #### 基本数据...
Java 包装类是 Java 语言中的基本类型的对象表示形式,用于提供包装基本类型的对象。Java 包装类包括 Boolean、Byte、Character、Short、Integer、Long、Float 和 Double 八种。 1. Long 包装类型常量 cache 机制 ...
Java中的自动装箱和拆箱是自JDK 1.5版本引入的一种语言特性,它极大地简化了基础数据类型(如int)与它们对应的包装类(如Integer)之间的转换过程。这一特性使得开发者无需手动创建包装类实例或使用显式类型转换,...
在 Java 5 中引入了自动装箱与拆箱的功能,使得开发者在使用基本类型和它们对应的包装类之间更加灵活。 **示例**: ```java // 自动装箱 int num = 10; Integer numObj = num; // numObj 是 Integer 对象 // 自动...
Java语言在设计时引入了自动装箱和拆箱机制,以方便开发者在基本类型与它们对应的包装类之间进行转换。这个特性在提高编程效率的同时,也可能带来一些隐藏的陷阱,尤其是在性能敏感的代码中。本篇文章将深入探讨Java...