Java标识符命名规则:
标识符由数字,字母,下划线,$组成。数字,下划线不能开头。
Java包:
当class文件数量繁多时,容易出现一些同名文件,但它们的功能却不相同。为了层次化管了,引入包(package)。简单地说,包就是一个文件夹,一个包中可以存放多个类文件,但是不能有同名的类文件。实际开发中,会把功能相似或功能相同的class文件放在同一个包下,使用不同的包声明对各个程序文件进行保存、管理和隔离。包的声明应该在文件的第一行,而且每个java文件只能有一个包声明。
Java包的命名一般都是小写。其余要求与标识符命名规则要求相同。引入一个包我们一般用关键字import。
- 类名/接口名命名规范:类名(接口名)应用大驼峰的形式,即每个单词的首字母大写,其 余字母小写。
- 方法名/变量名命名规范:方法名(变量名)应用小驼峰的形式,即第一个单词小写,从第 二个单词开始,每个单词首字母大写。
- 常量命名规范:全是大写,如果是多个单词,直接用下划线隔开。
- 包名命名规范:包名一般小写。
原码,反码,补码
在计算机内部,所有计算都是以补码进行的。
原码:原码就是二进制表示数,最高位是符号位,0表示正,1表示负。
反码:正数的反码和原码相同。负数的反码是对原码取反,符号位除外。
补码:正数的补码和原码相同。负数的补码是对反码末尾加1。
基本数据类型
1.整数类型
(1)byte类型
byte型有一个字节构成,一个字节占用内存八位,每位里面存储0或1。因此byte类型能表示的数据范围是-128~+127。我们通常将10000000记为-128。
(2)short类型
short型由两个字节构成,共占内存16位,因此short类型的范围是:-215~215 - 1。
(3)int类型
int类型由四个字节构成,共占内存32位,因此int类型的范围是:-2^31 ~ 2^31 - 1
(4)long类型
long类型由八个字节构成,共占内存64位,因此long类型的范围是:-2^63 ~ 2^63 - 1。需要注意的是,在定义long类型时,后面需加字母“L”或“l”。由于字母“l”与数字“1”近似,所有我们一般加“L”。例如:long n=999999999999L;
2.浮点类型
(1)float类型
float类型是单精度数值类型,占用内存32位,4字节。同样,在定义变量时一般在后面加“F”或者“f”。例如 float f=3.14F;
(2)double类型
double类型是双精度数值类型,占用内存64位,8字节。
3.字符类型
char类型一般表示字符串类型,一般由单引号括起来。并且根据ASCII码表,符号也能表示数。常见的有:’0’~48 ‘A’~65 ‘a’~ 97
4.布尔类型
boolean是最简单的数据类型,在java中占一个字节。只要true(真)、false(假)两种类型。
这里需要补充的是,整数类型一般默认为int类型。浮点类型一般默认为double类型。
Java中的默认类型转换:
(1): boolean类型不能转换为其他的数据类型
(2): byte—short—char—int—long—float—double
(3): byte,short,char之间不转换,他们参与运算首先转换为int类型
public class Test1 {
public static void main(String[] args) {
byte a=3;
byte b = 6;
byte c=a+b;//报错,因为a和b在相加时,系统会默认转换成int型,
// 最后的结果c也是int型,用byte型接受int型可能会发生数据丢失
System.out.println(c);
}
}
为了解决这种问题,我们采用强制类型转换。
格式:目标数据类型 变量名=(目标数据类型)(被转换的数据);
这样,上面的程序就可以正常运行了
public class Test1 {
public static void main(String[] args) {
byte a=3;
byte b = 6;
byte c=(byte)(a+b);//正确,使用强制类型转换,将int型转换为byte型
System.out.println(c);
}
}
运行结果是
9
尽量不要使用强制类型转换,这可能会损失精度
public class Test1 {
public static void main(String[] args) {
byte a=3;
byte b = 127;
byte c=(byte)(a+b);//系统不报错,但最后结果出错,
//因为byte型最多表示127,发生溢出现象
System.out.println(c);
}
}
运行结果:
-126
运算符
Java中的运算符有很多,但像“+”、“-”这种过于基础,这里不再说明。
- i++和++i
自加运算符,在单独使用时,两者功能相同。当参与运算时,会有不同。i++是先运算,再给i自加1;++i是先给i自加1,再参与运算。 - i–和--i
自加运算符,在单独使用时,两者功能相同。当参与运算时,会有不同。i–是先运算,再给i自加1;–i是先给i自加1,再参与运算。