注释
- 单行注释:
//
- 多行注释:
/*
开头,*/
结尾, 可跨行, 可嵌入public static void main(String[] args/* 哈哈 */)
- 文档注释:
/**
开头,*/
结尾, 可以通过JDK提供的Javadoc命令生成程序的API文档
标识符
用于给变量, 常量, 方法, 类, 包等命名
规则:
- 由字母, 数字, 下划线, $组成, 注意不能以数字开头
- 大小写敏感, 长度无限制
- 不能是Java关键字
命名规范:
- 所有变量, 方法, 类名要做到见名知其意
- 常量: 全部字母大写, 单词之间有下划线隔开
- 类成员变量: 首字母小写, 后面每个单词首字母大写
- 局部变量: 首字母小写, 后面每个单词首字母大写
- 类名: 每个单词的首字母大写
- 方法名: 首字母小写, 后面每个单词首字母大写
关键字
abstract | assert | boolean | break | byte | case |
catch | char | class | const | continue | default |
do | double | else | extends | final | finally |
float | for | goto | if | implements | import |
instanceof | int | interface | long | native | new |
null | package | private | protected | public | return |
short | static | strictfp | super | switch | synchronized |
this | throw | throws | transient | try | void |
volatile | while |
变量及数据类型
变量: 可操作的存储空间
变量分类: 局部变量, 成员变量(实例变量), 静态变量
局部变量: 必须初始化, 先声明后赋值, 否则报错
成员变量: 从属于对象, 自动初始化,
类型 | 初始值 |
boolean | false |
char | u0000 |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0 |
引用类型 | null |
静态变量: 从属于类,
二进制整数表示方法: 0b
或0B
开头, 如0b101
八进制整数表示方法: 以0
开头, 如013
十六进制整数表示方法: 0x
或0X
开头, 如0x11
运算符
一元算数运算符 | ++、-- |
二元算数运算符 | +、-、*、/、% |
赋值运算符 | = |
扩展运算符 | +=、-=、*=、/= |
关系运算符 | >、<、>=、<=、==、!=、instanceof |
逻辑运算符 | &、|、!、&&(短路与)、||(短路或)、^(异或) |
位运算符 | &、|、^、~、>>(无符号右移, 左边空位补0)、<<(左移, 右边空位以补0)、>>>(无符号右移, 左边空位补0) |
条件运算符 | ?: |
字符串连接符 | + |
整数运算:
两个操作数有一个为long, 则结果为long
没有long时, 结果为int类型, 即使操作类型全部为short, byte
浮点运算:
两个操作数只要有一个为double类型, 则结果为double类型
两个操作数都是float类型, 则结果为float类型
除法运算符
运算符两边若都为整型, 则结果为整型, 只要有一个为浮点型, 结果就为浮点型
取模运算符
其操作数可以为浮点数, 一般使用整型, 结果符号同操作符左边操作数一样
关系运算符
==、!=、可对所有数据类型(基本和引用)都可使用
<、<=、>、>=仅对数值类型及char类型有效
逻辑运算符:
短路与和短路或采用短路的方式, 即运算符左边的操作数能够是逻辑判断成立, 则不会继续计算操作符右边的表达式
位运算符:
&
和|
既是逻辑运算符, 又是位运算符, 如果操作符两边都是boolean类型, 就为逻辑运算符, 如果操作符两侧都是整数型就是位运算符
字符串连接运算符
只要有一个操作数是字符串, 自动变为字符串相连
运算符优先级(单目>算术>关系>逻辑>条件>赋值)
优先级 | 运算符 | 类 | 结合 |
1 | () | 括号运算符 | 由左至右 |
2 | !、+(正号)、-(负号) | 一元运算符 | 由左至右 |
2 | ~ | 位逻辑运算符 | 由右至左 |
2 | ++、-- | 递增与递减运算符 | 由右至左 |
3 | *、/、% | 算术运算符 | 由左至右 |
4 | +、- | 算术运算符 | 由左至右 |
5 | <<、>> | 位左移、位右移 | 由左至右 |
6 | >、>=、<、<= | 关系运算符 | 由左至右 |
7 | ==、!= | 关系运算符 | 由左至右 |
8 | & | 位运算符、逻辑运算符 | 由左至右 |
9 | ^ | 位运算符、逻辑运算符 | 由左至右 |
10 | | | 位运算符、逻辑运算符 | 由左至右 |
11 | && | 逻辑运算符 | 由左至右 |
12 | || | 逻辑运算符 | 由左至右 |
13 | ?: | 条件运算符 | 由右至左 |
14 | =、+=、-=、*=、/=、%= | 赋值运算符、扩展运算符 | 由右至左 |
类型转换
运算中相邻两个操作数先转化为同一类型, 转换从低级到高级, 然后进行运算 类型转换方向 低 ---------------------------------------> 高 byte-->short, char-->int-->long-->float-->double 自动类型转换指容量小的数据类型可以自动转换为容量大的数据类型 当将一种类型强制转换成另一种类型, 而又超出了目标类型的表示范围, 就会被截断成为一个完全不同的值
整型常量默认是int类型
long i = 7400000000; // 超出默认int类型值的范围
long j = 7400000000L; // 表明是7400000000是long类型
可以将整型常量直接赋值给byte, short, char等类型变量, 而不需要进行强制类型转换, 只要不超出其表数范围
short i = 12; // 合法
short b = 1234567; // 非法
浮点型常量默认是double类型
flout = 3.14; // 报错, 3.14默认是double类型
float = 3.14F; // 加F后表明3.14是float类型
- =右侧: 所有变量先转换为字节数最多的数据类型, 再计算
- =两侧: 左侧宽度>右侧宽度 自动转换
- =两侧: 左侧宽度<右侧宽度 强制转换
多余部分
switch结构: 根据表达式值的不同可以执行许多不同的操作.switch语句中case标签在JDK1.5之前必须是整型(long类型除外)或者枚举,不能是字符串类型, 在JDK1.7之后允许使用字符串String
break: 用于强行退出循环, 不执行循环中剩余的语句
continue: 用于终止某次循环过程, 跳出循环体中尚未执行的语句, 接着进行下一次循环的判断, 满足循环条件继续循环, 不满足则跳出循环
break、continue可以带标签
语句块可以使用外部的变量, 由于语句块内定义的变量作用域仅限语句块内, 所以外部不能使用语句块中定义的变量
哎, 明天又要汇报了!!!