自学 Java 怎么入门?

这个回答我思考了很长时间,一直没去写,因为一旦写了,就要给大家一点有价值的东西。我也看了很多网友的回答,基本上都是罗列一些资料。我觉得授人以鱼不如授人以渔,思考了一个月后,我决定从两个方面去说这个问题。

第一:就是学习方法的问题,这点非常重要!好的方法会事半功倍;第二:就是学习资料的问题,如果说好的学习方法能帮你节省一半的时间,那么好的学习资料能帮你快速入行,少走弯路。我会在下文一一给大家分享出来。

自学方法

如果要说自学Java,我觉得我有资格说上几句。我读研期间自学的Java,一开始看了一个星期左右的书,然后我把书扔在了一边,看不进去啊!我自认为自己的脑袋瓜还算可以,但是我看不进去。这也是初学者的通病,有好多读者也跟我说:武哥,我书也看了,可是感觉还是不会。我TM也是这么过来的,哈哈。

所以我当时看了视频,我看的是毕向东的Java视频,但是现在已经有更加新的视频了。

视频连接

找一个好视频,从头到尾认认真真跟着学一遍,做好笔记,那也是我开始写博客的开始。为什么要记笔记?为什么要写博客?我之前写过一篇文章:为什么我在CSDN坚持写了3年多的博客?

人都有个尿性,如果你做一件事情,一直看不到明显的效果,你就会慢慢懈怠,慢慢怀 在疑自己到底对不对,适不适合。编程也一样,为什么我不建议初学者上来就抱着别人跟你推荐的所谓的经典书籍去啃?什么《Thinking in Java》、《Effective Java》等等,你啃的了吗?你啃不了是对的,否则你就是神了。你啃不了,你就会放弃。我就很讨厌那些贴吧论坛里一上来就给一些初学者推荐很多经典书籍的人,显得自己很博学很牛逼的样子,其实没啥卵用。

包括Java并发、SSM框架、组件等等,我全部看的视频。当然,一些源码我是自己啃的,比如Java容器。当你有了基础,上路了,你再去看书,不仅仅就是看懂看不懂的问题了,那才是真正的提升。

但是这些还不够,你学了这些东西不能派上用场。必须要项目实战,网上有很多免费的实战视频,但是我觉得不好,因为那时候我已经有基础了,我知道如何去选择我的学习资源了,我在这还是要强调一点,不要吝啬给自己投资,我当时也买了好几个项目实战视频跟着学习,提升很多实战经验。我在前面一篇文章:同样是程序员,为什么别人比你更优秀?中第一点就提到了这个。

当然了,我这边也有很多优质的视频资源,我会在下文给大家分享出来,不用像我当初那样去花钱了,我那时候自学,就没有遇到像我这样懂得分享的人。所以缺视频资源的读者,可以找我要,我就是单纯的分享,为了帮助更多的朋友。

作者:码畜武哥
链接:https://www.zhihu.com/question/25255189/answer/1689917206
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

有很多人觉得工作年限长就牛逼,见识多,但是在我看来,这不一定。

但是有很多人坚持不下来,我也是从小白一步步过来的,花了整整一年左右的时间去自学。我做了好几个项目,我敢说我在学校这一年学到的东西,不比别人在外面工作两年的能力差。所以有很多人觉得工作年限长就牛逼,见识多,但是在我看来,这不一定。

我曾经好几个月直接睡实验室里,每天除了看论文,完成导师的任务,其他时间全部用来学习,晚上搞到十一二点,否则一年时间不可能学那么多东西,而且我大部分还写成了博客,要知道,写博客是很花时间的。如果你能像我这样坚持,这样严格要求自己,我不相信学不会一个东西。你就算今天学不会,你一个月之后呢?一个月不行,你一年总行了吧?就像马云爸爸说的:今天很残酷,明天更残酷,后天很美好。但是很多人都坚持不过明天,他永远看不到美好。就像我考研一样,没有坚持付出,哪来的结果呢?

好了,情怀的东西就不跟大家扯那么多了,总结一下就是:任何技术要做到”先会用,再提高“,然后就是坚持+输出。几个月后,你会感激你前面的付出的!下面给大家分享一些干货了~

Java基础

借用阿里孤尽大佬的一句话,叫做:越牛逼的人,往往做着越简单的事情。任何技术,最后都是返璞归真。很多实际问题,往往最后归结于基础不扎实。Java基础内容不少,我给大家画了个思维导图,顺便分享一套最新的完整视频供大家学习,看完后相信Java基础部分的东西,基本上都能掌握了。 看一下整体思维导图:

全套从基础到项目实战的最新视频,百度云链接:https://pan.baidu.com/s/16IeNr2Z7-ghdsSKrjKbgSg 提取码:yhf7

这里我针对一些重点知识,也写了一些高质量的文章,分享给大家。大家可以在线看,也可以下载到本地看,所有文章的高清带目录版的pdf我正在制作,大家关注我,我做完了就会更新出来

Java基础部分:

Java容器部分

Java 容器可以说是平时使用最多的了,不管多大的项目,这块是必须要会用的,而且面试中经常会问到一些源码层面的东西,比如HashMap的扩容机制是什么呢?Java 8对HashMap的数据结构有哪些改进等等。这块源码其实不难,啃一遍就可以去装逼了!我也写了几篇干货分享给大家。

