首页 > 代码库 > 第三篇 标识符和基本数据类型
第三篇 标识符和基本数据类型
一、标识符
1.标识符就是用于给 Java 程序中变量、类、方法等命名的符号。使用标识符应该遵守以下几条规则:
1) 标识符必须以字母、下划线_、美元符号$开头(注意开头是没有数字的)。
2) 标识符其他部分可以是字母、下划线_、美元符$和数字的任何组合。
3) Java标识符是区分大小写敏感,且长度无限制。
4) 不可以是JAVA关键字。
2.Java中常见关键字有以下部分,不过并不需要刻意去记,学完之后关键字自然就记住了。我将关键字划分不同的块。
面向对象 | 基本类型 | 判断 | 循环 | 异常 | 命名空间 | 修饰符 | 并发 | 其他 |
class | byte | if | for | try | package | public | synchronized | return |
interface | short | else | do | catch | import | default | null | |
abstract | int | switch | while | throw | protected | |||
implements | long | case | break | throws | private | |||
extends | float | true | continue | finally | final | |||
this | double | false | static | |||||
super | char | transient | ||||||
instanceof | boolean | native | ||||||
new | volatile | |||||||
void |
3.标识符的命名最好能反映出其作用,做到见名知意。命名时采用驼峰命名法:当变量名或方法名是由一个或多个单词连结在一起,而构成的唯一识别字时,首字母以小写开头,每个单词首字母大写(第一个单词除外)。养成良好的命名习惯对以后编程有很大的帮助。
4.Java采用的是unicode(国际通用编码)是支持汉字的,所以我们的标识符也可以是汉字。这个经常在笔试题中遇到。
二、基本数据类型
Java是一种强类型语言,每个变量都必须声明其数据类型。Java的数据类型又分为两类:基本数据类型和引用数据类型。基本数据类型又分为:数值型、字符型和布尔型。引用类型是我们定义的类、接口和数组。
2.1 整数型
1. Java各整数有固定的表数范围和字段长度,其不受具体的操作系统的影响,以保证Java可移性。
注:数值型占用存储空间和表数范围是笔试常见的,但我们只需记住各类型的占用存储空间,不需要可以去记表数范围,表数范围我们可以通过占用空间去估算。以byte为例,byte是一个字节保存的,有8个位,即8个0、1。8位的第一个位是符号位,也就是说0000 0001代表的是数字1,1000 0000代表的就是-1,所以正数最大位0111 1111,也就是数字127, 负数最大为1111 1111,也就是数字-128。其他的类型也可以通过这种方式计算他的表数范围。
类型 | 占用存储空间 | 表数范围 |
byte | 1字节 | -128~127 |
short | 2字节 | -215~215-1 |
int | 4字节 | -231~231-1 |
long | 8字节 | -263~263-1 |
那如果我们变量的值超过了表数范围,会有什么影响呢?
byte b = 10; //正确byte b2 = 128; //会报可能损失精度的错误
2.Java语言整型常量的三种表示形式:
十进制整数,如:10,20。
八进制整数,要求以0开头,如:010。
十六进制数,要求0x或0X开头,如:0x12。
进制之间是可以相互转换的,转换的计算规则可以参考:http://jingyan.baidu.com/article/495ba84109665338b30ede98.html。也可以用代码实现转换,这个以后再写。我们也可以调用Java内部封装的方法进行转换。
int i = 10; System.out.println(Integer.toBinaryString(i)); //转换成二进制,输出1010System.out.println(Integer.toOctalString(i)); //转换成八进制,输出12System.out.println(Integer.toHexString(i)); //转换成十六进制,输出a
3. Java的整型常量默认为int,声明long类型需要在后面加‘l’或‘L’,不过最好使用‘L’,因为‘l’容易看起来像1,可读性差。
int i = 888; //正确//long a = 8888888888888888; //报过大的整数错误,因为java整型默认是int,8888888888888888已经超出了int的表数范围。long a = 8888888888888888L; //正确
2.2 浮点型
1.与整数型一样,Java浮点型也有固定的字段长度和表数数范围,不受平台的影响。
类型 | 占用存储空间 | 表数范围 |
float | 4字节 | -3.403E38~3.403E38 |
double | 8字节 | -1.798E308~1.798E308 |
2.Java浮点类型常量有两种表示形式:
十进制形式,例如:3.14,314.0,.314。
科学计算法,如3.14e2,3.14e2。(e2表示102)
double d = 3.14;double d2 = 3.14e2;System.out.println(d); //输出3.14System.out.println(d2);//输出314.0
3.Java浮点型常量默认是double,声明float类型需要在后面加‘f’或‘F’。如果不加则会报错。
float f = 3.14; //错误float f2 = 3.14f; //正确
4.Java浮点型数值是存在误差的,所以尽量避免去比较大小,如果一定要比较浮点型数值,可以使用BigDecimal。
float f = 0.1f;double d = 1/10;System.out.println(f == d); //输出false
2.3 字符型
1. 字符常量为用单引号括起来的单个字符。Java采用的是unicode编码,每个字符占两个字节,所以是可以表示中文的。
char c = ‘a‘;char d = ‘字‘; //编译通过
2. Java语言中使用转义字符‘\’来将其后的字符转义为其他的含义。转义成什么也不需要记,只需要记住几个常用的。
转义字符 | 意义 |
\n | 换行 |
\r | 回车 |
\\ | 反斜杠\ |
\’ | 单引号 |
\” | 双引号 |
\t | 制表符 |
3.Java的字符可以直接当成整数来计算,因为每个字符都对应一个ASCII码值,在进行计算是通过ASCII码值计算,然后再查找计算后ASCII码值对应的字符。
char c = ‘a‘;char d = (char)(c + 1); //这里需要强转,c+1之后变成了数值型。System.out.println(d); //输出b
2.4 布尔型
布尔型只占一位(注意不是一个字节)。布尔类型只可以取true和false,不可以用0或非0整数代替true和false。我原来遇到过这样的笔试题
if(b=1){ System.out.println(b);}
问输出什么,这个在Java中编译都通不过的,会报不兼容的类型错误。
第三篇 标识符和基本数据类型