暑假闲来无事,重新学习Java,希望能够加深自己对Java的理解与深入。
第一天,从Java标识符开始。
Java标识符的命名规则
- 标识符必须以字母、下划线、美元符$开头。
- 标识符其它部分可以是字母、下划线、美元符$和数字的任意组合。
- Java标识符的大小写敏感,无长度限制(但是也不要太长,会变成裹脚布的(/ □ \))。
- 不可以是Java的关键字(这点只要是有点基础的都会知道啦,Java的关键字还挺多的哦,小心踩到地雷呀)。
下面是一个小栗子。
/**测试标识符的写法*/
public classWelcome{public static voidmain(String[] args){int $abc = 3;int $ = 5;int _123=5;//int 123abc = 6;//标识符不能以数字开头//int abc# = 3;//标识符不能包含除了字母、数字、下划线、$之外的其他字符//int class = 3;//标识符不能是Java的关键字
int 博客园 = 10; //java内部采用了Unicode字符集,universal。
}
}
从例子中看到最后一行中的变量名称是汉字,那他可不可以呢?以前从来没试过,在今天看到的视频中有这种介绍,拿过来实验后果然是可以的,感慨一句“实践才是检验真理的唯一标准”呀。究其原因是什么呢,正如注释中解释的那样,Java内部采用的是Unicode(universal code)的字符集,Unicode是国际通用字符集。Unicode分为UTF-8和UTF-16。UTF-8是一种可变的字符编码方式,可以是1个、2个或3个字节,而UTF-16有2个子节组成。汉字是由两个字节表示的,用Unicode字符集能够表示汉字,所以Java的标识符可以表示为汉字。当然了,如果是在开发的过程中,应该是不会有人选择用汉字来给标识符命名的,这样做是要承担很大的风险的。
Java的基本类型
Java的基本类型表
基本类型
大小
最小值
最大值
包装器类型
boolean
-
-
-
Boolean
char
16-bit
Unicode 0
Unicode 216-1
Character
byte
8-bit
-128
127
Byte
short
16-bit
-215
215-1
Short
int
32-bit
-231
231-1
Integer
long
64-bit
-263
263-1
Long
float
32-bit
IEEE754
IEEE754
Float
double
64-bit
IEEE754
IEEE754
Double
void
-
-
-
Void
boolean类型所占存储空间的大小没有明确指定,仅定义能够去字面值true或false。
在使用Java的基本类型是需要注意的是不能超过其所能表示的范围。
同样看个小栗子:
//测试整数类型:byte,short,int,long。以及进制之间的转换问题
public classTestDataType {public static voidmain(String[] args){int a = 10;int a2 = 010; //八进制,/以0开头int a3 = 0xf; //十六进制,以0x开头//byte b = 200;//System.out.println(b);
System.out.println(a);
System.out.println(a2);
System.out.println(a3);//各进制之间相互转换
System.out.println(Integer.toBinaryString(a)); //转换为二进制
System.out.println(Integer.toOctalString(a)); //转换为八进制
System.out.println(Integer.toHexString(a)); //转换为十六进制
int a5 = 10;long a6 = 200;byte b2 = 100; //如果数据的大小没有超过byte/short/char的表示范围,则可以自动转型。
long a7 = 11123213232L;long l = 3;long l2 = l+3; //L问题
}
}
上面的例子中展示了部分基本类型的特性。特别需要提醒的是在是在使用long类型常量时可以在后面加“l”或”L”(建议使用大写,更易于区分),在定义变量名时要易于区分,最好做到望文生义。
Java的高精度数字
Java提供了两个用于高精度计算的类:BigInteger和BigDecimal。
BigInteger支持任意精度的整数,在运算中,可以准确的表示任何大小的整数值而不会丢失任何信息。
BigDecimal支持任何精度的顶点数。