Java开发成长之路第三年

  • 介绍

参加到工作的第三个年头,您业务已经感觉Java的大多数东西都已经见过了,认为已经是“高级开发工程师”了,应该拿到很丰厚的薪水。但是,如果您平时不太注重基础知识的巩固的话,在应聘过程中也许会碰到钉子。

就我本人在面试这个阶段的人时,非常地关注对方的基础水平是否扎实,有没有看源码的经历、习惯和方法,另外就是对所使用过的框架有没有做过深入的了解。

  • 深入Java集合

java.util.Queue<E>

java.util.Deque<E> 该接口是Queue的子接口。

java.util.RandomAccess该接口没有定义任何方法。

java.util.concurrent.ConcurrentMap<String, Object[]>提供了原子操作的Map。

更多Java集合中的线程安全问题,请查看《Java集合中的线程安全问题》。

  • Java线程池

通过Thread类确实是可以启动一个新的线程,可要注意的是,线程的启动和停止是相对比较耗CPU资源的,如果在新的线程中执行的任务(task)时间都比较短的话,使用过多的线程反而不会提高执行的效率。这里的瓶颈是线程上下文的切换,由此引出了我现在要说的主题——线程池。

除了Java中有线程池的概念外,其他有多线程功能的语言也都有这样的概念。线程池的出现就是为了能使得线程能够复用。在JDK中提供了线程池的实现,是在包java.util.concurrent下;另外其他的一些框架也提供了相应的实现,例如:Spring线程池。

  • 深入反射

您应该能够做到熟练地使用反射来获取一个类的所有方法、属性,这里的方法和属性都有私有(private)的雷区需要注意。而方法包括静态和非静态方法,这两种方法的调用方式不太一样;以及,方法的参数如何传递。

  • 代理

您要明白Java开发中,为什么需要用到代理,代理模式能解决什么问题。

  • Apache2配置

本章有一篇《Apache2配置https》您可以搜索一下。

  • Tomcat集群

本章有一篇《Tomcat集群》您可以搜索一下。

  • Spring

在Spring中提供了一个线程池的实现《Spring线程池》。

  • Maven

通过阅读《Maven插件介绍》您可以了解到常用的一些Maven插件。您要是在在Eclipse中使用Maven的m2e插件的话,必然会遇到很多问题,这里总结了一些问题以及解决方案《在eclipse中使用Maven插件的常见问题》。

另外,要知道Maven是分为本地库、远程库的,我们要对Maven的本地库的目录结构很熟悉才行。我以下面的一个Maven依赖为例做介绍:

上面的Maven依赖中的jar文件将会在Maven本地库中缓存一份,存储的位置规则是:groupId中的点(.)为分割的目录名称+artifactId名称+版本名称。所以,最后的目录应该是org/suren/autotest/autotest.web.framework/0.0.1-SNAPSHOT。

  • 本系列文章

Java开发成长之路第一年

Java开发成长之路第二年

Java开发成长之路第三年

Java开发成长之路第四年

Java开发成长之路第五年

Java开发成长之路第六年

Java开发成长之路第七年

发表评论

电子邮件地址不会被公开。 必填项已用*标注