Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群25
Java1234官方群25:838462530
     

GIT视频教程(结合github,码云)免费领取

BAT一线大厂笔试面试打包下载

领取国内优秀就业,加薪,跳槽项目课程源码-vue2+jwt+springboot+mybaits前后端分离通讯录系统课程

SpringBoot打造企业级进销存

Java1234 VIP课程

领取微信扫码登录Java实现视频教程

Java1234至尊VIP(特价活动)

编程随想:Java新手的通病 PDF 下载


分享到:
时间:2020-06-26 23:55来源:http://www.java1234.com 作者:小锋  侵权举报
编程随想:Java新手的通病 PDF 下载
失效链接处理
编程随想:Java新手的通病 PDF 下载

下载地址:

提取码:onyi

相关截图:



主要内容:

其实很早以前就想写这样一个文章,可惜当时我没有 Blog,所以到现在才写下来。最近几年,随着 Java 在 Web 应用和企业应用两个方面的普及,对 Java 程序员的需求量大增。因此 Java 程序员的数 量也突然猛增(从 TIOBE 的排行榜可以看出来)。这虽然对 Java 社区来说是好事,但也暴露出一些 问题。一方面由于大量的开发人员进入 Java 这个领域,相应的教学、培训跟不上;另一方面,很多 进入 Java 领域的开发人员都比较浮躁,寄希望于"速成",没有耐心练好基本功。 根据最近几年我面试 Java 程序员的经历以及对周围使用 Java 的同事的观察,我总结了一些共通的问 题以及相应的解决方法。如果你是一个 Java 新手(刚学会 Java 不久,工作1‐2年),你可以看看我 说的通病是不是你也有,如果有的话,得赶紧补救一下了! 对算法和数据结构不熟悉 为什么我先拿“数据结构和算法”说事捏?这玩意是写程序最最基本的东东。不管你使用 Java 还是其 它的什么语言,都离不开它。而且这玩意是跨语言的,学好之后不管在哪门语言中都能用得上。 既然“数据结构和算法”这么重要,为什么很多 Java 新手却很不熟悉捏?我琢磨了一下,估计有两种 可能。有些人虽然是计算机系毕业的,但是当初压根没好好学过这门课程,到工作时早都还给老师 了;还有一些人是中途转行干编程,转行后又没有好好地打基础(都指望速成)。 下面我列出几个很基本的问题,如果你每一个问题都搞得很清楚,那说明你过了这关,可以去看看 下一个帖子了。否则的话,你赶紧去找本算法和数据结构的书恶补一下吧。 什么时候该用数组型容器、什么时候该用链表型容器? 什么是散列函数?HashMap 的实现原理是什么? 什么是递归?如果你以前从来没写过递归函数,尝试着写一个(比如用递归函数进行目录树遍 历)。 什么是算法复杂度? 你是否理解空间换时间的思想? 写一个针对整数数组的冒泡排序函数,看看你要修改几次才能跑通。 写一个针对整数数组的二分查找函数,看看你要修改几次才能跑通。 后面接着说第 2 个通病:缺乏面向对象的基本功。 缺乏面向对象的基本功
按理说 Java 是一个很 OO 的语言,Java 社区也一向是充满了“对象”的氛围。但我在面试 Java 程序员 时,却屡屡碰到让我大跌眼镜的事情。我碰到不止一个求职者,连什么是“多态”都讲不清楚。很多人 号称用过设计模式,但一半以上都仅限于单键模式和抽象工厂模式。当我深入问他/她抽象工厂模式 到底有什么好处时,很多人语焉不详。 为什么很多 Java 程序员会缺乏面向对象基本功?这得怪那些 Java 框架。现在 Java 的各种框架太发 达、太傻瓜化了,导致很多程序员只需要按部就班、照着框架进行代码填空,基本已经丧失了 OOA 和 OOD 的能力。我手下有些个 Java 程序员,对 Spring、Hibernate 等框架了如指掌;但如果给他 一个简单需求,让他写一个脱离 Web 框架的独立 Application,他就不知所措了。这样的开发人员, 将来只能成为所谓的“软件蓝领”,岗位很难得到提升。 同上一个帖子一样,我这次也提如下几个问题: 基于接口的继承和基于实现的继承各有什么优点、缺点? 继承(包括 extend 和 implement)有什么缺点? 多态(polymorphism)有什么缺点? 为什么Java可以多继承 interface,而不可以多继承 class? 假如让你写一个小游戏(比如人机对战的五子棋),你会如何设计类结构? 类结构设计时,如何考虑可扩展性? 如果上述这些问题你都能够搞得比较清楚,说明你的 OO 基础还过得去。否则的话,我建议你一边 找些 OOAD 和设计模式的书看看,同时自己动手写些简单的小程序(不依赖那些框架),把学到的 模式理论结合到实践中。通过这种方式来提高自己 OOAD 的能力,效果会比较好。 后面来聊一下第 3 个通病:缺少良好的编程习惯。 缺少良好的编程习惯
 

------分隔线----------------------------
锋哥公众号


锋哥微信号


关注公众号
回复 666
获取 java
从菜鸡到大神
全套视频教程