| 基本数据类型 | 包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| blooean | Blooean |
| char | Character |
byte、short、int、long、float、double 的父类是 number

基本数据类型--------包装类
1、基本数据 ===> 包装类:调用包装类的构造方法
因为包装类中重写了toString()方法,所以以下两个句子效果相同,都是输出对象里面存储的具体值
System.out.println(new Integer(num).toString()); //10
System.out.println(new Integer("12"));
调用包装类的构造方法,构造方法可以放对应的基本数据,也可以放对应的字符串
class Untitled {
public static void main(String[] args) {
int num = 10;
Integer i1 = new Integer(num);
Integer i2 = new Integer("12");
System.out.println(i1.toString()); //10
System.out.println(i2); //12
//编译不报错,运行报错
//Integer i3 = new Integer("12abc");
//System.out.println(i3);
Float f1 = new Float(2.3f);
System.out.println(f1);
}
}
若输入的字符串和需要的基本数据类型内容对应不上,就会在运行时候报错
//编译不报错,运行报错
//Integer i3 = new Integer("12abc");
//System.out.println(i3);
注意boolean类型的数据有个特殊之处
当给包装类的构造器传输String类型的字符串时,无论大小写只要是true,就输出true,若是其他的字符,就直接输出false,而不是运行报错
boolean b = true;
Boolean b1 = new Boolean(b);
Boolean b2 = new Boolean("tRuE");
Boolean b3 = new Boolean("true123");
Boolean b4 = new Boolean(null);
System.out.println(b1); //true
System.out.println(b2); //true
System.out.println(b3); //false
System.out.println(b4); //false
2、包装类 ===> 基本数据:调用包装类的xxxValue()方法
调用包装类的xxValue()方法,xxx代指基本数据类型
class Untitled {
public static void main(String[] args) {
Integer ii = new Integer(12);
int i = ii.intValue();
System.out.println(i + 1); //13
//注意以下代码
System.out.println(ii + 1); //13
Float ff = new Float(2.3f);
float f = ff.floatValue();
System.out.println(f + 1); //3.3
//注意以下代码
System.out.println(ff + 1); //3.3
}
}
2、自动封箱、自动拆箱
class Untitled {
public static void main(String[] args) {
//自动装箱
int i = 10;
m(i); //Object obj = new Integer(i)
Integer a = i;
boolean b = true;
Boolean bb = b;
//自动拆箱
System.out.println(a + 1);
int ii = a;
}
//注意非静态方法不能在静态方法中调用
public static void m(Object obj){
System.out.println(obj);
}
}
String类型--------基本数据类型包装类
1、基本数据类型包装类 ===> String类型:调用String类重载的valueOf(变量)方法
方法重载是指在同一个类中,方法名相同,参数列表不同。
class Untitled {
public static void main(String[] args) {
int i = 10;
//转换成String类型
//方法一:连接字符串
String str1 = i+"";
System.out.println(str1); //10
//方法二:调用String的valueOf()方法
float f = 2.3f;
String str2 = String.valueOf(f);
System.out.println(str2); //2.3
}
}
1、String类型 ===> 基本数据类型包装类:调用包装类的parseXxx()方法
调用包装类的parseXxx()方法,xxx代指基本数据类型
class Untitled {
public static void main(String[] args) {
String str = "123";
int i = Integer.parseInt(str);
System.out.println(i+1); //124
}
}
若输入的字符串和需要的基本数据类型内容对应不上,就会在运行时候报错:NumberFormatException
//编译不报错,运行报错
//String str = "123a";
//int i = Integer.parseInt(str);
//System.out.println(i+1);
注意boolean类型的数据有个特殊之处
当给包装类的parseXxx()方法传输String类型的字符串时,无论大小写只要是true,就输出true,若是其他的字符,就直接输出false,而不是运行报错
class Untitled {
public static void main(String[] args) {
String str = "TruE";
boolean i = Boolean.parseBoolean(str);
System.out.println(i); //true
String str1 = "TruE123";
boolean i1 = Boolean.parseBoolean(str1);
System.out.println(i1); //false
}
}
小结
- 基本数据 ===> 包装类:调用包装类的构造方法
- 包装类 ===> 基本数据:调用包装类的xxxValue()方法
- 基本数据类型包装类 ===> String类型:调用String类重载的valueOf(变量)方法
- String类型 ===> 基本数据类型包装类:调用包装类的parseXxx()方法
练习题
输出以下结果
Object obj = true ? new Integer(1):new Double(2.0);
System.out.println(obj);
Object obj;
if(true)
obj = new Integer(1);
else
obj = new Double(2.0);
System.out.println(obj);
输出以下结果
public void m(){
Integer a = new Integer(1);
Integer b = new Integer(1);
System.out.println(a == b);
Integer m = 2;
Integer n = 2;
System.out.println(m == n);
Integer x = 128;
Integer y = 128;
System.out.println(x == y);
}
参考字符串
class Untitled {
public static void main(String[] args) {
String s = new String("a");
String t = new String("a");
//System.out.println(s);
System.out.println(s == t); //false
String w = "b";
String m = "b";
//System.out.println(w);
System.out.println(w == m); //true
}
}
本文详细介绍了Java中基本数据类型与包装类之间的转换方法,包括手动装箱拆箱及自动装箱拆箱的过程,并提供了String类型与其他数据类型相互转换的具体方式。
1453

被折叠的 条评论
为什么被折叠?



