如何快速学习 Java?

论坛 期权论坛 股票     
期权匿名问答   2023-2-13 13:43   3881   5
由于专业原因,励志成为一名程序员。但身边的同学几乎没有从事java的,所以想问问java大佬们。如何快速学习java。
听说java有三条学习线,一是java,二是java web,三是数据库方向。
我有:C、C++、java、数据结构、计算机网络、操作系统基本基础
html、div+css、js基础(能写学校主页等类似基础网页)
数据库、SQL(熟悉基本操作)
本人学习效率虽高,但是学得很杂,希望大佬们指点。
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
期权匿名回答  16级独孤 | 2023-2-13 13:43:34 发帖IP地址来自 北京
下面简单介绍一下后端,后端有多种语言选择,以Java后端为例。
1、Java学习路线

零基础学习Java,如果以快速就业为目标导向的话,可以采取下面这套路线:
javase、javaweb、MySQL、spring、springmvc、mybatis、ssm图书管理系统(俗称增删改查)、SpringBoot,springboot图书管理系统(俗称增删改查),学习到这里基本就可以出去找工作了,如果自学得当的话,半年的时间应该刚刚合适,因为大部分培训机构就是半年的培训时间,太长太短都不合适,太长了,容易产生学习疲劳,太短了,课程安排太紧,又有一种囫囵吞枣的感觉,合理安排、制定有效的学习计划,才是自学java的首要任务,分享一下我地java思维导图。


2、Java进阶

学到这里,那么恭喜你,你可能已经找到工作了,那就可以进行Java的第二阶段学习了。
微服务SpringCloud、数据结构与算法、设计模式、JVM虚拟机、性能与调优、Linux、网络、各种中间件技术、系统的架构设计等等。
下面简单介绍一下我个人的学习方式:
前期视频为主,按照思维导图,先把知识点过一遍,达到利用百度,可以实现数据的增删改查,高效的完成“复制粘贴”动作,记住一句,知识是学不完的,知识是记不住的,前期能干活就好,代码能跑通,功能能实现就好。
3、下面给大家推荐几个不错的视频


  • 【尚学堂】Java300集零基础适合初学者视频教程
  • 颜群JavaWeb视频教程
  • 雷神尚硅谷Spring5框架教程
  • 尚硅谷SSM实战演练
  • 雷丰阳2021版SpringBoot2零基础入门
  • 韩顺平数据结构与算法
  • 2021韩顺平 一周学会Linux
B站好的视频实在是太多太多,小编在这里就推荐这七个吧,好比七仙女一般,美若天仙。
仙女下,董双成,汉殿夜凉吹玉笙。
4、Java推荐书籍

