潍坊Java培训
达内潍坊中心

15265420612

热门课程

java 工作一年了,流行的框架都会了,前台不算精通也算熟练了。 遇到瓶颈,如何突破?

  • 时间:2017-10-17
  • 发布:潍坊Java培训班
  • 来源:互联网

    我记得我大学毕业简历上写的是精通java,工作5年后写的是熟悉java,现在10年+后写的是了解java.如果你现在才工作一年…

    作为过来人我经历过感觉什么都懂,不知道何去何从的阶段。现在想想其实根本是似懂非懂。后面恶补基础,多简单的例子都亲自测试,思考实现原理,查看对应的jdk代码,半年后感觉到质的变化,才觉得java真有意思!

    了解得越多,发现自己不懂的越多,这句话绝对是真理!

    大胆讲一句,现在你工作一年,很大可能连wait,notify怎么样用都不懂?不服?用wait,notify写一个blockqueue试试?

    补充一些有用的信息,说一下我是怎么样学习的,就说一点数据结构的:

    一开始我们就学习list和map.先说list,最基本有Arraylist和LinkedList,就以他们两为例分析,看他们的父类和实现的接口。ArrayList继承AbstractList,LinkedList继承AbstractSequentialList,AbstractSequentialList继承AbstractList,查看代码AbstractSequentialList没有新增方法,那么Arraylist和LinkedList都继承AbstractList,可以把他们当成有相同的特性。

    接下来查看AbstractList,他实现了List接口,没有新增方法,那么重点查看List的方法即可。每一个方法都要看一遍API说明,用一遍测试一遍。add,remove这些没有什么好看的,重点留意你不熟悉的方法。
潍坊Java培训班
    接下来看他们实现的接口,潍坊Java培训班:相同的Cloneable, Serializable看一下有哪些方法即可,重点看不同的,Arraylist实现了RandomAccess(其实里面啥方法也没有,应该说是只是一个标志),LinkedList实现了Deque.在看每一个接口的说明,RandomAccess说明可以用get方法访问,性能很快,你如果是一个LinkedList用get你就会发现慢的吓人;Deque说明实现了双向队列,在查看Dueue的各个方法了解他所有的特性。

    接下来看构造函数的参数,可以看出ArrayList有个int类型的initialCapacity参数,LinkedList没有,思考一下为什么。接下来你会发现有数组的数据结构的构造函数都有一个容量的参数(如HashMap),你会发现他的用处,再深究下去会发现ArrayList会存在扩容这个概念…

    到了这步你应该有自己的总结:

    a.ArrayList是用数组实现的,需要初始化容量,容量不够的时候会扩容,扩容会把数组copy一遍比较耗费性能,大数据量的时应该尽量避免。

    b.ArrayList可以用get方法随机访问,性能还能很快,LinkedList用get方法会比较慢,大数据量应该避免。

    c.LinkedList实现了双向队列,可以非常方便的在头尾增加和删除数据。

    d.一边遍历一边修改的时候需要使用listIterator,不要傻傻的搞2个List.

    到了这步算是入门了,我才敢说自己入门了。

更多潍坊Java培训班相关资讯,请扫描下方二维码

潍坊Java培训班

上一篇:Java程序员的出路在哪里
下一篇:继续学Java,该怎么走好路

java中重载与重写的区别

我们小白该如何学习java呢

JFrame框架与GUI体验

精选8道Java技术面试题附加答案

选择城市和中心
贵州省

广西省

海南省