-
两大数据类型:内置数据类型和引用数据类型
-
内置数据类型:8种数据类型(六种数字类型(四种整数类型,两种字符类型),一种布尔类型,一种字符类型)
- byte:数据类型是8位、有符号的,以二进制补码表示的整数;默认值是 0; byte 变量占用的空间只有 int 类型的四分之一;byte a=10; byte b=-10
- short:数据类型是 16 位、有符号的以二进制补码表示的整数;默认值是 0;一个short变量是int型变量所占空间的二分之一;
- int:数据类型是32位、有符号的以二进制补码表示的整数;默认值是 0 ;一般地整型变量默认为 int 类型;
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;默认值是 0L("L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写);这种类型主要使用在需要比较大整数的系统上;
- float: 数据类型是单精度、32位、符合IEEE 754标准的浮点数;默认值是 0.0f;浮点数不能用来表示精确的值,如货币(如果声明小数,需要在后面加f)
- double:数据类型是双精度、64 位、符合IEEE 754标准的浮点数;默认值是 0.0d;double类型同样不能表示精确的值,如货币;
- boolean:数据类型表示一位的信息;只有两个取值:true 和 false;
- char:char类型是一个单一的 16 位 Unicode 字符;char 数据类型可以储存任何字符;
-
引用数据类型
- 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了
- 对象、数组都是引用数据类型。
- 所有引用类型的默认值都是null。
- 一个引用变量可以用来引用任何与之兼容的类型。
-
java常量:常量在程序运行时是不能被修改的(常量一般使用final修饰)
例:final double bi=3.1415926;
public class demoFour {
public void changeThing(){
char a='a';
int b=a;
System.out.println(b);
}
public static void main(String[] args) {
demoFour myDemo=new demoFour();
myDemo.changeThing(); //97
}
}
1.显式强制转化
- 条件是转换的数据类型必须是兼容的。
- 格式:(type)value type是要强制类型转换后的数据类型
public class demoFour {
public void changeThing(){
char c='b';
byte d=(byte) c;
System.out.println(d);
}
public static void main(String[] args) {
demoFour myDemo=new demoFour();
myDemo.changeThing(); //98
}
}
2.隐性强制转化
- 整数的默认类型是 int。
- 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。