1. 分类
基本数据类型
4 类 8 种 -->
逻辑型 boolean 文本型 char 整数型 byte short int long 浮点型 float double
引用数据类型
3类 -->
类 class 接口 interface 数组
2. 基本数据类型
<1> 数据提升:运算之前,先转换为高一级的数据类型再运算,规则如下:
byte short char ---> int ---> long ---> float ---> double
1 2 2 4 8 4 8 -->octets
byte short char 之间不会相互提升,boolean不会转化为其他数据类型.
byte 范围:-128 ~ 127
byte short char 在参加运算时,会自动转化为 int,再运算。
如:byte b1 = 1;
byte b2 = 2;
byte b3 = b1 + b2 ;报错
//byte b3 = (byte)b1+b2; 联想到 short char 也是如此
<2> 数据声明
整型量会默认为 int 类型,所以 long 类型后面要加 l 或者 L
long a = 20L; long a = 20l;
再如:long l = 2000000000;//不加L或者l就会报错(过大的整数)
因为编译器看到整型数就视为int但是int只有四个字节装不下2000000000就报错!
浮点数会默认为 double 类型,所以float类型后面要加 f 或者 F
float f = 2.3F; float f = 2.3f;
建议:声明 long 或者 float 数据类型时写上F 或者 L,不要使用小写的 f 或者 l。
猜猜下面程序打印结果?
public class OnLongDemo {
// 年的微秒数
private static final long MICROS_PER_YEAR = 365 * 24 * 60 * 60 * 1000 * 1000;
// 年的毫秒数
private static final long MILLIS_PER_YEAR = 365 * 24 * 60 * 60 * 1000;
public static void main(String[] args) {
System.out.println(MICROS_PER_YEAR/MILLIS_PER_YEAR);
}
}
那么,修改一下代码
public class OnLongDemo {
// 年的微秒数
private static final long MICROS_PER_YEAR = 365L * 24 * 60 * 60 * 1000 * 1000;
// 年的毫秒数
private static final long MILLIS_PER_YEAR = 365L * 24 * 60 * 60 * 1000;
public static void main(String[] args) {
System.out.println(MICROS_PER_YEAR/MILLIS_PER_YEAR);
}
}
再看一个小程序,就可以知道为什么要写大写字母 L, 而不写小写字母l
public class OnLongDemo {
public static void main(String[] args) {
long x = 1234;
long y = 432l;
System.out.println("x+y= " + (x+y));
}
}很多人,一看打印结果是 x+y= 5555,但是你错了!!

long y = 432l 后面不是数字 1,而是小写字母 l
Java数据类型详解
本文详细介绍了Java中的基本数据类型和引用数据类型,包括它们的分类、数据提升规则、声明方式等,并通过实例演示了不同类型之间的运算特点。

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



