【JAVA基本数据类型包装类】

一、概述

JAVA中一共有8种数据类型,分别是byte short int long boolean float double  char,与此相对应的,有8个类与它们分别对应:

byte  Byte

short  Short

int  Integer

long  Long

boolean  Boolean

float  Float

double  Double

char  Character

将基本数据类型封装成对象有什么好处?

基本数据类型包装类中封装了很多属性和方法,使得对数据的操作更加方便和灵活。

举例说明:

想要获得int类型所能表示的最大值,只需要使用静态属性:Integer.MAX_VALUE即可。

想要将十进制数转换成二进制数,只需要调用静态方法:Integer.toBinaryString()方法即可。

二、基本数据类型和字符串之间的相互转换。

1.基本数据类型转换成字符串。

方法:

1.1基本数据类型+“”

1.2使用String类的静态方法valueOf

1.3使用基本数据类型包装类的非静态方法valueOf

2.字符串转换成基本数据类型。

方法:

2.1使用parseXXX方法。

用法示例:int x=Integer.parseInt("123");

注意,该方法中的参数字符串必须合法,否则会抛出运行时异常NumberFormatException。

此外,还有Long.parseLong、Double.parseDouble、Float.parseFloat、Boolean.parseBoolean、Byte.parseByte、Short.parseShort方法,但是应当注意,Character类中并没有类似的方法,原因是显而易见的,一个字符串长度一旦超过1,该方法就没有意义了。

2.2使用构造方法创建新对象。

例如:Integer x=new Integer("123");

其它基本数据类型包装类用法类似。但是仍然要注意Character类的构造方法。

三、十进制数和其它进制数之间的转换。

1.十进制数转换成其它进制数。

1.1使用三个常用方法。

public static String toBinaryString(int i); 该方法将十进制数转换成二进制数的补码表示形式。

public static String toHexString(int i); 该方法将十进制数转换成十六进制数。

public static String toOctalString(int i); 该方法将十进制数转换成八进制数。

1.2使用toString方法。

public static String toString(int i,int radix);该方法能将十进制数转换成任意进制数,前提是基数小于 Character.MIN_RADIX 或者大于 Character.MAX_RADIX。

用法示例:String str=Integer.toString(12,2); 将十进制数12转换成2进制数并返回二进制数的字符串表示形式。

2其它进制数转换成十进制数。

使用parseInt方法。

public static int parseInt(String s,int radix)throws NumberFormatException;该方法能够将字串x视为radix进制数,并将该数转换为十进制数。如果转换失败,则抛出NumberFormatException异常。

四、自动装箱、拆箱操作。

如果基本数据类型已经封装成了对象,该怎么获取该基本数据类型的值?

使用方法:intValue();(针对Integer类)其它方法的使用类似。

Double.doubleValue()、 Float.floatValue() 、Boolean.booleanValue()、Byte.byteValue()、 Character.characterValue ()、 Long.longValue()、

Short.shortValue() 

例1:自动装箱示例。

 1 public class Demo
 2 {
 3     public static void main(String args[])
 4     {
 5         Demo1();
 6     }
 7     public static void Demo1()
 8     {
 9         Integer i=new Integer(123);
10         Integer j=123;
11         System.out.println(i==j);
12         System.out.println(i.equals(j));
13         System.out.println(i.compareTo(j));
14     }
15 }

运行结果:

false

true

0

自动装箱是基本数据类型自动封装成基本数据类型包装对象的过程。

equals方法在基本数据类型包装类中比较的是对象中基本数据类型值是否相同。

例2:关于特殊值127

 1 public class Demo
 2 {
 3     public static void main(String args[])
 4     {
 5         //Demo1();
 6         Demo2();
 7     }
 8     public static void Demo2()
 9     {
10         for(int i=1;i<=200;i++)
11         {
12             Integer x=i;
13             Integer y=i;
14             System.out.println(i+":"+(x==y));
15         }
16     }
17     public static void Demo1()
18     {
19         Integer i=new Integer(123);
20         Integer j=123;
21         System.out.println(i==j);
22         System.out.println(i.equals(j));
23         System.out.println(i.compareTo(j));
24     }
25 }

观察127行,在这一行之前的结果都是true,在这一行之后的结果都是false,这是有原因的。

JDK1.5不仅做出了自动装箱和自动拆箱的规定,而且还针对整数的大小做出了是否开辟出新的空间存储对象的规定:

如果自动装箱的是一个字节,那么该数据会被共享,而不会重新开辟空间。

