文章目录
一、关键字和标识符
1. 关键字及其含义
关键字 | 含义 |
---|---|
abstract | 表明类或者成员方法具有抽象属性 |
assert | 用来进行程序调试 |
boolean | 基本数据类型之一,布尔类型 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
2. 标识符
Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。
- 标识符由数字(0 ~ 9)和字母(A ~ Z 和 a ~ z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
- 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
另外,Java 区分大小写,因此 myvar 和 MyVar 是两个不同的标识符。
提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。
标识符分为两类,分别为关键字和用户自定义标识符。
- 关键字是有特殊含义的标识符,如 true、false 表示逻辑的真假。
- 用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,如 abc 就是一个标识符。
提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。
例如以下合法与不合法标识符。
- 合法标识符:date、KaTeX parse error: Expected group after '_' at position 13: 2011、_date、D_̲date 等。
- 不合法的标识符:123.com、2com、for、if、fruit 等。
标识符用来命名常量、变量、类和类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。
二、变量与常量
1. 常量的定义
-
其值不会发生改变的值,称为常量
-
比如:整数常量,浮点型类型,字符常量
-
常量是可以不经过定义和初始化,而直接引用的.
“abcd” 123 ...
常量的值在其作用域内不会发生改变,也不能再被赋值,其在出现时就被当作一个立即数被使用,也就是说,只能被访问,被读,被赋值
2. 变量的定义
-
在其作用域内可以发生改变的量称为变量
-
一个变量应该有一个变量名,在内存中占据一定的存储空间,
-
变量在使用前一定要定义,每个变量都有自己唯一的地址
int num = 123;
将123赋值给定义为int类型的一个变量中
附:
3. Java八大基本数据类型
数据类型 | 取值范围 | 封装器类 |
---|---|---|
byte | 8位,最大存储数据量是255,存放的数据范围是-128~127之间 | Byte |
short | 16位,最大数据存储量是65536,数据范围是-32768~32767之间 | Short |
int | 32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1 | Integer |
long | 64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1 | Long |
float | 32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F | Float |
double | 64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加 | Double |
boolean | 只有true和false两个取值 | Boolean |
char | 16位,存储Unicode码,用单引号赋值 | Character |
三、数据类型转换
1. 自动转换
- 自动类型转换(也叫隐式类型转换) ,其实就是小范围的数据类型向大范围的数据类型转换,例如int类型转int
short s = 1;
int i = s;
2. 强转转换
- 强制类型转换(也叫显式类型转换),大范围强行装入小范围,在某种情况下会丢失精度
int i = 123456789;
short s = (short) i;
四、运算符
运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。 [1]
1. 算术
- 单目:~(按位取反)、! (取非)、-(负号运算符)、 ++(自增)、 - -(自减)、
- 双目:+ - * / %(取余)
- 三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
2. 关系
等于符号:==,不等于符号:!= ,大于符号:>, 小于符号:<,大于等于符号:>= ,小于等于符号:<= 。
3. 位与逻辑
- &:双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0
如:1010&1101
转为二进制
001111110010
&010001001101
比较结果为:000001000000
转为十进制: 64
所以1010&1101=64;
- | :当两边操作数的位有一边为1时,结果为1,否则为0
如1100|1010
转为二进制
010001001100
|001111110010
比较结果为:011111111110
转为十进制: 2046
所以1100|1010=2046;
- ~:0变1,1变0
- .^ :两边的位不同时,结果为1,否则为
如1100^1010
转为二进制
010001001100
|001111110010
比较结果为:011110111110
转为十进制: 1982
所以1100^1010=1982;
逻辑运算符
- 与(&&)、非(!)、或(||)
- && || 短路与 短路或,前边表达式条件不满足,就不会去判断后边的表达式
4. 赋值
- = += -= *= /= %= &= ^= |= <<= >>=
5. instanceof
- 该运算符是双目运算符,左面的操作元是一个对象,右面是一个类或接口。当左面的对象是右面的类(或右边类的子孙类)创建的对象、或者是右边接口的实现类(或实现类的子孙类)的对象时,该运算符运算结果是true,否则是false。
6. 位移
- << -带符号左移 >> -带符号右移 >>> -无符号右移
运算符优先级
按优先级从高到低排列如下:[ ] ( ) ++ – ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^& & || ? := op= 。
7. 运算符综述
Java 的表达式就是用运算符连接起来的符合Java 规则的式子.运算符的优先级决定了表达式中运算执行的先后顺序.例如,x<y&&!z相当于(x<y)&&(!z),没有必要去记忆运算符号的优先级别,在编写程序时可尽量的使用括号来实现你想要的运算次序,以免产生难以阅读或含糊不清的计算顺序.运算符的结合性决定了并列相同级别的运算符的先后顺序,例如,加减的结合性是从左到右,8-5+3 相当于(8-5)+3.逻辑否运算符 的结合性是右到左, x 相当于!(!x).表3.4是Java所有运算符的优先级和结合性。
参考文章:
java关键字及其作用.
Java标识符和关键字.