您的位置 首页 java

超级硬核!Java 自学路线总结,已 Get 大厂 Offer,建议立马收藏

还是要说一句,“大厂”可能有标题党的嫌疑,但我觉得已经属于比较轻微的那种了,头条的小伙伴们应该能接受。有一说一,能进来看的小伙伴都算是赚到了,认认真真看完这篇内容后,我敢保证,一定会大有所获!trust me!

对于校招来说,面试官也清楚,应聘者的项目经验不可能太多的,所以各位学弟学妹们心里一定要拎得清,该把重心放在哪!大家一定要明白,语言只是工具,对代码的理解才是核心。面试的时候,不管是大厂还是小厂,考察的核心永远都是基础知识,以及解题的思路。

至于社招,重点当然是做了什么项目,遇到了什么问题,自己是怎么解决的,尤其是高并发高性能这块,是加分项。

下面来分享下我这些年学习 Java 的心得经验吧,希望能给大家一点点帮助。

我列一下 java 基础部分要掌握的知识点。

书籍的话,我推荐不管是出于兴趣还是出去java的热门高薪资,想要入门java是很辛苦的,零基础的更辛苦,想要零基础自学入门更更辛苦,所以选择了就请坚持。只要你学习能力和自制能力强,坚持就是胜利。下面整理一些java的书籍给大家分享。

1,《Head First Java》java入门书籍

《Head First Java》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习 程序语言 的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会学会如何像个面向对象开发者一样去思考。但如果你真的想要好好地学习Java,你会需要《Head First Java》。这本书可是 Amazon 编辑推荐的十大好书之一!强烈推荐学习此书,非常适合初学者入门。

2《Java从入门到精通》适合自学者

  《Java从入门到精通》这本书主要针对java基础,对于没有学过java的人来说,是一个不错的选择。通过这本书,大家可以从零开始,慢慢来学习,而且实操很多,不会让你看到最后出现只会理论的情况。为什么说培训的人不用看呢?因为这本书上的内容和许多培训机构的书籍有很多重复的地方,所以参加培训的同学就可以不看了。如果觉得自学太难太慢的话,那就报培训机构吧,推荐知海匠库互联网学院www.zhihaijiangku.com,网易系出身,真实项目操作会让你更快上手。

3.《Thinking in java》(中文名:《Java编程思想》)适合中级自学者和培训者

  《Java编程思想》可以说是最经典的java著作,是所有java程序员必备教科书。这本书不管是正在学习还是已经工作许多年的程序员,都可以从这本书中得到你想要的东西。这本书具有教材和工具书的作用,就像一本字典,想知道什么都可以从中查询。虽然这本书很好,但并不建议初学者学习,对于初学者难度较大。

4.《疯狂Java讲义》适合自学者看

  《疯狂的讲义》这本书比较适合自学者,内容比较项目化,实操方法很多,如果你想进行java的深入学习,不妨看看这本书。

5.《Java核心技术》最适合报培训班的看

  这本书分为两个部分,第一个部分讲的是基础知识,第二个部分讲的是高级特性。由于内容非常有层次,所以非常适合自学和上培训机构的同学学习。尤其对参加培训的同学作用较大,因为一般培训机构讲得非常快,有很多东西没办法及时消化吸收,很多基础和核心的东西就会掌握的不牢固,那么这本书正好弥补了这个缺失。

6.《 Java开发实战经典 》适合自学者看

  这本书比较适合自学者学习,里面有很多小案例,可以边学边练,巩固知识。

可以直接上手学习 Spring Boot,但我还是建议大家先看一看老三样,Spring+SpringMVC+MyBatis, SSM 学得好,对 Spring Boot 有着巨大的帮助,毕竟 Spring Boot 不是新的技术,它只是对这些东西做了约定俗称,让开发的效率提高了,本质上的东西还是老三样。

其中 Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。它可以装载 Bean(也就是 Java 中的类,包括 Service、Dao 里面的),有了控制反转这个机制,我们就不用在每次使用类的时候先初始化,用 new 关键字声明。另外,Spring 的 AOP、事务管理等等都是我们经常用到的。

SpringMVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.客户端发送请求到 DispacherServlet(分发器)

2.由 DispacherServlet 控制器查询 HanderMapping,找到处理请求的 Controller

3.Controller 调用业务逻辑处理后,返回 ModelAndView

4.DispacherSerclet 查询视图解析器,找到 ModelAndView 指定的视图

5.视图负责将结果显示到客户端

6. MyBatis 是一个支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。

在学习 SSM 和 Spring Boot 之前,确认一下上图中的基础知识有没有掌握,如果都掌握了,再开始学习会比较轻松一点。

Spring Boot 是由 Pivotal 团队提供的一个全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。说句人话就是,Spring Boot 不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。

使用 Spring Boot有什么好处其实就是简单、快速、方便!在没有 Spring Boot 之前,我们要搭建一个 Web 项目,通常要这么做:

1)配置 web.xml,加载 Spring 和 SpringMVC

2)配置数据库链接、配置 Spring 事务

3)配置日志文件

4)部署 Tomcat 运行 Web 项目

有了 Spring Boot 之后呢,再也不用折腾这些了,仅仅只需要非常少的几个配置就可以快速地搭建一套 Web 项目!

