2.1、关键字与保留字
2.1.1、关键字(Keyword)
对Java的编译器有特殊的意义,他们用来表示一种数据类型或者表示程序的结构。
关键字中所有字母都为小写,目前共计50个(包括2个保留字)。
官方地址: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
2.1.2、保留字(reserved)
保留字是为Java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。
2.1.3、关键字与保留字总览
说明
Java中有两个未使用的保留字:goto、const。
Java中有三个特殊含义的单词:null、true、false。
JDK1.4 后追加了assert关键字;JDK1.5以后追加了enum关键字。
2.2、标识符【重点】
2.2.1、什么是标识符?
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
凡是可以由自己命名的地方都称为标识符。
例如:对于常量、变量、函数、语句块、类、项目等都需要一个名字,这些我们都统统称为标识符。
2.2.2、标识符命名规则
由26个英文字母大小写,0至9,_或$组成。
数字不可以开头。
不可以使用关键字和保留字。
严格区分大小写。
2.2.3、命名规范
类名、接口名:多单词组成时,采用帕斯卡命名法(英文:Pascal,又名大驼峰命名法),即:所有单词的首字母大写,例如: OperatorLog。
变量名、方法名:多单词组成时,采用驼峰命名法(英文:Camel,又名小驼峰命名法),即:第一个单词首字母小写,第二个单词开始每个单词首字母大写,例如: bookName。
常量名:所有字母都大写,多单词时每个单词用下划线连接,例如: PAGE_MAX_SIZE。
注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
注意2:Java采用Unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
2.3编码与解码【难点】【面试点】
编码与解码:
在计算机的内部,文件都是以二进制编码保存的,所谓的二进制编码就是指1和0。
依据一定的规则,将字符转换为二进制编码的过程称为编码。
依据一定的规则,将二进制编码转换为字符的过程称为解码。
字符集:
编码和解码所采用的规则,我们称为字符集。
常见的字符集:
ASCII:美国的字符集(128个字符),全称《美国标准信息交换代码》;
ISO-8859-1:欧洲的字符集(256个字符);
GBK:全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification),向下兼容GB2312编码;
GB2312:全称《信息交换用汉字编码字符集》,中文操作系统的默认字符集;
UTF-8:是针对Unicode的一种可变长度字符编码,熟称《万国码》。
ASCII码(补充):
文本编码方式的基础是ASCII码,它是一个7位的编码标准,包括26个小写字母、26个大写字母、10个数字、32个符号、33个控制代码和一个空格,共128个代码。由于计算机通常采用“字节”为单位存储和交换数据信息,因此很多计算机厂家对ASCII码进行了扩充,在原来的基础上又增加了128个附加字符,如ANSI、UNICODE等字符集。
UNICODE(补充):
对于英文来讲,ASCII码就足以编码所有字符,但对于中文,则必须使用两个字节来代表一个汉字,这种表示汉字的方式习惯上称为双字节。虽然双字节可以解决中英文字符混合使用的情况,但对于不同字符系统而言,就要经过字符码转换,非常麻烦,如中英、中日、日韩混合的情况。为解决这一问题,很多公司联合起来制定了一套可以适用于全世界所有国家的字符码,不管是东方文字还是西方文字,一律用两个字节来表示,这就是UNICODE。
乱码的原因:
如果我们保存文件时使用的是utf-8进行编码,而读取时使用gb2312,这样就会导致页面中的内容不能正常显示,也就是我们所说的乱码;
所以我们只需要统一两者使用的字符集就可以解决乱码问题;
这里为了有更好的通用性,我们一般使用utf-8。
2.4、变量【重点】
2.4.1、什么是变量?
内存中的一个存储区域。
该区域的数据可以在同一类型范围内不断变化。
变量是程序中最基本的存储单元。
2.4.2、变量的作用?
用于在内存中保存数据。
2.4.3、声明变量
语法:<数据类型> <变量名称>
例如:
int num; int num1, num2; |
2.4.4、变量的赋值
语法:<变量名称> = <值>
例如:
num = 10; |
2.4.5、声明并赋值
语法:<数据类型> <变量名称> = <值>
例如:
int num = 10; int num1 = 10, num2 = 20; |
2.5、数据类型【重点】
2.5.1、数据类型分类
对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。
2.5.2、整数类型
byte(字节型)、 short(短整型)、 int(整型)、 long(长整型)。
Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证Java程序的可移植性。
Java的整型常量(字面量)默认为int型,声明long型常量须后加 ‘ l ’或 ‘ L ’。
Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long。
2.5.3、浮点类型
float(单精度浮点型),double(双精度浮点型)
Java各浮点类型有固定的表数范围和字段长度,不受具体OS的影响。
浮点型字面量有两种表示形式:
十进制数形式,如:
5.12 512.0f .512(必须有小数点) |
科学计数法形式, 如:
5.12e2 512E2 100E-2 |
float类型,小数部分可以精确到6位有效数字,很多情况下,精度很难满足需求。
double类型,精度是float的两倍,程序中一般采用此类型。
Java 的浮点型常量默认为double型,声明float型常量,须后加‘ f ’或‘ F ’。
2.5.4、字符类型【面试点】
char(字符类型)用来表示通常意义上字符,占用2字节,使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
字符型变量的三种表现形式:
字符常量是用单引号括起来的单个字符。 例如:
char ch1 = 'a'; char ch2 = '字'; char ch3 = '0'; |
使用转义字符 ' \ ' 来将其后的字符转变为特殊字符型常量。
char ch1 = '\n'; //表示换行符 |
直接使用Unicode值来表示字符型常量:
char ch1 = '\u000a' //其中, 000a 是一个十六进制整数,其值为n。 |
char 类型是可以进行运算的,因为它都对应有Unicode码。
2.5.5、布尔类型【面试点】
boolean类型用来判断逻辑条件,一般用于程序流程控制:
if 条件控制语句;
while 循环控制语句;
do while 循环控制语句;
for 循环控制语句;
boolean类型数据只允许取值true和false。
不可以使用0或非0的整数替代false和true,这点和C语言不同。
Java虚拟机中没有任何供boolean值专用的字节码指令, Java语言表达所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替:true用1表示,false用0表示。
2.5.6、字符串类型
String不是基本数据类型,属于引用数据类型。
字符串类型必须是由双引号括起来的任意一个或多个字符,使用方式与基本数据类型一致。例如:
String str = "abcdefg"; |