- 字面常量
- 数据类型
- 变量
一、字面常量的分类:
- 字符串常量:由""括起来的。
- 整形常量:直接写的数字(没有小数点),比如:100、1000
- 浮点数常量:直接写的小数,比如:3.14、0.49
- 字符常量:由 单引号括起来的当个字符如:‘A’、‘1’
- 布尔常量:只有两种,true和false
- 空常量:null
数据类型
一、分类:基本数据类型和引用数据类型
二、字符串、整形、浮点型、字符型以及布尔型,在Java中都称为数据类型。
基本数据类型有四类八种:
- 四类:整型、浮点型、字符型以及布尔型
- 八种:
注意: - 不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节(这里区别于C语言,长度不分32位还是64位)
- 整形和浮点型都是带有符号的,整型默认int型,浮点型默认double
- 字符串属于引用类型
- 字符型的内存占用与C语言不一样,占2个字节
变量
定义变量的基本规则与C语言类似:
数据类型 变量名 = 初始值;
一、整型变量
//输出int、long、、short、byte型的最大、最小值 System.Out.println(Integer.MIN_VALUE); System.Out.println(Long.MAX_VALUE); System.Out.println(Short.MAX_VALUE); System.Out.println(Byte.MIN_VALUE);
- 注:int的包装类型为 Integer。long,short,byte同理
- 特别注意:长整型变量的初始值后加L或者l,推荐加L
- 字节型byte在任何系统下都占1个字节,范围是:-128 ~ 127
使用哪种类型就像挑选衣服尺码一样,选择最合适的。
二、浮点型变量
- 在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。要得到小数,需要强制转换,用法同c。
- double 类型的内存布局遵守 IEEE 754 标准(和C语言一样)
- 通常都用double,用float记得加上f/F
三、字符型变量
- 计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符。 因此java中一个字符占用两个字节, 能够表示的字符种类更多, 包括中文。(执行javac时要输出中文,加上 -encoding UTF-8 选项即可)
四、布尔型变量
- 特别注意:Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法。因此在while()里不能用数字了
五、类型转换
1.隐式:数据范围小的转为数据范围大的时会自动进行。
2.显式:强制转换。数据范围大的到数据范围小的。
六、类型提升
- int与long之间:int会被提升为long
- byte和byte之间:
byte a = 10; byte b = 20; byte c = a + b; System.out.println(c); // 编译报错 Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失 byte c = a + b; ^
结论:
- 不同类型的数据混合运算, 范围小的会提升成范围大的.
- 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算
七、字符串类型
与c++类似,可以直接用+号拼贴。
int转String:String str1 = String.valueOf(num);
String转int:int num = Integer.parseInt(str);