ICP备案+网站制作+网站托管一年只需3000元

网站建设、行业建站案例

论算法在Java应用网站开发中的重要意义

小编在采访程序员的过程中,被一个偶然的问题吸引了起来,而且这个问题被好几位程序员哥哥谈及:哥面试又挂在了算法上!Java方向的Web开发为何也如此深考算法题呢?

Java前辈这样说

在开发中,Java大量的库屏蔽了很多基础算法和数据结构,只需调用API即可,或者写的应用确实比较简单,这都会让人觉得在Web开发中用不到算法,可淘宝也是个Java 写的Web应用,怎么可能只基于成熟的框架写点请求响应和数据访问的样本就行的呢?我们从以下最简单的几个方面来聊聊深懂算法的必要性:

学习能力

普通公司面试算法不是因为工作需要,而是为了筛掉脑袋不灵光,学习能力差的人,比如最烂大街的冒泡排序,即使你忘了n年前学得东西,也应该能根据“冒泡”“排序”的字面意思现场写出一段思路正确的程序来。如果写不出来,真的有理由怀疑脑袋不太灵光。

执行效率

如果想招一个普通程序员加入团队来做开发,面试官可能会简单考察算法。对算法没有概念,或对复杂度都不敏感的工程师,一个o(n)问题可以写出o(n^3)解法的程序,对代码性能的影响是很大的,基础数据结构和算法的概念、操作、复杂度、解决问题的场景,是需要了解的,否则这样的程序员实在没有安全感呀。

更多可能

有个真实案例,有个需求是用户每天上传10W条数据,然后跟数据库里面200W条数据做对比,上传这一部分没什么好说的,鉴于server上不能装excel所以只能用openxml读excel,然后sqlbulkinsert到数据库,但是在做数据对比的时候就需要有基本的算法思想啦,一般的思维就是循环两个表,嵌套循环的时间复杂度是N*M,考虑到这个数据量这么做对比,估计用户能等死,这个时候就考虑用哈希表,重写相关方法(GetHashCode,Equles) 然后直接取两个的交集,补集,基本上也就是一眨眼功夫就搞完了,时间复杂度为线性(通过重写GetHashCode可以确保哈希值不会重复),这只是个很小的项目,熟练掌握基本数据结构和基本算法,就是为了跳出只有if else,for, while这些东西,给程序更多的可能!

优化性能

算法是程序员唯一的直接为公司创造价值的工具,设想,如果改进了算法,让以前无法实用的算法能够进入实际应用,或者在低端硬件上实现了同高端硬件一样的运行速度,哪怕是节约了大量的服务器,这也都是能够直接为公司带来价值的!

说到这儿,小编似乎已经懂了些算法的必要性,原来,算法在Web开发或者应用层面依旧可以用到各个角落,给我们带来很多细节上的好处,刚写Java不久的孩儿们,大牛们劝说要扎扎实实练基础,稳稳当当攒经验,不放弃一点一滴的原理和机制,不失去一次一次的好奇,你就一定能变成一个优秀资深的Java大牛,Java我最强,Bug都投降,希望今夜无Bug,小编要去看二分法啦,白~

发稿网(QQ:599515669)是全国领先的在线新闻稿发布平台,团队由资深互联网专家组成,服务内容类涵盖软文发布、软文发布、微信营销、微博营销、视频置顶、百度问答等多种互联网广告行业。发稿网平台有上千媒介编辑、专业写手、段子手、营销专家,为企业、公共机构和个人提供定制化的解决方案,将创意、智慧、技能转化为商业价值和社会价值。发稿网平台凭借多年的网络资源和客户资源积累,发展遥遥领先同行业其他软文平台

相关推荐

评论 抢沙发