注释是不会被执行的代码部分,仅起到解释代码的作用
// 单行注释 /** * Title: 文档注释 * @author * @version * /Java中标识符定义规范
为了代码的规范,写出好看易懂的代码,标识符的定义需要遵循一定规则
- 包名一律小写
- 类名和接口名每个单词首字母大写,如:ArrayList(大驼峰)
- 常量名所有字母大写,单词之间下划线隔开DAY_OF_MONTH
- 变量名和方法名第一个单词首字母小写,其后首字母大写lineNumber(小驼峰)
- 程序中的变量常量等标识符,尽量使用有意义的英文单词来表示。
变量的定义方式 变量类型 变量名 [=初始值]; 中括号内非必须(与C、C++相同)
变量的数据类型
| 类型 | 内容 |
|---|---|
| 数值型 | byte short int long float double |
| 字符型 | char |
| 布尔型 | boolean |
| 引用数据类型 | class interface 数组 enum Annotation |
在计算机内,整形数据的存储方法是补码,以下的数据范围是补码的数据范围
- byte 一字节(8位) − 2 7 ∼ 2 7 − 1 -2^{7} sim 2^{7} -1 −27∼27−1
- short 二字节(16位) − 2 15 ∼ 2 15 − 1 -2^{15} sim 2^{15} -1 −215∼215−1
- int 四字节(32位) − 2 31 ∼ 2 31 − 1 -2^{31} sim 2^{31} -1 −231∼231−1
- long 八字节(64位)
−
2
63
∼
2
63
−
1
-2^{63} sim 2^{63} -1
−263∼263−1
实际编写代码时,根据变量大小选择适合的数据类型
浮点数的范围参照IEEE 754,有具体的整数位和指数位标准
- float 四字节(32位)
- double 八字节 (64位)
在Java中,小数默认是double类型,因此在为float类型赋初值时记得要在小数后加字母F或f
float f = 123.4f
double赋初值可加d,也可不加
在Java中,char类型占2字节,因此整数表示为0~65535,计算机会自动根据整数转换为字符,如
char ch=97与char ch = 'a'相同
boolean flag = false of boolean flag = true
变量类型转换 自动类型转换将一个类型取值范围小的数值转换为一个取值范围大的数据类型时,系统会进行自动类型转换,否则需要进行强制类型转换。
比如将byte转换为short、int或long无需显示转换,比如
byte b = 3; int x = b; double y = x;强制类型转换
当两种数据类型不相容时,两种数据类型之间转换需要显示声明
例如
int num = 4; byte b = num; // 报错
强制类型转换语法格式如下
目标类型 变量名=(目标类型)值;
例如上文的
byte b = (byte) num;
但是这样会存在一些问题,比如298我们知道在计算机内的存储方式是
00000000-00000000-00000001-00101010
但是你要转换成byte就会变成
00101010
第17位的1被截断了,造成了数值的误差。
常量 整型常量在进行数值计算时,byte+short+char会自动提升为Int进行计算
二进制:以0b或0B开头:0b01101100
八进制:以0开头:0342
十进制:由数字0~9组成:198
十六进制:0x或0X开头,其后由0~9和A ~ F 组成 0x7F
表达方式:
2e3f 3.6d 0f 5.022e+23f
e前是整数部分,e后是指数部分
'a' '1' 'r'
字符串常量"HelloWorld!"
布尔常量true false
null常量null
运算符基本与C++相同
算数运算符+ - * / % ++ --
加减乘除取自增自减
= += -= *= /= %=
比较运算符== != < > <= >=
逻辑运算符& | ^ ! && ||
- & | 是不带优化的与或运算,不论左边是ture或者false都会继续运算,直到得出全部结果
- && ||是带优化的与或运算,当&&左边为false时,直接得出结果false
二进制数的位与,位或,位异或使用& | ^
位运算| 运算符 | 含义 |
|---|---|
| & | 与 |
| ! | 或 |
| ~ | 非 |
| ^ | 异或 |
| << | 左移 |
| >> | 右移 |
| >>> | 无符号右移 |
(布尔表达式)?真入口:假入口;



