Java语法基础
基础规则
- Java是一种强类型语言,必须为每一个变量声明一种类型。
- 变量一旦声明,类型不能再被改变。
- Java中没有任何无符号类型(unsigned)
命名规则
- 大小写敏感
- 类名:首字母大写
- 方法名:以小写字母开头。若方法名包含若干单词,后面的每个单词的首字母大写
- 源文件名:源文件名与类名相同。
基本数据类型
- Java是一种强语言类型,即必须为每一个变量声明一种类型
- Java中没有任何无符号类型(unsigned)
- Java中所有数值类型占据的字节数与平台无关
- Java有两大数据类型:内置数据类型和引用数据类型
内置数据类型
Java提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,一种布尔型。
* byte
、int
、long
、short
都可以用八进制、十进制、十六进制的方式表示
前缀0b
表示二进制,前缀0
表示八进制,前缀0x
表示十六进制。
类型 | 存储空间 | 取值范围 |
---|---|---|
int | 4字节 | -2^31~2^31-1 |
short | 2字节 | -2^15~2^15-1 |
long | 8字节 | -2^63~2^63-1 |
byte | 1字节 | -2^7~2^7-1 |
byte
- 8位,有符号的,以二进制补码表示的整数
- 最小值:
-128(-2^7)
- 最大值:
127(2^7-1)
- 默认值:
0
byte
类型主要用在大型数组中节约空间,主要代替整数,因为byte
类型变量占用的空间只有int
类型变量的四分之一
short
- 16位,有符号的,以二进制补码表示的整数
- 最小值:
-32768(-2^15)
- 最大值:
32767(2^15-1)
- 默认值:
0
short
类型也可以像byte
节省空间。一个short
类型变量是int
类型变量所占空间的二分之一。
int
- 32位,有符号的,以二进制补码表示的整数
- 最小值:
-2^31
- 最大值:
2^31-1
- 默认值:
0
long
- 64位,有符号的,以二进制补码表示的整数
- 最小值:
-2^63
- 最大值:
-2^63-1
- 默认值:
0L
- 示例:
long a=100000L
L
理论上不区分大小写,但l
容易与1
混淆,所以一半大写。
float
- 单精度,32位,符合
IEEE 754
标准的浮点数 - 默认值:
0.0f
- 浮点数不能用来表示精确的值
double
- 双精度,64位,符合
IEEE 754
标准的浮点数 - 浮点数默认类型为
double
- 默认值:
0.0d
boolean
- 默认值:
false
char
- 一个单一的16位Unicode字符
- 最小值:
\u0000,即0
- 最大值:
\uffff。即65535
引用数据类型
- 在Java中,引用数据类型的变量类似于C/C++中的指针。
引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明的时候被指定为一个特定的类型。 - 对象、数组都是引用数据类型
- 所有引用数据类型的默认值都是
null
- 一个引用变量可以用来引用任何与之兼容的类型。
Java常量
- 使用
final
修饰 - 常量一旦被赋值,就不能够再更改
- 一般常量名全部用大写字母表示
类型转换
自动类型转换
- 整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
- 转换规则:
- 转换前的数据类型的位数要低于转换后的数据类型,如:
short
16位可以转换到int
32位,float
32位可以转换到double
64位。 - 不能对
boolean
类型进行类型转换 - 不能把对象类型转换成不相关类的对象
- 在把容量大的类型转换位容量小的类型时必须使用强制类型转换
- 转换过程中可能导致溢出或者损失精度
- 浮点数转换到整数是通过舍弃小数
- 转换前的数据类型的位数要低于转换后的数据类型,如:
强制类型转换
- 转换的数据类型必须兼容
- 如果想对浮点数进行舍入运算,得到最接近的整数,需要用
Math.round
。
调用Math.round()
时,仍需要强制类型转换。因round()
方法返回的结果位long类型,
double x=9.997;
int nx=(int)Math.round();