其实通过视频这种学习方式只能学到皮毛,只能带你入门,而不是精通,想要精通、更高效的学习,看官方文档、看书才是王道,下面推荐几本靠谱的书籍。
哪吒心中的Java四大名著:
(1)Java核心技术,目前已经出第12版了,很牛逼的书,Java小白入门必看书籍
(2)Java编程思想,目前已经出了第五版,On Java8,可以到京东自行购买,最经典的Java书籍,推荐理由,不解释。
(3)Effective Java
《Effective Java》第三版一共包含了 90 条极具实用价值的经验规则,每条规则都值得 Java 程序员在实战中去参照。这本书不需要按部就班地从头到尾读,可以随意挑选任意小节进行阅读,因为每条规则相对都是独立的,尽管它们之间会交叉引用,但并不妨碍我们随心所欲地阅读。
(4)深入理解 Java 虚拟机
Java虚拟机方面的神作,国内Java程序必看的书籍,不要说你不知道。人间有种说法,“不要读国内程序员写的技术书籍,很烂”。但是,《深入理解 Java 虚拟机》是一个例外,国内书籍NO.1
如果你觉得你经历有限,如果你觉得你不想成为架构师,短期攻克高级工程师,这以上四本书吃透,就够了。
下面再推荐几本哪吒觉得很优质的书籍。
(5)重构 改善既有代码的设计
关于重构,选择这本,就对啦。
重构,一个老生常谈的话题,让我们的代码更加优雅,方便阅读。
(6)算法4
业界俗称红宝书,看算法就选它,不解释!(算法导论太晦涩了,算法图解之流又不够经典)
(7)编写高质量代码:改善Java程序的151个建议
这本书不是很火,是我无意间看到的,很适合工作一年左右的初级程序员阅读,有点类似于《Effective Java》。
(8)Java并发编程实战
多线程必看书籍!
深入浅出地介绍了 Java 线程和并发编程,是一本还算不错的 Java 并发编程参考手册。本书从并发和线程安全性的基本概念出发,介绍了如何使用类库来提供基本的并发方案,包括如何利用线程来提高并发应用程序的吞吐量、如何识别可并发执行的任务、如何提高单线程子系统的响应性、如何确保并发程序执行预期的任务,如何提高并发代码的性能和可伸缩性等等内容。
(9)Head First设计模式
这本书的编写方式采用引导式教学,以大量的生活化故事当背景,以图片做背景,阅读起来生动有趣。书中模式告白节目,将设计模式拟人化成节目来宾,畅谈其内在的一切。
其实这本书我觉得不太好,我是没看进去,关于设计模式,我觉得市面上还没有太经典的书籍,大家如果有可以在评论中推荐一下。
(10)Java性能权威指南
市面上专注于 Java 性能的书不多,《Java性能权威指南》算是一本很不错的。通过阅读本书,我们可以运用 4 个基本原则最大程度地提升性能测试的效果、使用 JDK 自带的工具收集程序的性能数据、理解 JIT(即时编译器)编译器的优缺点、调优 JVM 垃圾收集器、最大程度优化多线程等等。
(11)软技能 代码之外的生存指南
一本每个技术人都应该读的非技术类图书。
标准的技术人员写作风格,读完之后能自动脑补出一副思维导图。全书没有一行代码,却全部是讲述技术人员应该掌握的知识。除了程序员之外,所有和IT、技术沾边儿的人,都应该好好读一下这本书。
很多程序员醉心于开发,但是写代码并不是你人生的全部,你还有生活,即使为了更好的搞开发,也应该学学如何找到更好的开发岗位。
5、温馨提示,书是用来读的,不是垫桌角的

书买来一定要好好读,不要让它去接灰儿,更有甚者用来垫桌脚。不要一次性直接买太多,压力太大,就没动力了,还有就是万一出新版了,旧版还没开封,这就很尴尬了。
我就是这个样子,最后在内心的挣扎下,强迫症的迫使下,又买了两本新版的(Effective Java,深入理解Java虚拟机)。
附上我的书架,《Java编程思想》读了两遍,《深入理解Java虚拟机》读了一遍,《Head First设计模式》读了一遍,《Java并发编程实战》读了一遍,《重构》读了一遍,《Spring实战》没看进去,《Effective Java》读了一遍,《软技能 代码之外的生存指南》读了一遍,《深入理解Java虚拟机第三版》,《微服务实战》《算法4》,《亿级流量Java高并发与网络编程实战》,《JavaScript高级程序设计》,《HTTP权威指南》,《Java性能优化实践》还没开封。努力吧,少年,翻滚吧,皮卡丘。

