JAVA学习之路

首先你确定你要进入Java开发?决定学习Java是要下很大决心的,因为Java技术的世界是个无底洞,永远也学不完,不废话了,我就简单的说一下自己的看法(偏重Java方面,什么html、css、js之类的会点就行):
1.Java Core,就是Java基础、jdk的类库,很多童鞋都会说,jdk我懂,但是懂还不足够,知其然还要知其所以然,jdk的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就OK了

2.多线程并发编程,现在并发几乎是写服务端程序必须的技术,那对Java中的多线程就要有足够的熟悉,包括对象锁机制、synchronized关键字,concurrent包都要非常熟悉,这部分推荐你看看《Java并发编程实践》这本书,讲解的很详细

3.I/O,Socket编程,首先要熟悉java中socket编程,以及I/O包,再深入下去就是Java NIO,再深入下去是操作系统底层的socket实现,了解windows和linux中是怎么实现socket的

4.JVM的一些知识,不需要熟悉,但是需要了解,这是Java的本质,可以说是Java的母体, 眼界会更宽阔,比如Java内存模型(会对理解Java锁、多线程有帮助)、字节码、JVM的模型、各种垃圾收集器以及选择、JVM的执行参数(优化JVM)等等,这些只是在<深入Java虚拟机>这本书中都有详尽的解释,或者去oracle网站上查看具体版本的JVM规范.

5.一些常用的设计模式,比如单例、模板方法、代理、适配器等等

6.常用数据库(Oracle、Mysql等)、SQL语句

7.JavaWeb开发的框架,比如ibatis、spring、struts等框架,同样他们的原理才是最重要的,一定搞清楚

8.其他一些开源框架和包,netty网络框架,apache common的N多包等等

暂时想到的就这么多吧,1-4条是Java基础,全部的这些知识没有一定的时间积累是很难搞懂的,但是了解了之后会对Java有个彻底的了解,5和6是需要学习的额外技术,7-8是都是基于1-4条的,正所谓万变不离其宗,前4条就是Java的灵魂所在,希望能对你有所帮助

1,大局观。不能拘泥于某些业务逻辑,陷入一些修bug 的工作中。用一种更远的眼光去看待网站,业务发展,如何构建这个网站能做到高可用,承受高并发访问,同时具有高可扩展性呢?

2,注重细节。现代的硬件发展得比较快,价格也随之下降,掩盖了很多问题。一些有技术含量的点,被一些不是太昂贵的硬件解决了,可能也就不再深入研究了。架构师的作用,就是用技术的方式,廉价的硬件,去取胜。当然,在当前发展如此迅猛的互联网,一开始,肯定是花钱解决问题的。当花钱也解决不了问题的时候,架构师就要出场了。前提是,要有钱去度过那个时期。如何体现出架构师的不同,细节是关键。小至一个TCP 包,也是架构师关心的内容。有没有想过,实现自己的私有协议,修改MTU ,减少TCP split 来优化网络呢?

3,通晓软硬件。当人们面对传统硬盘的IO 问题发愁是,SSD 似乎改变了人们的思考方向,貌似改变了一些想法。但SSD 还没让大众完全接受,FusionIO 的横空出世再次改变了人们的想法。怎么让当前的网站完成使用上当前的硬件的资源呢?怎么让新的硬件技术应用在新的网站应用上呢?

4,理解技术原理。一个人的精力总是有限的,不可能说既有大局观,又能把很多时间投入到编程中,还通晓各类语言。语言只是工具,可能所有语言都能用来解决一种问题,区别在于,哪个语言解决得更快,更优雅,更高性能。架构师必须理解原理性的东西,首先是用原理去解决问题,然后具体实施方案。但是,要有这种积累,也是需要沉淀很长时间的。

5,对待新技术的态度。平时肯定要不断地学习各种经验和国外的新技术,同时要有自己对待的思考,不是所有的成功案例都适合自己,不是所有的成功案例都是正确的。看到新技术,不能故步自封,在保证不影响当前业务的情况下,大胆尝试,在别人的基础上,尝试下自己的创新。

原文地址:https://www.cnblogs.com/iceTing/p/2988062.html