回首过去,刚开始步入这个行业的Java程序员是迷茫的,处在金字塔的最底端,拿着少之又少的薪水,不间断的加班,但是在短短3年间,从7k工资到现在的25k,凭现有的项目经验和工作经历也可以算得上是一个业内颇具资历的成功人士了。在我看来我取得成功不仅仅是我对Java的独到掌握。
在这里我就比方说一个最熟悉的数据结构吧,又或者,再简单一点,说一下LinkedList和ArrayList的区别。相信很多面试者都遇到过这道看上去很蠢的题,答案在网上是各种各样的,他们说的基本都没有错,但是,按这些答案来回答,不会给出很高的评价。
这样提问:为什么LinkedList查询会比ArrayList慢?又或者,如果java没有提供LinkedList,你要如何实现出来呢?
这里考验的能力有两个,两者有其一,都可以打出高分的。
1、对于需求的理解能力
2、阅读源码的兴趣和能力
链表的定义是“表由一系列结点(链表中每一个元素称为结点)组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域”。
把这一段话当成需求,那么,名词有:表、结点、数据域、指针域。
同时又能得出它们的包含关系,表里有多个结点,结点里有数据域和指针域两个部分。
完成了这一部分分析,自然就能设计出对应的LinkedList类。查询为什么会慢一些呢?查询对应的是get方法,get(i)自然是要从头结点的指针域迭代i次,取出对应结点数据域,这个迭代过程导致了慢。
无论是通过自行分析还是阅读过源码懂得这个道理的,都说明是具备一定能力或潜力的。
我们该如何正确学习JAVA呢?
1、要培养程序思维,生活中处处皆对象,学会用程序员的思维去思考周围的世界。
2、要学会总结,每天在能知道自己学到了什么,并提供的自己语言表达和概括能力。
3、每天花时间去复习和预习,提高自己学习效率。
4、学会做计划,安排好自己的时间,这样才能在这五个月java基础学习的时间里高效率的学习,快速入门。
5、关注IT和互联网行业,了解最新动态和技术。
6、拓展巩固子自己 的能力,并培养高效学习的能力
我总结了这几年的工作和项目经验,也是为了帮助大家在取得成功的道路上少走弯路,我做了一个Java程序员的工作历程图供大家参考和学习
其实如果你要想取得成功,你必须比别人更加努力,要培养自己的理解和思考能力,这样说着可能大家不是特别能理解,为了让学习变得轻松、高效,我对上面图里的技术我也特意整理了一番,找朋友特地录制了一些视频给大家免费分享,这套免费视频课程详细讲解了Spring,MyBatis,Netty源码分析,高分布式架构等这些成为架构师的必备的内容!很多问题答案其实很简单,但是背后的逻辑思维可不是我们想象那样容易,要做到知其然还要知其所以然。
现在私信我“资料”即可获取Java工程化、高性能及分布式、高性能、高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限及领取相关资料,助你早日升职加薪!