3#
期权匿名回答  16级独孤 | 2023-2-13 13:44:08 发帖IP地址来自 中国
快速学Java有三大要点。
1 就着找工作学,这样一方面不会被各种所谓的学习路线带歪,另一方面能较快就业。这部分的实践要点是,在学到一定程度后,就立即去看招聘需求,甚至多去参加面试。
2 先掌握面,再细化点。所谓面就是java要找到工作所需的spring boot,数据库开发和java核心技能。先尽快让自己的技能串起来能跑通一个spring boot做增删改查的程序,再去细化每个方面所包含的技能。
3 通过运行代码学。即任何技术点,先搭建好环境,再跑通相关代码,通过代码运行的结果来学习技能。
在讲具体学习路线学习方法前,为了避免初学者少走弯路,这里就先讲讲我见到的不少初学者走过的弯路,这样大家就可以引以为戒了。
1 比如看到java程序员薪资高,就直接头脑一热,找些资料就开始学了。学的时候由于不知道该学到什么程度才能找到工作,所以就盯着一个点学,比如盯着JavaSE核心部分学。
这样学了2,3个月,看似也会了一大堆语法,也能跑通不少程序,但工作所用的spring boot甚至连边都没摸到,这样这2,3个月就白学了。
2 学习过程中,轻信了一些学习路线,要么学得很浅,比如像上文所说,只学JavaSE,或者在没工作经验的前提下去大学特学spring cloud等复杂技能。
事实上如果是学java为了入行找工作,可以先去了解下Java找工作必须的技能,比如spring boot做增删改查的技能,比这个浅的自然要学,而比这个深的,由于无法帮助找工作,所以等有工作经验后再学。
3 单注意学,忽视找工作。这里需要说明,学java和找工作是两回事,找工作时需要通过简历证明自己的项目经验,通过面试证明自己的能力,所以单学好技术,不注意面试找工作的技能,还真有可能找不到工作。
由于大多数人学java是为了找工作,这里先细化下大多数公司对java开发的最低技术要求点。
1 熟悉各种开发工具的用法。
2 熟悉Java核心技术点,包括面向对象,集合,异常处理,多线程和IO等技能,哪怕具体语法不知道,遇到需求能很快通过查资料或问人解决。
3 熟悉Spring boot(或其他web框架,比如ssm等)框架开发业务的做法,最低标准是,开发时能参考现有的代码改写。比如现有订单查询模块,能据此开发一个员工查询的模块。
4 至于redis,dubbo等分布式组件,这些属于加分项,会了更好,但如果不会,仅仅会spring Boot增删改查,也能找到工作。
然后再说下,零基础的Java小白该如何高效地把相关技能学习到能工作的地步?
1 搭建环境,包括jdk,IDEA集成开发环境,mysql数据库,因为MySQL数据库好搭,所以不建议初学者搭oracle,然后搭个数据库客户端工具,比如navicat。
2 找个视频,或买本书,入门java核心的语法。这里建议大家还是买本书,毕竟书是经过出版社检验,里面知识点成系统,而且代码也能跑通,入门Java的书可以选这个。
请注意,入门Java语法的时间一般是三个星期到一个月,需要边运行代码边了解技能。了解技能时,不要过多关注语法,需要先知道什么类能做什么事情即可。
同时,学java语法时,不建议在开始阶段学设计模式,面向界面编程(比如swing和awt),也建议学socket编程,因为实际开发用不到。在学java语法时,面向对象,集合,异常处理和jdbc是关键,io和多线程可以了解概念即可。
3 数据库方面,可以不用买专门的书入门,数据库方面,需要知道如何通过java里的jdbc连接数据库和通过jdbc做数据库的增删改查操作即可。入门数据库时,也可以用上文提到的疯狂Java讲义。
4 这部分是重点,全面了解Spring boot+JPA做增删改查的技能,java小白入职后干的就是这个。
这方面可以用我出的书来学,我这本书里,不仅包含了Spring boot框架的常用组件,比如junit,swagger等,还包含了spring boot整合分布式组件的用法,这些技能对初学者来说,一定是找工作时的加分项。
<a data-draft-node="block" data-draft-type="mcn-link-card" data-mcn-id="1532996255369719809">5 一般可以用1到2个月时间学好Spring boot,然后可以运行若干个项目来把学到的技能串起来。我的书里,包含了一个全栈库存管理系统和秒杀系统,此外大家还可以运行其他的案例来综合巩固学到的技能。
其实学到这个程度,零基础的java小白就可以去找工作了。可以有些同学会心虚,因为网上有不少文章,说Java要学到能工作的地步,还得学其他技能。但是我还是这个观点,学好spring boot+jpa做增删改查的地步,就可以去找工作了。这里先来解释下理由。
1 网上很多面试题,是针对有工作经验的,或者虽然是针对零基础,但面试要求是针对大厂的,而上文的面试要求,是小公司针对零基础Java开发的。
2 Java零基础的小白,固然可以继续学更多更广的技能,或者说再多运行通些项目,再去找工作。但本文提到的,掌握到spring boot+jpa做增删改查的地步,再出去面试,更可以通过面试来调整自己的学习路径。
3 很多技能,比如logback或分布式组件等,其实只有在项目里才能学得好,如果自己,非常有可能学到的技能不是项目中所要的,这样还不如直接学到最低标准,然后通过面试进公司后再学,这样能以更高的效率学习相关技术。
总之,按上述步骤学到最低标准后,真就学好java了,同时就可以准备简历和准备面试了。这里再多说下,零基础的java小白如何准备简历呢?
1 在简历中尽可能多地写点项目,这些项目可以是你在毕业设计或实习阶段做的,如果实在没有,就把你学习阶段运行通过的项目写进去。
2 在简历中,全方位地列出你掌握的技能,比如spring boot,jpa等。
总之得通过简历,让面试官看到你有足够长的项目实践的年限,熟悉spring boot+JPA以及他们公司所要求的技术,这样至少你就有面试机会了。
投简历的时候,千万注意,先投小公司,或外派公司。然后按如下的步骤准备面试。
1 背题,背java面试题,数据库面试题,Spring boot面试题等等,凡是网上有的,你都去了解下。背题的时候还要准备笔试,比如算法或排序等。
2 结合你的项目,说明Spring boot做增删改查的流程,比如用哪些注解,怎么和数据库关联等。
在面试过程中,java零基础的小白只需要证明有做项目的能力,再啰嗦下,掌握spring boot+JPA做增删改查的能力,如果对方是个外包公司,或是小公司,达到这个程度足以能帮你应聘成功。
当然在做的时候,需要不断地根据面试问题来调整,比如某场面试,你被问了数据库的事务隔离级别,你没答上来,那么回家后,你就要把事务相关概念,比如传播机制,事务的语法和注解等再复习下。这样经过若干场面试,你完全可以找到工作。
上述步骤一般需要多久?搭建环境+熟悉Java核心的语法,满打满算1个月,掌握Spring boot+JPA,一个半月到两个月,准备简历和面试,估计半个月到一个月。以上还是一般情况,我平时会辅导零基础的java小白,一些比较上心的同学,只要用2个月的时间就能学好技术,到了第3个月,基本上可以收到offer了。
大家看上述学习步骤可能未必会感到有困难,但在实际操作过程中困难会一大堆。
1 在搭建环境和调试代码时,一定会遇到很多问题,在一个人自己学习的场景里,是没人帮忙解决,而自己又未必解决得了,只要遇到一个问题就可能阻碍住学习。
2 每个技能方向,比如数据库,或spring boot,该学到什么程度?如果稍微不注意就会学些用不到的技能,从而会用几周甚至几个月学习不必要的技能,从而导致学习周期拉长。
3 在找工作时,简历上如何写项目,这很难把握,如果把项目写成学习项目,直接没面试机会,而且面试官在不给面试机会的同时不会告知原因。
4 面试时如何展示项目和技能以及亮点?或者说,在面试碰壁后如何继续提升,这不是每个求职者都能知道的。
所以如果大家要靠自学入行java,给大家的建议如下。
1 先自学java核心技能,如果能在两周内能学好,这说明后继学数据库和spring boot问题不大,否则要么止损不转java,如果要转,还真建议通过培训班转。
2 找工作时优先在简历上列出商业项目经验,面试时优先准备项目说辞,这样虽然无法确保在开始的时候一定能面试成,但好歹能在面试过程中不断提升。相关内容大家可以看我如下的文章。
hsmcomputer:如何为Java面试准备项目经验8 赞同 · 0 评论文章如果大家要进一步了解Java学习和Java找工作中写简历和面试等方面的技巧,可以向我发起咨询。
1 用资料帮大家巩固spring boot,甚至是spring boot整合分布式组件和微服务的技能,同时提供Java面试方面的资料。这些资料在市面上有明码标价,这些资料的钱就超过咨询的费用了。但本人不负责技术提升,人家培训班收费上万的事情本人做不了。
2 提供简历辅导服务,经本人辅导后的简历,基本上都能大大提升竞争力,从而得到面试机会。
3 以电话交流的方式提供面试辅导服务,包括但不限于教如何介绍商业项目经验,如何在面试中证明spring boot能力,如何在项目中证明调优看日志和分布式组件等方面的亮点。尤其地,在辅导过程中本人还会教授“引导方法”,告诉大家如何在准备的基础上,引导面试官问出你的亮点和技能。
4 甚至还能提供就业辅导和薪资方面的咨询。如果条件合适,还有外企能公司的内推机会。
4#
期权匿名回答  16级独孤 | 2023-2-13 13:44:56 发帖IP地址来自 北京
随着Java应用的普及,市场对Java的人才需求量与日俱增,自学Java的人员也越来越多。但学习Java不是一朝一夕就能完成的,尤其是小白学Java,期间可能会遇见很多困难
很多自学的小伙伴刚开始可能会一时无从下手,不知道该学些什么,就从网上找了一大堆视频看。当然并不是说这些视频不好,只是这些视频很可能不系统,顺序混乱,反而给你的学习增加难度。
因为Java技术体系知识太多了,我们在学习过程中要有取舍,打好功底是非常重要的,这样学起来才能事半功倍。
今天,我推荐自学Java的小伙伴们看这份最新的Java学习路线,并推荐一些高质量的Java视频,让你学习Java不迷茫!!!
回答有点长,建议点赞收藏着慢慢看!
一、新手自学Java路线图



