Java学习指南

学习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》
  • 《操作系统》
  • 《计算机网络》

参考文章

阿里巴巴、美团等各大互联网公司的 Java 类校招对本科生的要求是什么

坚持原创技术分享,您的支持将鼓励我继续创作!