java避坑指南
以整形进行存储
以RMB为例,99.99元要以9999存储 即存储的时候99.99*100,展示的时候9999/100
浮点数转换
java中0.1是以double类型存储的所以是一个32位的循环数
将float类型强制转换成double类型不会导致精度缺失,但是会在后面补0
此强转后的0.1显然小于 java中的0.1 false
对5.2进行转换
1.首先吧整数部分进行转化5–>101
规格化的规则等同于中学知识
指数使用移码,将数字向左移动一位 统一公式为 x移=x+(2^(n-1)-1) 2是 2+(2^(8-1)-1)=129
偏移量减少到127是为了能多表示一位
d<m
浮点数比较
用double类型构建bigdecimal相当于52
日期数据类型
传统日期api的问题
jdk8 优势
时期格式需哟注意的问题
使用毫秒的时候需要注意的事情
控制语句避坑的规范
Swich
default 相当于finally,else
default 写在中间就控制不住了
字符串作为判断的条件,必须进行空指针的判断
控制语句规约
不符合返回,不要写else,深度超过三层一定有问题
有可能拆箱操作
取反会降低可读性
至少不会超卖很多
秒杀巨牛的一句话
订单超时不是用锁实现的,秒杀成功释放资源使用定时器,将未支付的订单进行一个反响操作 : +1操作
update加锁,带主键锁一行,条件不成立则更新不成功
需要参数校验
不需要参数校验
oop
提高软件的可维护性,可充用性
面向对象的四大特征
作用:让编译器帮助检查是否覆盖了方法
优先匹配,相似度最高的
-128~127 可用直接用=
其他的用equals比较值 ,== 比较的是地址
1.使用包装数据类型,可用为null,否则有默认值也不要设置人数据的默认值
构造方法不要加逻辑 初始值要私有一个init方法,构造中调用