五、判断拆箱操作还是装箱操作。

 1 public class Demo
 2 {
 3     public static void main(String args[])
 4     {
 5         //Demo1();
 6         //Demo2();
 7         Demo3();
 8     }
 9     public static void Demo3()
10     {
11         Integer i=1;
12         i=i+1;
13         System.out.println(i);
14     }
15     public static void Demo2()
16     {
17         for(int i=1;i<=200;i++)
18         {
19             Integer x=i;
20             Integer y=i;
21             System.out.println(i+":"+(x==y));
22         }
23     }
24     public static void Demo1()
25     {
26         Integer i=new Integer(123);
27         Integer j=123;
28         System.out.println(i==j);
29         System.out.println(i.equals(j));
30         System.out.println(i.compareTo(j));
31     }
32 }

运行结果:2

最关键的一句就是i=i+1;这个操作。

这其中包含着自动拆箱和自动装箱的操作。

分析i+1,我们知道JAVA中的运算必须是同一种类型数据之间的运算。在这里,一个基本数据类型1,还有一个是基本数据类型包装类的对象,那么他们之间的运算是怎么回事儿呢?首先,JAVA中的运算只能是基本数据类型之间的运算,所以,在这里,基本数据类型包装类的对象会调用intValue方法,返回一个整数,在这里,这个整数是1,然后1+1得出结果2,但是2是基本数据类型,所以如果要赋值给i,还需要有一个自动装箱的操作。

时间: 10-05

【JAVA基本数据类型包装类】的相关文章

java基本数据类型包装类

http://blog.163.com/bt_q/blog/static/11926672920104902636829/ Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类. 包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示: 包

Java基础知识(JAVA基本数据类型包装类)

基本数据类型的包装类 为什么需要包装类? Java并不是纯面向对象的语言.Java语言是一个面向对象的语言,但是Java的基本数据类型却不是面向对象的.但是我们在实际使用中经常需要将基本数据转化成对象,便于操作.比如:集合的操作中,这是,我们就需要将基本类型数据转化为对象. 包装类均位于java.lang包,使用时不需要导入,系统自动导入.Java中的8个包装类分别是:Byte,Short,Integer,Long,Float,Double,Character,Boolean它们的使用方式都是一

Java 基础数据类型包装类的高频区间的数据缓存

一.Java的基础数据类型的包装类:Integer,Long,Double,Float,Boolean,Byte,Short,Character. 二.高频缓存区 其中Double和Float没有缓存,其他类型都有高频缓存区间.其高频缓存区间的缓存范围是:Boolean:使用静态final,就会返回静态值Byte:-128~127Short:-128~127Character:0~127Long:-128~127Integer:-128~127 如果所使用的包装类的值在这个缓存区间内,就会直接复

Java中字符串的学习(四)基本数据类型包装类的学习与使用

基本数据类型对象包装类 按照java面向对象的原则,万事万物都是对象,这也就包括了基本数据类型. Byte   byte Short  short Integer    int Long   long Boolean   Boolean Float  float Double   double Character  char 接下来就以int为例进行讲解: 在java.lang包中Integer类 Integer类在对象中包装了一个基本类型int值.Integer类型的对象包含一个int类型的字

Java笔记九.常用APIの数据类型包装类

数据类型包装类 一.概述 Java对数据既提供基本数据的简单类型,也提供了相应的包装类.使用基本简单数据类型,可以改善系统的性能,也能够满足大多数应用需求.但是,简单类型不具有对象的特性,不能满足某些特殊的需求.比如Java中很多类的很多方法的参数类型都是对象,如Integer类来包装整数,我们可以使用Integer对象很容易地实现整数与字符串的转换. 二.Integer类(java.lang.Object ->java.lang.Number) 整数类包装的原始类型int对象的值,一个整数类型

黑马程序员----java基础:String与StringBuffer及基本数据类型包装类

java中一些基础类比如String.StringBuffer和基本数据类型包装类都是非常常见且使用非常频繁的类.这些类虽然简单,但是想要熟练使用也必须要学习,虽然API文档对这些类的用法都讲的比较详细,但是我觉得还是有必要再整理一下. 一.String类 1.概述 String就是字符串的意思,首先要明确一点的是String并不属于基本数据类型. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 注意new String()

Java基础---String类和基本数据类型包装类

第一讲     String类 一.概述         String是字符串的类类型,用于描述字符串事物.字符串是一个特殊的对象.特殊之处就在于: Stings= new String();和String s1=””;两种写法都是在创建对象,使用起来一样. 二.特点 字符串最大的特点就是:一旦被初始化就不可以被改变. 例: String s1=“abc”: String s2 = new String(“abc”): String s3=“abc”: 比较的结果: s1==s2   ( fal

Java基础----基本数据类型包装类

基本数据类型包装类 基本数据类型     引用数据类型 byte             Byte short            Short int              Integer long             long float            Float char             Character boolean          Boolean double           Double 基本数据类型包装类最常见的作用 就是用于基本数据类型和字符串类

java基础4:String与StringBuffer及基本数据类型包装类

关于Java基础的文章,我觉得写得还可以,以前发在了我其它的博客了,肯定是原创,现在再分享给大家出来. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------