数据类型扩展
-
整数:Java可以转化不同进制的代码
-
浮点数:
- float类型是 =>有限的,离散的,舍入误差,记录大约数
- 因此不要用浮点型进行大小比较
- 用BigDecimal类(数学工具)
-
字符串
- (int)标识符 => 可以强制换定义
- 所有字符本质还是数字
- Java执行Unicode编码,(a=97,A=65),从U0000 <-> UFFFF(例子:U0061 = a)
- 有许多的转义字符: \t \n 等
-
布尔型
- 同C++,但是要注意精简!(if(flag) 比 if(flag==true) 好)
- 同C++,但是要注意精简!(if(flag) 比 if(flag==true) 好)
类型转换
- 由于java是强类型语言,要使用类型转化:指运算中,不同类型要转化成相同类型再运算
- 优先级从高到低(double-float-long-int-char,short,byte)
- 类型转换模式
- 强制类型转换: 从高优先级到低优先级类型需要运用强制转换,公式:(类型名)变量名
- 自动类型转换: 从低优先级到高优先级实现自动转换,不需要手动进行
- 在直接运算中都可以使用“强制转换”
- 好例子
- 溢出例子(描述在图中)
- 特别注意:如果long和int进行计算,结果会默认为高优先级的long类型(向高容量看齐)。所以在计算式有小技巧,可以先将一个数“强制转换”,这样结果就是想得到的高优先级,常用来处理溢出问题(如上图)
- 强制类型转换: 从高优先级到低优先级类型需要运用强制转换,公式:(类型名)变量名
变量
-
可以变化的量
-
变量必须声明类型
-
Java变量是程序中最基本的存储单元。其中要素包括:变量名,类型和作用域
-
非常重视可读性
-
变量作用域
-
局部变量:生命周期在声明的方法(function)中,必须声明和初始化值(没有自动初始化)
-
实例变量:从属于对象,在类下声明,方法中调用的格式:类名 变量名 = new 类名()。不赋值则自动初始化:数字类型默认:0,字符串:none,bool型:false。
-
类变量:在类下声明,声明时加上static,之后能在类中通行。(切记加上static,否则沦为局部变量)
-
常量
- 特殊的变量类型,初始化后无法改变
- 常量名一般用全大写字符表示
- 用修饰符final定义,格式:final 常量名 = 值,因为final为修饰符,其位置可任意放置(例子:final double PI = 3.14;)
- 命名规范
- 见名知意!
- 类成员变量: 首字母小写 + 驼峰原则(第二个单词开始首字母大写) (例子:monthSalary)
- 局部变量:与上同
- 方法名:与上同
- 类名:首字母大写 + 驼峰原则
- 常量:全大写 + 下划线(例子:MAX_MIN)
运算符
- 一元运算符
- 二元运算符
- 三元运算符: x ? y : z, x是条件,y和z是结果(类似if语句),更为简洁,需要掌握
- Math类(工具类),如执行幂运算
- 逻辑运算符
- 短路运算
- 短路运算
- 补充运算符: += 和 -=
- 字符串运算符
IDEA已知快捷键
1. ctrl + D 复制当前行
2. ctrl + alt + L 格式化代码(运算符间加空格)
3. psvm => public static void main(String[] args){}
4. sout => System.out.print();
5. alt + enter 可以自动查错并且排查