以上内容为必备知识点,各位同学可参考学习,知识点持续增加更新,点赞收藏获得一手内容,我在此先谢为敬!
二、Java学习视频(从入门到实践)

基础入门
超详细 Maven 快速入门到精通进阶编程
JVM 源码分析及调优实战JavaWeb 教程小白零基础入门到项目实战高级编程
SpringCloud 开发教程ZooKeeper 应用与原理分析项目实践
《锋迷商城》电商项目实战锋迷商城-HarmonyOS APP版这些视频全面、细致、深入,涵盖从入门到提升的Java核心技术、综合项目实战等等。非常适合零基础Java小白入门学习,是一套含金量极高的干货课程。
三、Java学习方法

我们经常说,方法对了事半功倍,方法不对事倍功半!所以一个好的学习方法,对于最终的学习结果有着非常大的影响!然而学习方法本身就是因人而异的,需要我们在学习的过程中,不断的根据学习的效果进行动态调整。
但是也有一些通用的学习方法,例如:多动脑、勤动手,在学习到后期内容时要不断地抽出时间复习前面的内容,正所谓温故而知新嘛。这里我也结合多年的IT教育从业经验,给小伙伴们推荐一些好的方法:


3.1 3W1H学习法

  • What--所谓的3W1H指的是,在学习任何一个技术点之前,我们都必须首先弄清楚这个技术是什么?
  • Why--为什么要学习它?这个技术可以解决什么问题?
  • Where--如果在学习这项技术如何使用之前,你不知道它到底是用来干什么的,这就是一种没有目标的学习,所以我们要思考它将来会用在项目的哪个地方?
