转载:程序员刚写完代码 , 就被开除了
原文链接 点这里
最近在网上看到的两段“写完代码就被公司开除”的代码,说是网上写完这段代码,就被老板开除了。
1.第一段代码
这位程序员写完这段代码,觉得自己被开除是因为没有写注释,看到这里不禁笑出了声。。。
兄嘚(dei),肯定不是这个原因,获取下一天的时间,你使用了Thread.sleep()睡眠了1天以后,然后再去获取当前的时间,通过这种方式,如果上线以后,那么但凡涉及到获取下一天的时间的操作,用户一点击,你让用户等一天再去看显示结果吗???哈哈~,老板不开除你才是奇怪呢!
那么正确的获取下一天的姿势应该是什么样的呢?我这里给一个示例。
1import java.util.Date;
2public class Main {
3 private static Date getNextDay(Date date) {
4 long addTime = 1;//这个代表几天
5 addTime *= 1; //1天
6 addTime *= 24; //一天24小时
7 addTime *= 60; //1小时60分钟
8 addTime *= 60; //1分钟60秒
9 addTime *= 1000; //1秒1000毫秒
10 Date nextDate = new Date(date.getTime() + addTime);
11 return nextDate;
12 }
13 public static void main(String[] args) {
14 Date now = new Date();
15 System.out.println("Now: " + now);
16 System.out.println("NextDay: " + getNextDay(now));
17 }
18}
这个代码利用Date来获取下一天,只是一个库函数的简单使用,我们来看看运行结果,一点击运行,不到0.000xxx1s的时间,就出来了下一天的日期,根本不用等待一天,效率是不是提高了?
1Now: Fri Nov 02 22:19:43 CST 2018
2NextDay: Sat Nov 03 22:19:43 CST 2018
2.第二段代码
这位兄弟是老板让写一个排序,他是怎么实现的呢?
通过看代码,可以看出来这位兄弟的思路是数组中每有一个数,就去用new Thread()去开一个线程,线程里面呢,就是用Thread.sleep()去睡眠这个数的的大小时间。举例比如说11,他就开一个线程去睡眠11s,然后去输入11;对于998,他就开一个线程去睡眠998秒,然后去输出998。
由于线程互相之间没有影响,所以数小的线程由于睡眠时间短,肯定会最先输出,数大的线程由于睡眠时间长,肯定会最后输出,最后就把这些数字排好序了。
额,看到这里。。。
如果数组中的数据非常大,那么排序所用的时间也会非常大;而且如果数组中的数有很多,会开很多线程,消耗的资源也很多,总之这种做法是万万不可取的。
排序那么多算法,哪一个不比这个强~
END
推荐阅读
等等,先别走![程序员乔戈里]公众号又有活动了!参与活动,不仅可以培养自己良好的习惯,还能拿到现金红包与书籍奖励,动作要快,姿势要帅!
今日问题:
你写过哪些可能会被老板开除的代码?
留言格式:
打卡xx天,答:xxx
下一篇: 转载:程序员的发展方向
推荐阅读