“丢失了一个钉子,坏了一只蹄铁;坏了一只蹄铁,折了一匹战马;折了一匹战马,伤了一位骑士;伤了一位骑士,输了一场战斗;输了一场战斗,亡了一个帝国。”这是西方流传的民谣,传智播客石家庄校区教研部冀老师对这此颇有感慨。“失之毫厘,差之千里”,是冀老师对这首民谣的概括。
不积跬步无以至千里,不积小流无以成江海。想要成就一番大事业,就要从点滴小事做起,把控好过程中的每一个细节。这是冀老师对自己的要求,也是他在传智播客做教学工作的行为标准。
冀老师认为,IT项目产品的研发实施,更是需要注意细节。因为每个细节的把控程度直接关乎项目运行结果的准确度。对细节的疏忽,可能会导致系统瘫痪,影响用户体验。纵使产品已经过千锤百炼,每个交易代码的编写仍不能大意疏忽。冀老师分享一些在工作中体现细节重要性的具体的案例代码。
案例一:找零时刻
有一个很简单的应用场景:商店中一只碳素笔标价1.10元,用一张2元人民币购买,应该找多少零钱?
下面是一个试图解决上述问题的程序,它会打印出什么呢?
public static void main(String args[]) {
System.out.println(2.00 - 1.10);
}
很多人可能天真地认为会打印出0.90,但如果你运行此程序就会发现它最终的执行结果是:0.8999999999999999。
在货币计算中,如果我们向客户展示这样的数据,一定会贻笑大方,而且很难做出合理的解释。如果截断两位数字显示,便直接丢掉一分钱,这就是典型的细节考虑不到位。
问题的解决方案请参考Java中BigDicamal类的用法。
案例二:内存溢出
列举一个简单的业务场景:求一天有多少毫秒及多少微秒?
程序如下:
public static void main(String args[]) {
final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
System.out.println(MILLIS_PER_DAY);
final long MICORS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
System.out.println(MICORS_PER_DAY);
}
分析业务场景,求每天的微秒数,业务公式为(24小时/每天*60分钟/小时*60秒/分钟*1000毫秒/秒*1000微秒/毫秒),每天毫秒数只是少了最后一个因子1000,执行上述程序会发现求得微秒数时计算结果比正确结果小了200倍,而毫秒数的计算结果是正确的。
这是为什么?我们可以看到表达式右侧的所有因子均为int型数据,根据Java语言的特性,两个int型数据相乘结果为int类型,而求得微秒数的计算结果显然已经超出int类型数据的最大边界,导致内存溢出。
解决方案请参考Java变量及数据类型、Java自动类型转换、Java常用表达式。
案例三:URL的愚弄
再举一个程序案例,其虽不会导致运行结果的错误,但是一定会令人一头雾水,不知其所以然。
看下面的代码:
public static void main(String args[]) {
System.out.println("kayak");
System.out.println("hello");
}
这是一个存在争议的问题,如果正常地输出“kayak hello”,有人可能认为程序无法通过编译,并煞费苦心地进行调试,甚至还有人准备重启电脑。其实程序中URL的前半部分是Java中的一个语句标号(参考Java中的goto语句),后面是行尾注释,因此程序中没有任何非法语句,是可以正常运行的。
冀老师在传智播客的教学过程中尤其重视细节,他把每一个细节都讲的清晰透彻,让学员真正理解运用。
冀老师并不是单纯地讲解Java的三个知识点,而是通过这些例子说明细节的疏忽会导致运算结果的南辕北辙。冀老师告诫初学者,不要好高骛远、一味地追求软件架构或者最时髦的技术,而是要时刻牢记最基础的才是最核心的,成绩与荣誉都是一点一滴累积起来的。
把握好工作中的每个细节,是传智播客每一位讲师的教学责任,他们严格要求自己,也严格要求学员。酝酿奋斗过程中的细节之美,灵活运用细节带来的财富,从而使自己即使置身瓦砾之中,也能闪烁出钻石般的光芒!
热门推荐
-
罗素学院携手英国权威戏剧考试机构LAMDA入局中国青少年素质教育市场
2021-11-25 -
广州大学城菁英直聘行动持续进行,助力学生6小时拿到Offer
2021-11-25 -
光辉城市联手上海交通大学设计研究总院 共同布局“数字孪生、元宇宙”
2021-11-24 -
英国罗素学院与上海交大高净值研究院共同成立英国教育及投资委员会
2021-11-19
热门专题
每日资讯更多+
-
“元宇宙”为何爆火?游戏ETF带来怎样的投资机遇?
2021-12-27 -
ar和vr的区别就是和用途 AR、VR是真火还是虚火?是复活还是重生?
2021-12-27 -
2021年VR/AR产业链日趋成熟,行业爆发在即
2021-12-27 -
未来5-10倍的VR/AR概念5大龙头公司
2021-12-27 -
VR全景漫游系统功能有哪些?自考院校/专业介绍
2021-12-23 -
又一家科技巨头加入直播大潮之中扎克伯格高度关注直播
2021-12-23
VR设备 更多+
-
V社自家VR设备获IGN 8.5分
2019-07-01 -
ARM显示芯片的设计可以为VR一体机带来更好的体验
2019-05-16 -
来自Bellevue的Valve Index原型VR硬件照片曝光
2019-05-16 -
Acer推出ConceptD OJO 4K Windows MR头显
2019-04-12
VR网站 更多+
-
鸥课学院
2017-09-12 -
玖的VR
2017-08-10 -
ARinChina技术论坛
2017-07-15 -
虚幻引擎社区
2017-07-15