Java中的数据类型分为:
public static void main(String[] args) {
//1.整型变量 int
int a = 10;
System.out.println(a);
//2.长整型变量
long num = 10L;
System.out.println(num);
//3.双精度浮点型变量
double num1 = 1.0;
System.out.println(num1);
double m = 1.0;
double n = 2.0;
System.out.println(m / n);//0.5
//4.单精度浮点型变量
float num2 = 1.0f;//写成1.0F也可以
System.out.println(num2);
//5.字符型变量
char ch = 'A';
System.out.println(ch);
//6.字节型变量
byte value = 0;
System.out.println(value);
//7.短整型变量
short value1 = 0;
System.out.println(value1);
//8.布尔类型变量
boolean value2 = true;
System.out.println(value2);
//9.字符串类型变量
String name = "KrisLEE";
System.out.println(name);
//字符串的+操作,表示字符串的拼接
String a2 = "hello";
String b2 = "World";
String C = a2 + b2;
System.out.println(C);//helloWorld
}
注意事项:
1.每一种数据类型,再给其赋值的时候,不能赋值超过它的范围
2.Java的boolean类型和int类型不能相互转换,不存在1表示true,0表示false这样的用法
3.使用 10 初始化也可以, 10 的类型是 int, 10L 的类型是 long, 使用 10 L 或者 10 l 更好一些.
4.计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一
个字符占用两个字节, 表示的字符种类更多, 包括中文
5.字节类型和字符类型互不相干
变量的命名规则
1.一个变量名只能包含数字,字母,下划线
2.数字不能开头
3.变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量
4.变量命名推荐 小驼峰命名法
常量分为:
1.字面值常量:
例如:10 010 0x10 1.0等等
2.final关键字修饰的常量
final int a = 10;
int a = 20;
System.out.println(a);//编译出错,无法为最终变量a分配值
常量不能在程序运行过程中发生修改
类型转换
Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验
结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行
int a = 10;
boolean b = true;
b = a; // 编译出错, 提示不兼容的类型
a = b; // 编译出错, 提示不兼容的类型
结论: int 和 boolean 是毫不相干的两种类型, 不能相互赋值.
注意事项:
- 强制类型转换可能会导致精度丢失. 如刚才的例子中, 赋值之后, 10.5 就变成 10 了, 小数点后面的部分被忽略.
- 强制类型转换不是一定能成功, 互不相干的类型之间无法强转.
数值提升
int a = 10;
long b = 20;
int c = a + b; // 编译出错, 提示将 long 转成 int 会丢失精度
long d = a + b; // 编译通过.
结论: 当 int 和 long 混合运算的时候, int 会提升成 long, 得到的结果仍然是 long 类型, 需要使用 long 类型的变量来
接收结果. 如果非要用 int 来接收结果, 就需要使用强制类型转换.
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);
结论: byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和 b 都
提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误
正确的写法:`
byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
System.out.println(c);
int 和 String 之间的相互转换
1.int转String
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
2.String转成int
String str = "100";
int num = Integer.parseInt(str);