因为没有任何一个技术是完美的,所以我们需要知道这个技术的优缺点,才能在应用时扬长避短。一个再好的技术用错了地方,也无法发挥这个技术的优势;一个再有缺陷的技术,只要用对了场合也能发挥出意想不到的效果。

  • How--最后就是怎么用的问题。对于这块,我就一个字【练】,一遍不熟就两遍,两遍还不熟就再来第三遍,反反复复去写,最终一定可以熟练掌握。
希望以上的分享能够帮助到每一位想要学习Java的小伙伴!如果觉得不错记得点赞关注收藏哦~后续还有更多的Java内容同大家分享。

5#
期权匿名回答  16级独孤 | 2023-2-13 13:45:11 发帖IP地址来自 北京
在知乎分享过一些学习路线,前后点赞也上万了都,看到很多小伙伴还是在问怎么学java?学习路线是什么?下面给大家分享java的技术点路线,不知道怎么学的,跟着这个学完全没问题。
这个的我在B站学习的时候看的黑马的学习路线,感觉还比较清晰,不管你是刚开始学习java,还是Java学习进阶中,相信这些内容对你都会非常有用:


入门:Java SE基础-->Java Web(含数据库+H5+js+vue)
中级:Maven-->Git-->SSM框架 -->MybatisPlus-->Spring Boot-->传智健康【项目实战】
进阶:Spring Cloud(微服务开发,学这一套就够了) 也可分技术点学: (Dubbo-->Zookeeper-->RabbitMQ-->RocketMQ-->Docker-->Redis -->MongoDB-->搜索技术Elasticsearch-->MySQL进阶)
不知道大家有没有像我一样学了特别容易忘的,如果你也是这种情况,那你一定要学会及时总结学过的知识,在学习的过程中遇到问题也要及时进行汇总、复习,不断积累,只有这样才能学的更扎实。下面是具体java学习路线内容,视频内容包含一些知乎最新上线的教程,还有的是廖雪峰大神的java教程,大家自己看吧。
Java基础
Java基础是入行Java、应对Java程序员面试必备的知识,好的开始等于成功的一半。打好Java基础才能真正成为Java开发的高手,学习Java企业级技术和项目也才能游刃有余。
20 天学会 Java - 知乎Java Web
最全的JavaWeb阶段核心知识,包括MySQL数据库、JDBC、JavaWeb核心、前端技术、Tomcat、Linux、Ngnix。
JavaWeb 高效学习版(2021) - 知乎Maven
maven项目管理从基础到高级,Java项目开发必会管理工具maven。
Maven 从基础到高级应用 - 知乎Git
Git也是版本控制,它的版本控制都是用户自己的电脑完成控制。把这种版本控制叫:分布式的版本控制。
Git教程SSM框架
SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层。
使用spring MVC负责请求的转发和视图管理。
spring实现业务对象管理,mybatis作为数据对象的持久化引擎。
SSM 框架 Spring+SpringMVC+MyBatis 全覆盖MybatisPlus
mybatis相信都不陌生,目前互联网公司大部分都使用mybatis作为持久层框架,无他,因为可以直接在xml文件中编写SQL语句操作数据库,灵活。但是我们在使用的时候,也会发现有很多增删改查的SQL是每个表都会有的基本操作,如果每个表都写一套增删改查的SQL显然是非常耗时耗力的。
于是乎,就有了mybatis-plus这个框架。正如官网所说,mybatis-plus是为简化开发而生。
全面学习 Mybatis 插件之 MybatisSpringBoot
用大佬的话来理解,就是 spring boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,spring boot 整合了所有的框架。
SpringBoot2 全套讲解(2021) - 知乎SpringCloud
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
Spring Cloud开发Dubbo
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
Zookeeper
ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
RabbitMQ
RabbitMQ作为一款能实现高性能存储分发消息的分布式中间件,具有异步通信、服务解耦、接口限流、消息分发和业务延迟处理等功能,在实际生产环境中具有很广泛的应用。
RocketMQ
RocketMQ 作为目前主流的消息中间件之一, 而消息队列主要应用于以下场景:

  • 异步(不需要同步等待)
  • 解耦(应用之间不互相依赖)
  • 削峰(避免流量激增导致系统性能问题)
