标识符
java中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。构成规则如下:
- 标识符是由数字(0-90)、字母(a-z,A-Z)、美元符号、下划线以及Unicode字符集中符号大于0xC0的所有字符组合构成,字符之间不允许空格存在
- 标识符的第一个符号为字母
另外java中的标识符区分大小写,标识符不能以数字开头,也不能将关键字作为标识符,而且不能赋予标识符任何标准的方法名
标识符分为两类
- 关键字:是有特殊含义的标识符,如true和false表示逻辑的真假
- 自定义标识符:是由用户按标识符构成规则生成的非保留字标识符,如abc就是一个标识符
关键字
是对编译器有特殊意义的单词,不能再程序中做其他目的使用
java语言目前定义的51个关键字:
- 数据类型:byte、int、long、short、double、float、char、boolean、class、interface
- 流程控制:if、else、while、do、for、switch、case、default、break、continue、return、try、catch、finally
- 修饰符:public、private、protect、static、final、void、native、abstract、transient、volatile、synchronized、strict
- 动作符:package、throw、import、throws、this、extends、implements、new、instanceof、supper
- 保留符:true、false、null、goto、const
java的注释
- 单行注释:以双斜杠“//”标识,只能注释一行用于比较少的信息说明
- 多行注释:包含在“/*”和“*/”之间,能注释很多行的内容
- 文本注释:包含在“/**”和“*/”之间,也能注释多行内容,一般用在类、方法和变量上面,用来描述其作用
常量值
常量值又称字面常量,它是通过数据直接表示的,因此有很多种数据类型,如整型和字符串型
整型常量值
- 十进制数形式:如1,5,20等
- 八进制数形式:java中的八进制数常量表示以0开头,如0125表示十进制数85,-013表示十进制数-11
- 十六进制数形式:java中的十六进制数常量表示以0x或0X开头,如0x100表示十进制数100
整型(int)数常量默认在内存中占32位 ,是具有整数类型的值。当运算过程中所需超过32位长度时,可以把它表示为长整型(long).长整型需要在后面加上L或1,如674L,它在内存中占64位
实行常量值
- 十进制数形式:由数字和小数点组成,且必须有小数点,如10.25、11.25等
- 科学计数法形式:如1.75e2、32&E3等,且e或E之前必须有数字,e或E之后必须是整数
java实型常量默认在内存中占64位,是具有双精度(double)的值,如果考虑到需要节省运行时的系统资源,而运算时的数据值取值范围并不大且运算精度要求不太高的情况,可以把它表示为单精度型(float)的数值。单精度数值一般要在末尾加上F或f,表示一个float型实数,它在内存中占32位
布尔型常量值
Java 的布尔型常量只有两个值,即 false(假)和 true(真)。
字符型和字符串常量值
Java 的字符型常量值是用单引号引起来的一个字符,如 'e'、E'。需要注意的是,Java 字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像 "11"、"d" 等都是表示单个字符的字符串。
除了以上所述形式的字符常量值之外,Java 还允许使用一种特殊形式的字符常量值来表示一些难以用一般字符表示的字符,这种特殊形式的字符是以开头的字符序列,称为转义字符。
Java 中常用的转义字符及其表示的意义
\ddd:1-3位八进制数所表示的字符
\uxxxx:1-4位十六进制所表示的字符
\":单引号字符
\"":双引号字符
\\:双斜杠字符
\r:回车字符
\n:换行字符
\b:退格
\t:空格
定义常量
常量不同于常量值,它可以在程序中用符号来代替常量值使用,因此在使用前必须先定义
Java 语言使用 final 关键字来定义一个常量,其语法如下所示:
final dataType variableName = value
其中,final 是定义常量的关键字,dataType 指明常量的数据类型,variableName 是变量的名称,value 是初始值。
静态常量:
成员常量:
局部常量:
声明变量
对开发人员来说,变量是用来描述一条信息的别名,可以在程序代码中使用一个或多个变量。变量中可以存储各种类型的信息,如登录信息、版本名称、文件的大小、某个英文单词以及飞机票价格等。
DataType identifier=value;
上述语法代码中涉及 3 个内容:DataType、 identifier 和 value,其具体说明如下:
- DataType:变量类型,如 int、string、 char 和 double 等。
- identifier:标识符,也叫变量名称。
- value:声明变量时的值
变量标识符的命名规范如下:
- 首字符必须是字母、下划线(―)、美元符号($)或者人民币符号(¥)。
- 标识符由数字(0~9)、大写字母(A~Z)、小写字母(a~z)、下划线(―)、美元符号($)、人民币符号(¥)以及所有在十六进制 0xc0 前的 ASCII 码组成。
- 不能把关键字、保留字作为标识符。
- 标识符的长度没有限制。
- 标识符区分大小写。
成员变量
- 全局变量(实例变量):无static修饰符,只要对象被引用,实例变量就存在
- 静态变量(类变量):有static修饰符,其生命周期取决于类的生命周期,类被垃圾回收机制回收时才会被销毁
局部变量
局部变量是指在方法或方法代码块中定义的变量,其作用域是其所在的代码块
- 方法参数变量(形参):在整个方法内有效
- 方法局部变量(方法内定义):从定义这个变量开始到方法结束这一段时间内有效
- 代码块局部变量:从定义这个变量开始到代码块结束这一段时间内有效。
数据类型转换
隐式转换(自动类型转换):
如果以下 2 个条件都满足,那么将一种类型的数据赋给另外一种类型变量的时,将执行自动类型转换(automatic type conversion)。
- 两种数据类型彼此兼容
- 目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)
当以上 2 个条件都满足时,拓宽转换(widening conversion)发生。例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。
在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据。转换规则如下:
- 数值型数据的转换:byte→short→int→long→float→double。
- 字符型转换为整型:char→int。
以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。
显式转换(强制类型转换)