java推荐学习计划(一)


基础相关


       语言是学习成本比较低的,java作为一种高级语言,其相关语法相对简单,各种类库、框架封装的都相对好,而且相关生态也比较好(百度、google可以快速检索,github也有很多相当优秀的资源)。java类库的使用与C++的STL有很多类似的地方(STL的类库是基于C的template的规则衍生出来的,而java的类库就基础实现来说我理解也是template,通过将基础功能模版化封装好,这其中涉及到范型等语法)。而Java类较C++而言,C++的虚函数被java中的接口取代;较C而言,C中的结构体也就是java中的类;所以将java与大家最常使用和学习的C/C++做类比,会发现java的语法有很多其他语言的影子,尤其C/C++。

      上面建绍了我对java的理解,现对其基础语法学习推荐一本书:《Java编程思想》,java编程神书,适合打基础使用,但是相对较贵,可以搜索电子书进行阅读。java基础语法学习外,要懂的主要几个点:八个基础类型与其对应的类的装包和拆包(主要是对应类的底层数据结构,重点);collection类、map类(collection类要会画它的类图,map类要懂hashmap的底层数据结构,curruenthashmap的底层数据结构,java1.8之前和之后的不同等等),并且要理解哪几种是线程安全的类(举例:curruenthashmap、vector、hashtable);最基础的类object的三个方法的具体实现,add、hashcode、equal。

高级进阶:


        已经有了相对较好的java基础后,需要学习一些java使用较高级的东西,大体有两方面,一个是并发,一个是JVM(java虚拟机),分别推荐两本书吧: 《Java并发编程的艺术》、《深入理解Java虚拟机》,前者较好的讲解了java中并发编程的实现,内容通俗易懂,主要理解volitile和sychornizer,涉及到底层封装,主要是通过CAS和AQS实现的,而原子类、JUL下的工具类等实现也是上述两种方法实现的,而并发最重要的技术体现就是线程池技术(此处是重点,源码)和锁(主要理解对象的头部 mark hard部分,在此基础上学习下重入锁、读写锁,而悲观锁、乐观锁、轻量锁、重量锁等概括要通过相应的关键字来理解);后者较深,不建议入门学习,只要对JVM底层结构有一定了解,对内存模型有概念,对GC的实现理解其算法和流程就好。

       java是面向对象编程,面向对象编程的一个特点就是有很多设计模式,比如单例模式(懒汉和饿汉)、工厂模式、策略模式、迭代器模式、服务端和客户端模式等等,这些设计模式可以看一些书学理解一下精髓,推荐《设计模式解析》,设计模式只要先懂精髓就好,这个跟jvm比较相识,在实际工作中理解效果更好,)世界上本没有路走的人多了也就成了路(,一个道理的。 

框架相关:


        经典的SSM(spring、spring MVC、mybatis),要对其使用、结构、源码实现有一定理解,其中spring的IOC和AOP,spring MVC和服务器/bean层的关系及实现,mybatis的源码实现(mybatis源码流程相对简单,便于学习java代码)。现在用的最多的是spring boot,便于快速构建,但是缺点是缺少对具体实现的感知,需要有SSM或SSH的组合理解(不推荐SSH呀,太老了)。

        Netty框架是一种网络通信框架,基于Netty可以实现客户端和服务端的消息通信,基于Netty可以学习一下NIO的具体实现(AIO,BIO最好懂一下原理)。

常用技术栈:


        数据库技术懂mysql就好,会用最基本的select、delete、update、query(order by,group by)就好,最好会用index(索引,公司用的比较多的内容,基于红黑树),自己可以试着建表,多线程访问增删改查,看看效果。数据库的四大特性及引入的三大问题,及解决问题的四大隔离事务都要懂。

       web相关技术,需要懂一下http、https协议,对request和response相关字段要理解,可以通过postman在网上找一些例子进行学习。而且要懂socket编程,不管是java还是其他语言,socket编程都是最基本的服务端和客户端的通信方式。

       linux的常用命令一定要会用(自己多用用就好了),并且最好试着跑一下服务端程序,试试效果。git也要会用,可以在github上建立一个库,上传自己开发的程序。


目前想到这些了,后续会有补充!


烟白酒旗青,水村鱼市晴~~~~~~

        

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,780评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,424评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,397评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,576评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,997评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,945评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,107评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,850评论 0 208
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,625评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,804评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,285评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,613评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,291评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,164评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,963评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,096评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,886评论 2 278

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,110评论 18 139
  • 在web项目中,我们在配置hibernate之后,测试时会偶尔出现异常,比如说: org.hibernate.Hi...
    一W句代码阅读 1,013评论 2 1
  • 10年之后我会是什么样?一直有一种方法,叫作想象十年之后的情况,然后倒推现在接下来每一年,甚至每一个月的情况,那就...
    探索者John阅读 163评论 0 0
  • 一直都不太喜欢闺蜜这个词,觉得挺矫情婊里婊气的。人世间的大多数关系都是暂时性的,闺蜜无非于这一段时间里咱俩玩得好,...
    大眼才瞪小眼才阅读 305评论 0 0