Docker
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。
Java 微服务支付项目实战 - 知乎Redis
Redis主要是由访问框架,操作模块,索引模块,存储模块,高可用集群支撑模块,高可用扩展支撑模块等组成。
Redis还有一些,丰富的数据类型,数据压缩,过期机制,数据淘汰策略,分片机制,哨兵模式,主从复制,集群化,高可用,统计模块,通知模块,调试模块,元数据查询等辅助功能。
Redis 入门到精通 - 知乎MongoDB
MongoDB 是一切数据需求的终极解决方案吗?未必。但 MongoDB 的确是一个正确的选择。前提是,你真的知道你的使用场景和往后可能出现的问题如何解决。
MongoDB 基础到进阶 - 知乎Elasticsearch
Elasticsearch 就是一款功能强大的开源分布式搜索与分析引擎,在同领域几乎没有竞争对手——近三年 DB-Engines 数据库评测中,ES 在搜索引擎领域始终位列第一。
此外,Elasticsearch 还被广泛运用于大数据近实时分析,包括日志分析、指标监控、信息安全等多个领域。
推荐几本Java书籍



简单易懂,可以教你如何像一个对象开发者一样去思考,图文并茂学习方式能让你快速地在脑海中掌握住知识。


很全面,很厚,覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。


从核心实现、企业应用和Spring Boot这3个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring 整体架构和环境搭建、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息、Spring Boot体系原理等内容。


