java基本类型与包装类型
2014-03-26 18:09
316 查看
转载出处:http://blog.csdn.net/qaz13177_58_/article/details/6734876
基本数据类型:byte,int, short, long, boolean,char, float,double等
包装类型 : Byte,Integer,Short,Long,Boolean,Character,Float,Double等
基本类型(primitive type)
不用new来创建变量,而是创建一个并非是“引用”的“自动”变量。这个变量拥有它的“值”,并置于堆
栈中,因此更加高效。要确定每种基本类型所占存储空间的大小。
基本类型 大小 最小值 最大值 包装器类型
boolean - - - Boolean
char 6bit Unicode 0 Unic ode 2(16)-1 Character
byte 8bit -128 +127 Byte
short 16bit -2(15) 2(15)-1 Short
int 32bit -2(31) 2(31)-1 Integer
long 64bit -2(63) 2(63)-1 Long
float 32bit IEEE754 IEEE754 Float
double 64bit IEEE754 IEEE754 Double
void - - - Void
Java整型
浮点类型
一些需要注意:
1
if(x == Double.NaN)
// is never true
1
if(Double.isNaN(x))
// check whether is "not a number"
浮点数值不适合用于禁止出现舍入误差的金融计算中。例如System.out.println( 2.0 - 1.1);将打印0.899999999999999,而不是0.9。因为浮点数值采用二进制系统表示,而二进制无法精确表示分数1/10,就像十进制无法精确表示1/3一样。如果需要在数值计算中不含有舍入误差,就应该使用BigDecimal类。
一、 包装类(Wrapper Class)共同的方法
值得说明的是,java是可以直接处理基本类型的,但是在有些情况下我们需要将其作为对象来处理,这时就需要将其转化为包装类了.所有的包装类(Wrapper Class)都有共同的方法,他们是:
(1)带有基本值参数并创建包装类对象的构造函数.如可以利用Integer包装类创建对象,Integer obj=new Integer(145);
(2)带有字符串参数并创建包装类对象的构造函数.如new Integer("-45.36");
(3)可生成对象基本值的typeValue方法,如obj.intValue();
(4)将字符串转换为基本值的 parseType方法,如Integer.parseInt(args[0]);
(5)生成哈稀表代码的hashCode方法,如obj.hasCode();
(6)对同一个类的两个对象进行比较的equals()方法,如obj1.eauqls(obj2);
(7)生成字符串表示法的toString()方法,如obj.toString().
转换关系:
基本类型------&g
c204
t;包装器类
Integer obj=new Integer(145);
包装器类------>基本类型
int num=obj.intValue();
字符串------>包装器类
Integer obj=new Integer("-45.36");
包装器类------>字符串包装器类
String str=obj.toString();
字符串------>基本类型
int num=Integer.parseInt("-45.36");
基本类型------>字符串包装器类
String str=String.valueOf(5);
在一定的场合,运用java包装类来解决问题,能大大提高编程效率.
二、JDK1.5的新特性:自动装包/拆包(Autoboxing/unboxing)
自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制
解决了我们的问题。
int a = 3;
Collection c = new ArrayList();
c.add(a);//自动转换成Integer.
Integer b = new Integer(2);
c.add(b + 2);
这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.
三、举例
由于八个包装类的使用比较类似,下面以最常用的Integer类为例子介绍包装类的实际使用。
1、实现int和Integer类之间的转换
在实际转换时,使用Integer类的构造方法和Integer类内部的intValue方法实现这些类型之间的相互转换,实现的代码如下:
int n = 10;
Integer in = new Integer(100);
//将int类型转换为Integer类型
Integer in1 = new Integer(n);
//将Integer类型的对象转换为int类型
int m = in.intValue();
2、Integer类内部的常用方法
在Integer类内部包含了一些和int操作有关的方法,下面介绍一些比较常用的方法:
a、parseInt方法
public static int parseInt(String s)
该方法的作用是将数字字符串转换为int数值。在以后的界面编程中,将字符串转换为对应的int数字是一种比较常见的操作。使用示例如下:
String s = “123”;
int n = Integer.parseInt(s);
则int变量n的值是123,该方法实际上实现了字符串和int之间的转换,如果字符串都包含的不是都是数字字符,则程序执行将出现异常。(说明:异常的概念将在下一章进行讲述)
另外一个parseInt方法:
public static int parseInt(String s, int radix)
则实现将字符串按照参数radix指定的进制转换为int,使用示例如下:
//将字符串”120”按照十进制转换为int,则结果为120
int n = Integer.parseInt(“120”,10);
//将字符串”12”按照十六进制转换为int,则结果为18
int n = Integer.parseInt(“12”,16);
//将字符串”ff”按照十六进制转换为int,则结果为255
int n = Integer.parseInt(“ff”,16);
这样可以实现更灵活的转换。
b、toString方法
public static String toString(int i)
该方法的作用是将int类型转换为对应的String类型。
使用示例代码如下:
int m = 1000;
String s = Integer.toString(m);
则字符串s的值是”1000”。
另外一个toString方法则实现将int值转换为特定进制的字符串:
public static int parseInt(String s, int radix)
使用示例代码如下:
int m = 20;
String s = Integer.toString(m);
则字符串s的值是”14”。
其实,JDK自从1.5(5.0)版本以后,就引入了自动拆装箱的语法,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行,这将大大方便程序员的代码书写。使用示例代码如下:
//int类型会自动转换为Integer类型
int m = 12;
Integer in = m;
//Integer类型会自动转换为int类型
int n = in;
所以在实际使用时的类型转换将变得很简单,系统将自动实现对应的转换。
基本数据类型:byte,int, short, long, boolean,char, float,double等
包装类型 : Byte,Integer,Short,Long,Boolean,Character,Float,Double等
基本数据类型 | 包装类 |
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
不用new来创建变量,而是创建一个并非是“引用”的“自动”变量。这个变量拥有它的“值”,并置于堆
栈中,因此更加高效。要确定每种基本类型所占存储空间的大小。
基本类型 大小 最小值 最大值 包装器类型
boolean - - - Boolean
char 6bit Unicode 0 Unic ode 2(16)-1 Character
byte 8bit -128 +127 Byte
short 16bit -2(15) 2(15)-1 Short
int 32bit -2(31) 2(31)-1 Integer
long 64bit -2(63) 2(63)-1 Long
float 32bit IEEE754 IEEE754 Float
double 64bit IEEE754 IEEE754 Double
void - - - Void
Java整型
int | 4字节(32位) | -2147483648 ~ 2147483647 (正好超过20亿) |
short | 2字节(16位) | -32768 ~ 32767 |
long | 8字节(64位) | -9223372036854775808 ~ 9223372036854774807 |
byte | 1字节(8位) | -128 ~ 127 |
float | 4字节(32位) | 大约±3.40282347E+38F (有效位数为6-7位) |
double | 8字节(64位) | 大约±1.79769313486231570E+308 (有效位数为15位) |
1
if(x == Double.NaN)
// is never true
1
if(Double.isNaN(x))
// check whether is "not a number"
浮点数值不适合用于禁止出现舍入误差的金融计算中。例如System.out.println( 2.0 - 1.1);将打印0.899999999999999,而不是0.9。因为浮点数值采用二进制系统表示,而二进制无法精确表示分数1/10,就像十进制无法精确表示1/3一样。如果需要在数值计算中不含有舍入误差,就应该使用BigDecimal类。
一、 包装类(Wrapper Class)共同的方法
值得说明的是,java是可以直接处理基本类型的,但是在有些情况下我们需要将其作为对象来处理,这时就需要将其转化为包装类了.所有的包装类(Wrapper Class)都有共同的方法,他们是:
(1)带有基本值参数并创建包装类对象的构造函数.如可以利用Integer包装类创建对象,Integer obj=new Integer(145);
(2)带有字符串参数并创建包装类对象的构造函数.如new Integer("-45.36");
(3)可生成对象基本值的typeValue方法,如obj.intValue();
(4)将字符串转换为基本值的 parseType方法,如Integer.parseInt(args[0]);
(5)生成哈稀表代码的hashCode方法,如obj.hasCode();
(6)对同一个类的两个对象进行比较的equals()方法,如obj1.eauqls(obj2);
(7)生成字符串表示法的toString()方法,如obj.toString().
转换关系:
基本类型------&g
c204
t;包装器类
Integer obj=new Integer(145);
包装器类------>基本类型
int num=obj.intValue();
字符串------>包装器类
Integer obj=new Integer("-45.36");
包装器类------>字符串包装器类
String str=obj.toString();
字符串------>基本类型
int num=Integer.parseInt("-45.36");
基本类型------>字符串包装器类
String str=String.valueOf(5);
在一定的场合,运用java包装类来解决问题,能大大提高编程效率.
二、JDK1.5的新特性:自动装包/拆包(Autoboxing/unboxing)
自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制
解决了我们的问题。
int a = 3;
Collection c = new ArrayList();
c.add(a);//自动转换成Integer.
Integer b = new Integer(2);
c.add(b + 2);
这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.
三、举例
由于八个包装类的使用比较类似,下面以最常用的Integer类为例子介绍包装类的实际使用。
1、实现int和Integer类之间的转换
在实际转换时,使用Integer类的构造方法和Integer类内部的intValue方法实现这些类型之间的相互转换,实现的代码如下:
int n = 10;
Integer in = new Integer(100);
//将int类型转换为Integer类型
Integer in1 = new Integer(n);
//将Integer类型的对象转换为int类型
int m = in.intValue();
2、Integer类内部的常用方法
在Integer类内部包含了一些和int操作有关的方法,下面介绍一些比较常用的方法:
a、parseInt方法
public static int parseInt(String s)
该方法的作用是将数字字符串转换为int数值。在以后的界面编程中,将字符串转换为对应的int数字是一种比较常见的操作。使用示例如下:
String s = “123”;
int n = Integer.parseInt(s);
则int变量n的值是123,该方法实际上实现了字符串和int之间的转换,如果字符串都包含的不是都是数字字符,则程序执行将出现异常。(说明:异常的概念将在下一章进行讲述)
另外一个parseInt方法:
public static int parseInt(String s, int radix)
则实现将字符串按照参数radix指定的进制转换为int,使用示例如下:
//将字符串”120”按照十进制转换为int,则结果为120
int n = Integer.parseInt(“120”,10);
//将字符串”12”按照十六进制转换为int,则结果为18
int n = Integer.parseInt(“12”,16);
//将字符串”ff”按照十六进制转换为int,则结果为255
int n = Integer.parseInt(“ff”,16);
这样可以实现更灵活的转换。
b、toString方法
public static String toString(int i)
该方法的作用是将int类型转换为对应的String类型。
使用示例代码如下:
int m = 1000;
String s = Integer.toString(m);
则字符串s的值是”1000”。
另外一个toString方法则实现将int值转换为特定进制的字符串:
public static int parseInt(String s, int radix)
使用示例代码如下:
int m = 20;
String s = Integer.toString(m);
则字符串s的值是”14”。
其实,JDK自从1.5(5.0)版本以后,就引入了自动拆装箱的语法,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行,这将大大方便程序员的代码书写。使用示例代码如下:
//int类型会自动转换为Integer类型
int m = 12;
Integer in = m;
//Integer类型会自动转换为int类型
int n = in;
所以在实际使用时的类型转换将变得很简单,系统将自动实现对应的转换。
相关文章推荐
- Java基本类型和包装类型总结
- java_基本数据类型的包装类
- Java包含哪些基本数据类型及包装类?
- java中基本数据类型和包装类型
- java equal和==的比较,尤其注意基本类型和基本类型的包装类型的比较
- Java基础学习总结(122)——Java八种基本数据类型的包装类及其装箱拆箱详解
- 关于java的基本类型和包装类型
- Java中基本数据类型和包装器类型的关系
- java 基本类型和包装类型
- 黑马程序员-Java基础知识预备之Java基本数据类型的包装类
- java中基本类型和包装类型实践经验
- java中基本数据类型的包装类以及基本数据类型之间的转换
- 2.Java基础复习---基本类型的包装类
- java的栈与堆(基本数据类型与包装数据类型)详解
- java 包装器类型 基本类型 == equals
- 探索java基本类型和包装类型的使用运算符==进行比较的底层细节
- Java基本包装类型
- java基本数据类型对象包装类总结
- 【Java基础】基本类型的包装类作为参数传递是值传递还是引用传递
- 黑马程序员_java基本数据类型的包装类