1.基本数据类型
Java中的数据类型包含byte、short、int、long、float、double、char、boolean共8种。
- 定义格式以及所占字节数:
byte a = 126; //1字节
short b = 250; //2字节
int c = 360; //4字节
long d = 560; //8字节
float e = 12f; //4字节
double f = 36.0; //8字节
char g = 'A'; //1字节
boolean h = true; //未明确规定
- 注意事项:
- byte类型占1字节,它的数据表示范围为【-128,127】。
- char类型为字符类型,初始化的字符必须用单引号‘’,双引号为字符串类型(不是基本类型)。
- float和double为单/双精度浮点型,初始化的数据后面添加上f/d。
- boolean为布尔类型,它和C语言中的0和1有区别。boolean只有真(true)和假(false)。
- 类型转换:
(1)boolean类型不可以和任意类型互转。
int a = 10;
boolean b = true;
b = a; // 编译出错, 提示不兼容的类型
a = b; // 编译出错, 提示不兼容的类型
(2)编译器自动由低精度向高精度类型转换。
int a = 2;
double b = 5.0;
System.out.println(a/b); //0.4
- 此处自动由int类型转换到double类型。
(3)高精度不能自动向低精度转换,必须使用强制类型转换。
int a = 4;
double b = 8;
System.out.println((int)(a/b)); //0
- 使用 (欲要强转的类型) 来强制转换。
- 字符串类型String
String str = "abcdef";
- Java 使用 双引号 + 若干字符 的方式表示字符串字面值。
- 和上面的类型不同, String 不是基本类型, 而是引用类型(后面重点解释)。
- 字符串中的一些特定的不太方便直接表示的字符需要进行转义.
- 常见的转义字符
2. 变量
- 硬性指标:
- 一个变量名只能包含数字, 字母, 下划线
- 数字不能开头
- 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量.
Ps:注意: 虽然语法上也允许使用中文/美元符($)命名变量, 但是 强烈 不推荐这样做.
- 软性指标:
- 变量命名要具有描述性, 见名知意
- 变量名不宜使用拼音(但是不绝对)
- 变量名的词性推荐使用名词
- 变量命名推荐小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写.
- 作用域:
也就是该变量能生效的范围, 一般是变量定义所在的代码块 (大括号)
class Test {
public static void main(String[] args) {
{
int x = 10;
System.out.println(x); // 编译通过;
}
System.out.println(x); // 编译失败, 找不到变量 x.
}
}
3.常量
- 字面值常量
10 // int 字面值常量(十进制)
010 // int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8
0x10 // int 字面值常量(十六进制) 由数字 0x 开头. 0x10 也就是十进制的 16
10L // long 字面值常量. 也可以写作 10l (小写的L)
1.0 // double 字面值常量. 也可以写作 1.0d 或者 1.0D
1.5e2 // double 字面值常量. 科学计数法表示. 相当于 1.5 * 10^2
1.0f // float 字面值常量, 也可以写作 1.0F
true // boolen 字面值常量, 同样的还有 false
'a' // char 字面值常量, 单引号中只能有一个字符
"abc" // String 字面值常量, 双引号中可以有多个字符.
- final关键字修饰的常量
final int a = 10;
a = 20; // 编译出错. 提示 无法为终变量a分配值