从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建 Java 中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的 Java 中间件系统的设计和实践。
关于学习资源和后续的进阶,大家也可以自己上github上看看,上面都有很多不错的资源。
感兴趣的话,大家也可以看我之前整理的一些学习路线内容:

  • 1198元学习python爬虫合适吗?
  • 感觉学java学到自己的瓶颈期了,各种框架乱七八糟,感觉好乱。该怎么办!?
反正对你有帮助就行了。。。
6#
期权匿名回答  16级独孤 | 2023-2-13 13:45:43 发帖IP地址来自 北京
计算机专业科班出身,毕业后还参加了培训班,用我的惨痛经验告诉你怎么正确学Java:java学习必须通过反复不断练习,帮助学习知识应用实际可以增强编程能力,练得越多,你会发现越多,包括你尚未发觉的一些java知识盲区。
实际动手编码比起花哨的工具和框架,实践能提供更多技能,让你更好地理解java代码。
最快的Java学习方法:实践,实践,再实践!…!!

一些真心话告诉大家:学习编程,不动手是完全学不会的,学校里那点东西还是远远不够的。另外工作了也不一定就是万事大吉了,真不想告诉你我现在还经常在B站刷黑马程序员的课程,坚持学习,坚持编程,这是我能告诉你最好的方法。
下面给大家准备了全阶段java学习路线+全阶段书籍+ 面试及找工作内容


一、全阶段Java学习路线内容

1、Java基础

不管是大公司还是小公司,Java基础都是考察的重中之重,很多人前期学习Java的时候基本都是懵懂状态,代码基本都是照着视频,笔记,源码艰难理解的,大部分都只是停留在用的阶段,真正的基础其实都理解的比较浅。
基础阶段要重点学习的内容如下:
开发环境:搭建Java的开发环境,学会安装JDK,建议搞清楚Java是如何进行命令行编译的,要知道path和classpath用来干嘛,然后再使用IDE进行开发;
基础语法:包括操作符、运算符、循环、条件判断,和基本等字符串、数组等处理。然后学习面向对象基本概念:接口、类、继承、抽象和封装;掌握多态,overwrite等;

  • 基础语法,可帮助你建立基本的编程逻辑思维;
  • 面向对象,以对象方式去编写优美的Java程序;
  • 集合,后期开发中存储数据必备技术;
  • IO,对磁盘文件进行读取和写入基础操作;
  • 多线程与并发,提高程序效率;
  • 异常,编写代码逻辑更加健全;
  • 网络编程,应用服务器学习基础,完成数据的远程传输。
20 天学会 Java - 知乎2、Javaweb

Java Web 其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现。在加上各种中间件。整个javaWeb阶段的内容通过实际的案例贯穿学习, 所涉及到的技术知识点会在案例中根据不同的需求引入。
首先了解javaWEB的整个技术体系,掌握常用的技术知识点:

  • 掌握Java JDBC、连接池操作
  • 熟练操作MySQL数据库
  • 熟悉Web开发中常用知识如 HTML5、CSS3、JavaScript、BootStrap、jQuery等
  • 掌握JavaWeb开发核心技术 Servlet、Listener、Filter 等
  • 熟悉Linux服务器,并安装开发常用软件Tomcat、 MySQL、Nginx等
  • 掌握同步及异步操作的JavaWeb开发,具备B/S结构软 件开发能力,完成基本的JavaWeb项目
JavaWeb 高效学习版(2021) - 知乎3、23种设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
总体来说设计模式分为三大类:

  • 创建型模式,共五种:工厂方法模式、 抽象工厂模式、 单例模式、 建造者模式、原型模式。
  • 结构型模式,共七种:适配器模式、装饰器模式、 代理模式、外观模式、桥接模式、组合模式、 享元模式。
  • 行为型模式,共十一种:策略模式、模板方法模式、 观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
Java常用设计模式及视频详解4、数据库