Java多线程

Java多线程是面试必问的东西,不管是大厂还是小厂,不管是应届生还是社招的,如果多线程掌握的比较好,无疑是给你巨大的加分项,而且多线程在项目里运用的也是非常常见的。多线程用的好,薪资涨的爽!

Java虚拟机

JVM可能大部分看到就比较头疼,这块确实比较难啃,一般初学者可以跳过。不过可以了解一些内存模型和类加载机制,我给大家总结了两篇干货,分享给大家。

这些啃完,基本上基础知识就掌握的差不多了,接下来就需要去学习一下框架的知识了,Java框架的演变历史:以前基本上用 SSH+jsp,后来被淘汰了,现在基本上没有SSH和jsp了,如果你找了个实习或者工作是用SSH或者jsp的,那还是趁早走人吧,因为后面你都不好跳槽。再后面就是SSM(Spring、SpringMVC、mybatis)框架,这个目前还有在用,再后面就出现了springboot了,这是目前用的最多的框架。学习的话,ssm框架可以学学的,springboot是基于spring框架的。

有些朋友问我,武哥,我可以跳过spring直接学习springboot框架吗?理论上来说,也没问题的,我们学任何东西,要把握好一个原则:就是先会用,再拔高。话不多说,直接进入正题,这里我都写过干货学习文章,分享给大家。

Spring

SpringMVC

Mybatis

Springboot

Springboot是目前最常使用的框架,简单上手,也没有Spring那些繁琐的配置,是现在必学的一个框架。这个框架我认真整理了一下干货内容,大家可以学习一下。

作者:码畜武哥
链接:https://www.zhihu.com/question/25255189/answer/1689917206
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

SpringSecurity

SpringCloud

消息队列

一口气写了这么多,老板又在那催我写bug了,我先去写点bug出来,后面继续给大家更新干货~

如果觉得对你有帮助,点赞是对我最大的鼓励。

 

原文地址:https://blog.csdn.net/tomfyyds/article/details/121721771

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


1.pom.xml引入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" &qu
准备工作 ① 创建数据库&数据表 ## 创建数据库 CREATE DATABASE `dbtest1`; ## 创建数据表 CREATE TABLE `t_user` ( `id` INT NOT NULL AUTO_INCREMENT, `username` VARCHAR(20) DEF
MyBatis逆向工程是指根据数据库表结构自动生成对应的实体类、Mapper接口以及SQL映射文件的过程。这个过程可以通过MyBatis提供的逆向工程工具来完成,极大地方便了开发人员,避免了重复的代码编写,提高了开发效率。 创建逆向工程的步骤 1、添加依赖&插件 <!-- 控制Mave
MyBatis获取参数值的两种方式:${}和#{} ${}的本质就是字符串拼接,#{}的本质就是占位符赋值。 ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自
resultMap作用是处理数据表中字段与java实体类中属性的映射关系。 准备工作 ① 创建数据库&数据表 CREATE DATABASE `dbtest1`; CREATE TABLE `t_emp` ( `emp_id` int NOT NULL AUTO_INCREMENT, `em
EHCache缓存针对于MyBatis的二级缓存。 MyBatis默认二级缓存是SqlSessionFactory级别的。 添加依赖 <!-- MyBatis-EHCache整合包 --> <dependency> <groupId>org.mybatis.cac
MyBatis 提供了一级缓存和二级缓存的支持,用于提高数据库查询的性能,减少不必要的数据库访问。 一级缓存(SqlSession 级别的缓存) 一级缓存是 MyBatis 中最细粒度的缓存,也称为本地缓存。它存在于每个 SqlSession 的生命周期中,当 SqlSession 被关闭或清空时,
动态SQL是 MyBatis 中非常强大且灵活的功能,允许你根据不同的条件构建SQL查询。 这主要通过 <if>、<choose>、<when>、<otherwise>、<foreach>等标签实现。 查询场景 /** * 根据条件查询员工
本教程操作系统:windows10系统、DELL G3电脑。 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在 MyBatis 中,配置数据库连接是非常重要的第一步。下面将详细介绍如何配置 MyBatis 的
今天小编给大家分享的是MyBatis批量查询、插入、更新、删除如何实现,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。
今天小编给大家分享的是Mybatis操作多数据源实现的方法,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获...
本篇文章和大家了解一下mybatis集成到spring的方式有哪些。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。1 前言1.1 集成spring前使用mybat...
今天小编给大家分享的是mybatis-plus分页查询的3种方法,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获...
本篇内容主要讲解“mybatis之BaseTypeHandler怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis...
这篇文章主要介绍了mybatisforeach怎么传两个参数的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mybatisforeach怎...
这篇“MyBatis映射文件中parameterType与resultType怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的...
这篇文章主要介绍“MyBatis怎么获取自动生成的键值”,在日常操作中,相信很多人在MyBatis怎么获取自动生成的键值问题上存在疑惑,小编查阅了各式资料,整理出
这篇文章主要讲解了“怎么去掉IntelliJIDEA中mybatis对应的xml文件警告”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入...
这篇文章主要介绍“MybatisPlus使用@TableId主键id自增长无效如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这...