• 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上建立一个库,上传自己开发的程序。


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

     

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

    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    爱的火花
    为你祝福
    你有成功的强烈愿望吗?人格魅力应该是这样修养而成的
    爱已远走
    我要跳舞
    创业家比商业模式更重要
    月下独酌
    李珊(再帮别人名字作诗)
    分析MSSQL数据库的用户表数和记录数 (转载)
    几个常用的SharePoint对象模型的有用函数
  • 原文地址:https://www.cnblogs.com/jijm123/p/14590677.html
Copyright © 2020-2023  润新知