Java开发人员需要对Mysql、Oracle、SqlServer这三个常用的熟悉了解,在数据量比较大或者请求数比较高的情况下,需要了解一些特定数据库针对性优化。
掌握了解各数据库系统的组成部分:
Mysql了解innodb文件组成,及结构;oracle的文件,表空间,数据块,区,段等;了解各数据库的SQL的执行过程,熟练熟悉各数据库的体系结构,熟悉分表分库的方案。了解集群的部署。如Oracle的RAC, MySQL集群的各种方案。了解读写分离的方案(主备),了解binlog。了解数据库系统层级的优化方案。Mysql了解它的一些基本运维操作。Oracle了解一些调优参数等等。
Java学习系列之数据库总结5、Java高级框架

Spring框架是Java框架家族里面强大的一个,拥有 IOC和AOP两大利器,很大程度上简化了软件开发复杂性。它能够使Java开发人员轻松地创建企业级应用程序。
Spring是为企业Java最流行的应用程序开发框架。数以百万计的世界各地的开发人员使用Spring框架来创建高性能,易于测试的,可重用的代码。
Spring 框架 被划分为多个模块,这使得在任何应用程序中都可以很容易地选择要使用的部分:

  • Core:提供核心特性,如 DI (依赖注入)、国际化、验证和 AOP (面向切面编程)
  • Data Access:支持通过JTA ( Java事务 API )、JPA (Java 持久性 API )和 JDBC (Java 数据库连接)访问数据
  • Web:同时支持 Servlet API(Spring MVC)和最近的反应式 API(Spring WebFlux),另外还支持WebSockets、STOMP 和 WebClient
  • Integration:支持通过 JMS(Java 消息服务)、JMX (Java 管理扩展)和 RMI (远程方法调用)集成到企业 Java
  • Testing:通过模拟对象、测试装置、上下文管理和缓存支持单元和集成测试
Java 微服务支付项目实战 - 知乎二、Java全阶段书籍推荐


  • 《Java编程思想》第4版
从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。

  • 《Java核心技术》
Java最经典的教程,初次看可能会有点不太适应,因为是官方教程并且是翻译版,有点书面化。
这本书是相对于为专业程序员解决实际问题而写的,基础知识的覆盖面很广,可以帮助大家很好地了解Java语言和库。

  • 《Java编程规范》
本书全面、准确而详细地论及了Java编程语言。它提供了对于自前一版以来添加的所有新特性的完整描述,包括泛型、注释、断言、自动装臬、枚举、for-each循环、可变元数方法和静态导入子句。
关于JAVA的书籍最佳阅读顺序,大家有什么建议?之后的进阶和高级的Java书籍就都给大家总结在这里了。
三、Java学到什么程度可以找工作?

如果要把java学到能干活的程度,至少要掌握如下的技能:
1、用Web框架做业务的能力,这里的web框架可以是SSM,但目前比较流行的是Sprint Boot框架,至于SSH框架现在应该没人用了,而JSP+Servlet等框架,现在估计都没人提了。
2、未必要记住所有的API,但在看到不理解的API的时候,能通过查资料,快速理解方法和参数的含义,并在此基础上,通过改写,实现规定的业务功能。
3、具备安装环境和配置环境的能力,这块其实不难,多动手操作几次就行,但这里请注意,更需要能在linux上搭建和配置环境。
4、具备debug的能力,具体包括能设置断点,通过看参数的方式单步执行看每一步的运行结果,并以此定位和解决问题。这方面,还应当具备通过看日志定位和解决问题的能力。
5、以上是技术方面的能力,其实还需要加上沟通的能力,即自己不知道的问题知道怎么问别人,在开发时遇到业务疑问知道怎么确认。
以上是基本的技能,至于分布式组件或微服务等方面的开发能力,或者是其他高级技能,这属于加分项,掌握了能更好,当开始干活时还得优先掌握上述基本的技能。
先分享这些了,更多内容大家也可以去看一些招聘网站,看看现在的JD是怎样的?看看自己要具备哪些方面的能力。
这里的一些面试题和实战项目也送给大家:

不管你应聘的是大厂还是小厂,不管你是应届生还是架构师,面试官都会问到 Java 基础知识,基础知识是重中之重:
java基础面试题大概有哪些?另外项目经验真的很重要,多开源做项目积累经验,多看别人的代码:
有哪些适大学生参与的Java开源项目?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP