想成为 Java 高级工程师,有哪些要求呢?
1.Core Java,就是 java 基础、JDK 的类库,很多童鞋都会说,JDK 我懂,但是懂还不足够,知其然还要知其所以然,JDK 的源代码写的非常好,要经常查看,对使用频繁的类,比如 String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就 OK 了
2. 多线程并发编程,现在并发几乎是写服务端程序必须的技术,那对 Java 中的多线程就要有足够的熟悉,包括对象锁机制、synchronized 关键字,concurrent 包都要非常熟悉,这部分推荐你看看《Java 并发编程实践》这本书,讲解的很详细
3.I/O,Socket 编程,首先要熟悉 Java 中 Socket 编程,以及 I/O 包,再深入下去就是 Java NIO, 再深入下去是操作系统底层的 Socket 实现, 了解 Windows 和 Linux 中是怎么实现 socket 的,如果你想学习 Java 可以来这个群,首先是五三二,中间是二五九,最后是九五二,里面有大量的学习资料可以下载。
4.JVM 的一些知识,不需要熟悉,但是需要了解,这是 Java 的本质,可以说是 Java 的母体, 了解之后眼界会更宽阔,比如 Java 内存模型(会对理解 Java 锁、多线程有帮助)、字节码、JVM 的模型、各种垃圾收集器以及选择、JVM 的执行参数(优化 JVM)等等, 这些知识在《深入 Java 虚拟机》这本书中都有详尽的解释, 或者去 oracle 网站上查看具体版本的 JVM 规范.
5. 一些常用的设计模式,比如单例、模板方法、代理、适配器等等,以及在 Core Java 和一些 Java 框架里的具体场景的实现,这个可能需要慢慢积累,先了解有哪些使用场景,见得多了,自己就自然而然会去用。
6. 常用数据库(Oracle、MySQL 等)、SQL 语句以及一般的优化
7.Javaweb 开发的框架,比如 Spring、iBatis 等框架,同样他们的原理才是最重要的,至少要知道他们的大致原理。
8. 其他一些有名的用的比较多的开源框架和包,Netty 网络框架,Apache common 的 N 多包,Google 的 Guava 等等,也可以经常去 Github 上找一些代码看看。
如果你想学习 Java 工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty 源码分析和大数据等知识点可以来找我。
而现在我就有一个平台可以提供给你们学习,让你在实践中积累经验掌握原理。主要方向是 JAVA 架构师。如果你想拿高薪,想突破瓶颈,想跟别人竞争能取得优势的,想进 BAT 但是有担心面试不过的,可以加我的 Java 架构进阶群:582100479
1、具有 1-5 工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。
2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。
3、如果没有工作经验,但基础非常扎实,对 java 工作机制,常用设计思想,常用 java 开发框架掌握熟练的,可以加。
4、觉得自己很牛 B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。
5. 阿里 Java 高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知
来源: http://geek.csdn.net/news/detail/248571