学习Java差不多1年多了,期间走过很多弯路,下面总结下学习Java方法。王国维以诗喻治学,曾言”古今之成大事业、大学问者,必经过三种境界“。
- 第一镜,“昨夜西风凋碧树,独上高楼,望尽天涯路”
- 第二镜,“衣带渐宽终不悔,为伊消得人憔悴”
- 第三镜,“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”
昨夜西风凋碧树,独上高楼,望尽天涯路
《Java核心技术》卷一卷二和一些基础的入门书籍,学习Java的语法和面向对象的思想。主要包括以下几个方面,当然多线程编程和并发编程可以放到第三阶段重点学习,当前只需要先了解了解
- Java集合
- JavaIO/JavaNIO
- 多线程编程 推荐书籍《Java多线程编程核心技术》
- Java并发 推荐博客
- 网络编程
- 反射
- JDBC
学习完基本这些基础知识之后,就可以试着去做LeetCode,牛客网上的OJ题,牛客网上的选择题,填空题,各大公司在校招笔试的时候都会考到,这个可以先不做,这个阶段的目的是提高编程能力,熟悉Java数据结构和算法。推荐的书籍包括《剑指offer》和《程序员代码面试指南:IT名企算法与数据结构题目最优解》。可以从以下几个方面对这些数据结构和算法进行学习
- 数组
- 字符串
- 链表
- 队列
- 堆栈
- 二叉树
- 图
- hash表
- 排序算法
- 递归算法和动态规划
- 分治算法
- 回溯剪纸算法
- 贪心算法
- BFS查找、DFS查找、二分查找
熟练了这些之后,第一轮面试也就可以轻松面对了
衣带渐宽终不悔,为伊消得人憔悴
学习JavaWeb知识包括,推荐书籍看李刚的《轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发》
- Servlet/JSP
- 前端知识:css,js,html等,还需要了解常见的前端框架
- 后端知识:Spring框架、Mybatis框架,hibernate框架,
- 数据库知识:学习MySQL数据库基本知识,包括索引,联表查找,事务,隔离级别等
这个阶段的目的熟悉JavaWeb开发是怎么回事,自己动手搭建前端和后端框架,尝试着理解JavaWeb分层模型,动手实践做几个小项目。
- 多线程编程推荐书籍《Java多线程编程核心技术》
- Java并发推荐博客,推荐书籍《Java并发编程实战》
- Mysql数据库相关的书籍,由于本人对于mysql学习较晚,导致面试的时候吃了很多亏,MySQL非常重要,不仅仅是简单的一些正删改查。
Java并发可以分为
- JUC原子类
- JUC锁包括ReentrantReadWriteLock、Condition、countdownlatch、CyclicBarrier、Semaphore
- JUC集合如CopyOnWriteArrayLis、ConcurrentHashMap、ArrayBlockingkQueue、LinkedBlockingQueue
- JUC线程池
众里寻他千百度,蓦然回首,那人却在灯火阑珊处
有了上面JavaWeb基础知识之后,就需要深入理解Java这门语言了,这是面试时候展现你水平和决定你能不能录用,拿高薪的最重要阶段。最后有实际的项目支撑你这些知识。
- 《深入理解JVM虚拟机》
- 《深入分析java web 技术内幕》
- 《Netty权威指南》
- 《图解TCP/IP》
- 《操作系统》
- 《计算机网络》