一、标识符(变量,类的命名规则)
标识符的作用:给变量,类命名的。
标识符的规则(定义变量名的规范):


二、数据类型
问:为什么说java是一种强数据类型的语言?
答:因为java的应用平台比较多,有的平台对存储空间不做要求,有的要做要求(类似于sql一样),所以需要定义不同的数据类型,以达到节省空间的目的。
java有这几种数据类型。

先从基本数据类型看起。
2.1、数值型
2.1.1、整数型
byte类型占用1个字节,所以表数范围是-128--127
short类型占用两个字节,所以表数范围是正负三万左右
int类型占用4个字节,表数在21亿左右
long类型8字节
还有一个记录很大很大的数的类 big decimal。
定义整数类型常量的时候,右边的整数默认为int类型。定义的时候,需要注意一下,如果是大数,超过范围需要用long类型。如下:

如果数据大小不超过21亿左右,就会自动完成转型。
比如short a = 125
虽然此时125是int类型的,但是完成自动转型,所以,定义以后,a就自动成为了short类型的125了。
但是偶尔也会有些问题,比如long中,比如byte中右边数字过大为200,long中没加L,只是写123465487113,就会报告说是int过大了。
因此,需要把右边的数字也声明为long类型才行,在后面加个L。
2.1.2、浮点型
float--4个字节
double--8个字节

类似整数常量默认是int型
浮点数常量默认是double型
所以,如果直接用
float f = 6.26
可能会提示精度丢失(表数范围减小,下一节会讲)。
因此,需要在6.26后面加个F,说明6.26也是float类型的。
float f = 6.26F
类似于前面的整数型加上L
问:都是4个字节,怎么int表数范围(-231~231)要比float的表数范围小这么多?

答:int型能精确的表示所有的整型数,而float存在舍入去查(内部的存储机制也不一样)。同样double也是。

如上,因为都有误差,所以两个数可能是不相等的。以后在使用浮点数的时候,尽量避免使用比较操作。
对于,银行系统一类的,必须要精确地表示小数的时候,可以使用BigDecimal类。
2.2、字符型数据
java内部采用的是unicode字符集(通用字符集)
单引号用来表示字符常量。

对于上图中“char在...之间,运算时可以直接当整数来看”的解释:

‘a’在ASCII中的编号是97,上面代码就会直接输出int 型数99。
问:char可以转成直接转成整数,那么能不能把一个整数直接转成char型呢?

答:不能,会报错(可能损失精度)。
如果确定要转换,那么需要强制转型,如下。

这时候才不会报错。
再扩展一下(循环打印a-z,同样用到强制转型):

注意java中的字符串是定义成了String类的。‘A’ (字符型常量)与 “A”(字符串)是不一样的。
3、boollean类型
占用1位,而不是一个字节。通常用来做逻辑判断。
只有两个值:“true” or “false”
一般建议,不用等号,直接用if b 即可。(防止多余的等号或者漏掉等号,比较麻烦。)

网友评论