21.mysql数据库的数据类型numberic和double是不同的。
numberic只能表达最长65位精度的定点数
而double可以描述的是允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308
虽然numberic的小数位数可以更长些,但是表达的值的范围远不及double。
就这些区别。
不能光考虑精度,同时要考虑值域范围。
另外一个是定点,一个是浮点,运算时间效率也是不一样的。
参考网友的答案。
22.代码中是否有必要使用代码块。
method a(){
{
}
}
有的时候,一段代码使用到了多个变量,提取成单独的方法比较麻烦,但是代码太长的情况下,可读性变差了。
看到Boos部分地方使用了代码块,代码可读性提高。
让人纠结的是,一直以来不用代码块,个人倾向于在不同代码块的头部,加上一行注释,简要描述一段代码的核心逻辑。
23.密码的安全性问题。
表单输入的密码加密,安全控件,https,传输过程使用对称加密,
程序内部增加校验密码的接口,让“程序员也不知道实际的密码”。
处于简单考虑,前期没有怎么处理。
24.资金、利息等Double比较时,经常会出现误差。
我个人的一种想法时,资金保留到分的下一位“粒”,在四舍五入,或者只舍不入的情况下,也更精确。
Double相减,不与0直接比较,而是相减取绝对值,与目标误差,比如0.001比较。
25.VIM设置行号。
修改/etc/vimrc,增加一行配置 "set nu"。
这样,每次打开文件就显示了行号。
但是,又发现一个问题,有了行号,选择直接复制的,带了行号,粘贴之后,还需要手动删除行号,尼玛。
26.最近p2p跑路平台太多,政府部门和第三方支付的担忧比较大。
支付宝和财付通已经停止对不知名的p2p平台,提供第三方支付服务了。
某好友正在帮人开发p2p系统,第三方支付这一块卡住了,只能找一家提供服务的第三方支付公司了。
要不然,帮客户开发的系统卖不出去,钞票无法到账。
听说国富宝还是可以接入的,这样还好,可能是国富宝这种量级的,客户不太多,还没有到挑选客户的地步吧。
不知道,这是个好事,还是坏事呢。
27.SpringMVC表单验证。
网上说Spring自己也有一套验证组件,spring-modules-validation.jar;没有用过。
公司项目中,用的是Hibernate的Validator。我个人对Hibernate的印象是,比较大,很笨重。
我还是更倾向于Jodd的vtor验证组件。
http://jodd.org/doc/vtor/index.html
jar包非常小,还需要实践看看。
28.Mybatis配置文件。
ChargeLogSummaryDao.xml
<mapper namespace="com.p2p.user.dal.dao.ChargeLogDao">
为了偷懒,直接copy然后修改的,结果只修改了部分内容,namespace没有修改。
导致项目启动的时候,总是提示ChargeLogDao.add已经存在。
找了半天,才定位到问题原因,通过搜索“ChargeLog”。
29.Nginx配置文件测试是否正确。
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx -s reload,重新加载的过程中可能会发生语法错误,先检查下,比较靠谱~
30.Cache有2套实现。
Cache定义缓存接口,底层可以是Redis和Memcache,这是底层技术方面的选择。
但是,需要注意的是,同样是Redis实现,业务方面也可以不同。
比如登录和Session相关业务与缓冲普通对象数据,需求是不一样的。
用户登录的数据,更加关键。
根据Boss的经验,数据量过大的情况下,最旧的缓存数据可能会被覆盖。
对于普通的业务数据,完全是可以接受的。
但是,对于Session数据,则不行,会导致已登录用户突然掉线。