引用数据类型(封装数据类型)--面向对象设计的数据类型---把成一类的方式存在,它们不能扩展,绝种的。没有子类。
整型:Byte Short Integer Long
浮点型:Float Double
字符型:Character
布尔型:Boolean
两个特殊:int == Integer char == Character
其他的都是将首字母改成大写。
基础数据类型和封装数据类型的区别:
数据数据类型它值一种数据结构而已,他定义都是在堆内存中的,
封装数据类型它是一个类,它有方法和属性,供封装数据调用和转换,提供很多方法可以转换成基础数据类型。
封装数据他的原理还是基础数据类型,只不过它是一个常量类型的基础数据类型,通过他的构造函数你就可以发现它是一个常量
默认值
基础数据类型默认值:
整型:byte short short long 默认值是0
float doubel的默认值:0.0
char默认 \u0000
boolean 默认:false
封装数据类型:默认值null,因为他是类
基础数据类型及封装数据类型比较
1、基础数据类型与基础数据类型、封装数据类型比较,只是值的比较。可以用 '==' 比较
2、封装数据类型比较用 equals 比较,如果数据类型不一致都是 false,反之true
在开发中,时刻谨记,如果两个数字都是相同,返回还是false,那么你就一定要检查数据类型是不是一样的了。如果是一样肯定是true,否则false;
public class test2 {
public static void main(String[] args) {
int a = 10;
Integer b = 10;
float c = 10F;
Float d = 10F;
double e = 10;
Double f = 10D;
Double g = 10D;
System.out.println(a==b);//true
System.out.println(a==c);//true
System.out.println(a==d);//true
System.out.println(c==d);//true
System.out.println(b.equals(a));//true
System.out.println(b.equals(d));//false
System.out.println(d.equals(f));//false 用 == 会报错,类型不一致
System.out.println(g.equals(f));//true 值的比较
System.out.println(g==f);//false 内存地址的比较,g f不等
}
}
字符串与数据类型的转换
Float Double Boolean Char Long Byte Short同理
public class test3 {
public static void main(String[] args) {
//字符串转为整数
String string = "10";
Integer a = Integer.valueOf(string);
if(a instanceof Integer){
System.out.println("a 是一個整數!");
}else {
System.out.println("a 不是整數!");
}
//整数转为字符串
Integer b = 10;
String c = String.valueOf(b);
if(c instanceof String){
System.out.println("c 是一個字符串!");
}else {
System.out.println("c 不是字符串!");
}
}
}