使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。

03、Java 进阶

1.《重构:改善既有代码的设计》 适合对象:中级、高级

介绍:清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以及改善。大师的杰作,让你明白软件是一步步改进的,不是一蹴而就的。

2.《 XML入门经典 》 适合对象:初级、中级、高级

介绍:很多人觉得没必要买XML书籍,不过我还是觉得推荐一本给你作为工具书,而且看本书可以使得你对XML方方面面有个了解。里面不少东西还是用到的。

3.《jQuery基础教程》 适合对象:初级、中级、高级

介绍:从这个开始学习 jQuery 才是根本,不然以后遇到的很多奇怪问题不知所以然。jQuery个人感觉已经成为目前的javascript标准库了,插件无数,大大简化了前端工作。

4.《 JavaScript权威指南 》 适合对象:初级、中级、高级

介绍:一本从全新视角和层次来介绍JavaScript的参考书,填补了市场的空白。是学习js的必备参考工具书之一。

5.《代码整洁之道》 适合对象:中级、高级

介绍:讲述了一系列行之有效的整洁代码操作实践。 软件工程 的理想编码是无数人编出来的代码像一个人写的,这本书当作规范就不错。

04、 Java Web 进阶

这时候,要学的,可就不只是 Java 的相关知识了,要跳出这个圈子。

第一,要学 Linux,基本上所有的服务器都是 Linux 环境,尤其是正式环境,不存在图形化界面操作的,所以每个立志要做工程师的学弟学妹,一定要把 Linux 重视起来,要知道什么是 Shell ,什么是 Vim ,Linux 的基础命令等等。

等阿里云或者腾讯云、华为云搞活动的时候,可以买个学生版的服务器,随便折腾下。推荐的书,就是《鸟哥的 Linux 私房菜》,算是一本畅销书了。

第二,要学操作系统,最好把《 深入理解计算机系统 》这本书给看一看,这本书看起来有难度,可以多看几遍,第一遍,大致过掉里面的知识点,第二遍精读,第三遍再温习。

学生时代的时间还是足够的,所以一定不要把所有的时间都花费到打游戏上面。

第三,要学数据库,推荐《SQL 必知必会》和《MySQL 必知必会》,两本很小的册子,很快就能刷完了。然后再学一下 Redis ,这也是面试考试的重点,以及 MongoDB

第四,要学计算机网络,也是面试要经常考的内容,比如说经典问题:

TCP 为什么三次握手?四次挥手?

TCP 为什么要有 TIME_WAIT 状态?

TCP 为什么是可靠传输协议,而 UDP 不是?

键入网址到网页显示,期间发生了什么?

HTTPS 握手过程是怎样的?

入门书有《图解 HTTP》、《图解 TCP/IP》、《网络是怎样链接的》,再深入的话推荐《计算机网络:自顶向下》。

第五,要学数据结构与算法,这块我也强调过多次了,基本上面试的重点吧,无论什么时候,程序=数据结构+算法这种说法都是成立的。Java 中的线性数据结构有数组、链表、栈、队列,非线性数据结构有树、哈希表、图等等。常见的排序算法有:选择排序、冒泡排序、插入排序、快速排序、归并排序、希尔排序、基数排序、计数排序、桶排序、堆排序等等。常见的查找算法有:顺序查找、二分查找、插值查找、斐波那契查找、树表查找等等。常见的算法有: KMP 算法、贪心算法、回溯算法、动态规划、递归算法等等。

给大家推荐一份纯 Java 的 LeetCode 刷题笔记吧。刷完 100 道题之后,发现真的是爱上了刷题。基本上后面的每道题都可以想出一种思路,甚至就是最优解,还会萌生一些别人没想到过的解法——基本上只要算法学得好,大厂小厂的 offer 基本上就 70% 地把握了!

刷完 300 道 LeetCode 题后,我膨胀到要飘起来了

05、加分项

多少学一点前端知识吧,并不是非要做全栈开发工程师,可以在做练手项目的时候能顺手一点,毕竟练手的时候和公司上班不一样,后端只干后端的活,一个人还是要能搞定一个练手项目的, JavaWeb 又离不开前端,基本的 JavaScript、CSS 和 HTML,还是尽量掌握一些。

使用各种工具,比如说 Intellij IDEA ,能提高编写代码的效率,比如说 Git ,能提高“局域网协作开发”的效率,比如说抓包工具,用来测试,比如说反编译工具,用来深入查看Java 字节码 ,等等。

对一些新技术有敏感度,比如说服务器治理框架 Dubbo,比如说网络编程 netty,比如说消息通信 rabbitmq,比如说服务器 Nginx,比如说虚拟机化 docker 等等,这些知识都有掌握。

希望大家都能找到一份称心如意的 offer!据说点赞的运气都不差。

点赞、关注,或者热心地留个言 ,鼓励一下好不好?

推荐阅读:

文章来源:智云一二三科技

文章标题:超级硬核!Java 自学路线总结,已 Get 大厂 Offer,建议立马收藏

文章地址:https://www.zhihuclub.com/184571.shtml

关于作者: 智云科技

热门文章

网站地图