变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。
Java 的两大数据类型:

代码实例:

基本数据类型是每个语言的灵魂🙌

-128(-2^7);最大值是 127(2^7-1);-32768(-2^15);最大值是 32767(2^15 - 1);-2,147,483,648(-2^31);最大值是 2,147,483,647(2^31 - 1);-9,223,372,036,854,775,808(-2^63);最大值是 9,223,372,036,854,775,807(2^63 -1);L作为标识f或F标识浮点数 = 符号位 + 指数位 + 尾数位😁另外,小数都是近似值~
java里的小数可以使用科学计数法表示,以下是一个实例:
double g = 5.21E-2; // 科学计数法
// 它表示的值是0.0521
通常情况下,应该使用double类型,因为它更加精确🎈
运算结果为浮点数时,不要轻易使用比较运算符,要小心精度丢失问题。一个合理的解决方法是以两个数的差值的绝对值,在某个精度范围内判断
错误的示范:
// 浮点数陷阱
double h = 8.1/3;
System.out.println(h);
if (h == 2.7){
System.out.println("结果正确!");
} else {
System.out.println("结果错误!");
}
--------------------------------
输出:
2.6999999999999997
结果错误!
正确的示范:
// 正确的示范
if (Math.abs(h - 2.7) < 0.000001){
System.out.println("结果正确!");
} else {
System.out.println("结果错误!");
}
\u0000(十进制等效值为 0);最大值是 \uffff(即为 65535);true 和 false;默认值是 false;精度小的数据类型会自动转化为精度大的数据类型🚀
例如:
// 自动类型转换,低 -- 高
int num = 'a';
double l = 80;
Byte,short,char之间不会相互进行自动转换❌但是这三者可以进行计算,在计算时首先会转换成int,不管他们是不是混合运算
有多种数据类型混合运算时,系统会首先将所有数据转换成容量最大的数据类型,然后进行计算🚀
boolean类型不参与转换
在高精度转换为低精度数据类型时,程序员可以有意的进行强制数据类型转换,注意这很危险,除非是有意为之🙌
例如:
// 强制数据类型转换
int m = (int)5.21;
System.out.println(m);
-----------------
输出:
5
注意:强制转换只对最近的操作数有效,往往会使用小括号提升优先级别🤡
基本数据类型 – 字符串
int n = 521;
String s1 = n + ""; // 加双引号即可转换
System.out.println(s1);
字符串 – 基本数据类型(使用包装类)
String s2 = "521";
int o = Integer.parseInt(s2); // 其他类型转换类推即可
System.out.println(o);
如果我们想得到字符串中的某个字符,进行如下操作即可
String s2 = "521";
// 得到s2字符串的第一个字符
System.out.println(s2.charAt(0));
-----------------------
输出:
5