- 为对基本数据类型进行更多方便的 *** 作,Java对每个数据类型提供了类类型,即包装类类型。
- 具体的包装类类型如下表所示:
基本类型 | 包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
-
构造方法:1.public Integer(int value) 2.public Integer(String s)//这个字符串必须是数字字符组成
-
成员方法:1.public static String toString(int i) //将int 转成String 2.public static int parseInt(String s) //将String 转成int 3.public static String toString(int i,int radix) //将十进制的i转成radix进制的数字字符 4.public static int parseInt(String s,int radix) //将进制为radix,数字字符为s转化为十进制数
3. *** 作如下
package Integer;
public class IntegerTest {
public static void main(String[] args) {
int radix=2;
Integer i=new Integer(10);
Integer i2=new Integer("100");//必须是数字字符
System.out.println(i);
System.out.println(i2);
System.out.println("------");
String s=Integer.toString(i2);//将int 转成String
int i3=Integer.parseInt(s);//将String 转成int
System.out.println("s: "+s);
System.out.println("i3: "+i3);
System.out.println("----------");
System.out.println("i: "+Integer.toString(i,radix)); //将十进制的i转成radix进制的数字字符
System.out.println("s: "+Integer.parseInt(s,radix)); //将进制为radix,数字字符为s转化为十进制数
}
}
三.对Integer内存的学习
1.自动装箱:把基本类型转为包装类类型
2.自动拆箱:把包装类类型转为基本类型
3.Integer针对-128到127的整形数据做了一个数据缓冲池,如果是直接对Integer赋值,且赋值数据是该范围的,则并不创建空间,而是直接在数据缓冲池中获值
4.防止空指针异常,一般用是否类等于null来判断
5.代码示例如下:
package Integer;
public class IntegerDemo {
public static void main(String[] args) {
//定义一个int类型的包装变量i;
//Integer i=new Integer(100);
Integer i1=100; //其实是自动装箱,Integer i1=Integer.valueOf(100) (valueOf返回Integer类型)
i1+=100; //其实是自动拆箱再装箱,i1=Integer.valueOf(装)(i1.intValue()(拆,返回int型)+100)
System.out.println("i1: "+i1);
Integer iii=null; //主要是为了防止空指针异常
if(iii !=null){
iii+=1000;
System.out.println(iii);
}
System.out.println("------------------");
Integer i2=127;
Integer i3=126;
Integer i4=126;
Integer i5=new Integer(126);
Integer i6=128; //会开辟新空间
System.out.println(i2==i3); //false,因为所在的的数据缓存池不在同一个位置
System.out.println(i2.equals(i3));//false,Integer重写了equals方法,比较的是内容
System.out.println("--------");
System.out.println(i3==i4); //true,因为所在的的数据缓存池在同一个位置,Integer缓冲池所存的数据范围是—— -128到127,当直接赋值时,i直接从缓冲池拿数据
System.out.println(i3.equals(i4)); //true
System.out.println("-------");
System.out.println(i4==i5);//false,因为i4在数据缓存池,i5在新开辟的空间位置
System.out.println(i4.equals(i5));//true
System.out.println("--------");
}
}
补充:对Character的学习类似于Integer,就不在此做说明了
主要参考
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)