新手小白该怎么学习Java,附学习路线和学习资料

在知乎上经常碰到这种问题:“我刚毕业,怎么入门java?”;“我是初中生、高中生可不可以自学java?”作为一个已经工作八年多的老鸟,我想说:

如果你是一个遇到困难就望而却步的人,大可不必浪费时间接着把这篇文章看下去,真的不用因为java就业前景好,上升空间大,工资高就去学他。如果你热爱技术,耐得住寂寞,肯钻研,那么请接着往下看,这个行业也许适合你!

首先,学习java难吗?要说难,其实也不难,随便在网上找些入门的视频,从头开始看,大部分人都可以看得懂。基本的数据类型、判断语句、循环语句、面向对象以及Html入门,大家都可以看得懂。但是你如果想走的更远,请做好准备

不断学习,不断汲取知识;前期放弃王者、LOL不要吃鸡,多花点时间将学过的代码多敲几次,熟能生巧。

这里再说下,初中生、高中生可不可以学习java,答案当然是可以的,但是!注意了,初中生、高中生学习这行第一个是需要付出的更多;再者成功率更低。一方面是心智方面还没达到一定层次,再者社会对你的学历认可程度低,所以各位初中、高中童鞋还是努力学习,先考上大学再说吧!

确实,也不是说这行什么门槛都没有。至少英语单词得多认识几个不是~

那么初学者该如何学习Java呢,前面有说到,在网上找一个java基础视频,大家都可以看懂。但是难就难在坚持和连贯。所谓坚持,就是你可能得花上2到3个月的时间去系统的学习Java基础、前端基础、主流框架(spring、SpringMVC、mybatis),再一个就是连贯~很多人就败在这个上面。如果你前面学的知识不牢固、没有充分的练习和消化,那么对你来说后面学的东西会非常吃力甚至不懂。慢慢的你会放弃学习。

上面说的基本上是你在通往Java学习的道路上必须去做到。相信我,我曾经在这条路上走过很多弯路。记得刚学习java那会,笔者抱着雄心壮志,急于求成,想着一鼓作气的把学习视频都看完,但是由于联系得不够,自己根本消化不了。最后不得不重头再学。

有了学习方法,接下来我们该遵循什么样的路线去学习呢!笔者也是精挑细选,将必须学习和掌握的知识进行一个梳理,掌握以下知识,你将成为一名合格的入门者。后续只需要学习了解一些热门的知识,就可以去面试找工作了。

1、基础入门必备

  • Java简介
  • 了解什么是Java
  • 代码语法基本格式和输出表达式。
  • 了解Java大致的编译、执行过程
  • Java语言基础、判断、循环、数组 、类和对象
  • 掌握Java的基本数据类型和引用数据类型有哪些;
  • 掌握强制数据类型转换和自动类型提升规则;
  • 常量如何声明及赋值;
  • 判断、循环的语法及作用;
  • 数组的声明及定义;
  • 掌握类的概念以及什么是对象。
  • OOP封装、继承、多态
  • 面向对象的三大特征,本节内容非常重要也相对来说较为难以理解,一定要耐下心来好好理解。
  • IO流操作,多线程及Socket
  • 掌握IO读写流相关的类,了解字节流,字符流和字符流缓冲区;
  • 掌握线程的概念,多线程的创建、启动方式,锁和同步的概念及运用;
  • 掌握Socket通信的概念,如何声明客户端服务端,如何完成双端数据通信。
  • 数据库基础(Mysql、Oracle)及JDBC
  • 掌握数据库的基本概念,Mysql的安装、启动与停止
  • Mysql数据库客户端的安装与使用
  • JDBC的概念,在Java中使用Mysql驱动包连接Mysql
  • 要求可以熟练的手写JDBC操作代码,面试经常问到

一阶段学习的都是概念、定义和基础,就像在建房子的时候打的地基,只有地基足够牢固,房子才会稳而且安全。以上所列除了多线程和socket,其余均需要重点学习,重点掌握和理解。另外java还有一个Swing编程,java的界面编程,此模块可以忽略,市面上有更好的解决方案,所以基本上没有公司需要用到此技术,我们也不必浪费时间在这个上面。

学习完一阶段,可以在网上找找一节简单的管理系统、学生成绩、银行存取款等等,自己尝试的先去模仿然后自己编写一个新的系统,当你解决完所有bug,调通系统后会有无比的成就感~~

但是!~~注意了,这还只是基础,还有很多路要走~

我们接着往下看第二阶段的学习内容!


2.前端入门基础

  • HTML基本标签、表格、表单和框架;
  • 掌握网页的基本构成;
  • 掌握HTML的基本语法;
  • 表格的作用以及合并行、合并列;
  • 表单标签的使用,提交方式get/post的区别;
  • 框架布局的使用
  • CSS样式表;
  • 掌握CSS的语法及作用,在html中的声明方式;
  • 掌握CSS布局的函数使用;
  • 掌握CSS外部样式的引入。
  • JavaScript;
  • 掌握JS的语法及作用,在HTML中的声明方式;
  • 掌握JS的运行方式;
  • 掌握JS中的变量声明、函数声明、参数传递等;
  • 掌握HTML中的标签事件使用;
  • 掌握JS中的DOM原型

以上内容可以自行百度W3School,进行学习相关的知识

  • jQuery
  • 了解如何使用jQuery
  • 掌握选择器、文档处理、属性、事件等语法及使用;
  • 能够灵活使用选择器查找到想要查找的元素并操作他们的属性;
  • 动态声明事件;
  • 动态创建元素。
  • Servlet
  • 掌握Java中的Web项目目录结构;
  • 掌握Java Web项目的重要中间件Tomcat;
  • 掌握Servlet中的Request和Response;
  • 掌握Servlet的基本运行过程。
  • 掌握Servlet的声明周期
  • 动态网页技术
  • JSP在Java Web中的角色;
  • JSP的编码规范,以及JSPServlet;
  • JSP显示乱码的解决办法等。
  • JSP数据交互
  • JSP中如何编写Java代码,如何使用Java中的类;
  • JSP中的参数传递。
  • 状态管理Session和Cookie
  • 掌握Session的作用及作用域;
  • 掌握Cookie的作用及作用域;
  • 掌握Session及Cookie的区别,存储位置,声明周期等;
  • 掌握Session及Cookie分别在JSP和Cookie中的使用
  • JSTL和EL表达式
  • 使用EL表达式输出page、request、session、application作用域中的值
  • 使用JSTL来做逻辑判断或循环控制
  • Ajax
  • 掌握Ajax的基本概念;
  • 掌握jQuery中的Ajax请求;
  • 掌握JSON
  • Filter、Listener;
  • 掌握Filter和Listener
  • 掌握Session过滤器和编码过滤器

学完以上知识,可以说你已经学完了要准备的基础知识了,还是和前面一样,自己琢磨一个系统,练练手,如果身边有这方面的熟手,建议这时候自己不耻下问一下,编程一直都是程序猿与bug不停的斗争过程,此时的你知识面还不够宽,知道的东西也不多,很容易碰到一些bug没办法自己去解决。

接下来我们可以开始学习主流框架的应用了

3.主流框架技术

  • Mybatis的应用
  • Mybatis的Mapping与实体映射;
  • Mybatis中的SQL语句写法;
  • Spring应用
  • Spring容器的作用;
  • Spring的AOP和IOC;
  • SpringMVC的应用
  • SpringMVC中的控制器注解、请求注解、参数注解、响应注解等;
  • SpringMVC中的静态资源处理;
  • SpringMVC的容器。
  • Spring+SpringMVC+Mybatis整合
  • SSM的整合使用;
  • Spring容器和SpringMVC容器
  • Maven
  • Maven的作用
  • Maven项目的创建
  • Maven的生命周期
  • Maven中央仓库及私服
  • Log4J2日志

如果你是一个持之以恒的学习者,坚持学完以上知识,那么恭喜你,已经成功入门java。此时你自己使用SSM框架开发一个小的系统,再跟之前自己学习的JDBC+Servlet+JSP开发做对比,相信你会有更多的收获。我们再学习一些常用技术,就可以大展身手,开始找工作啦!

4.需要了解的常用技术

如果你准备找工作,并且要拿到一份不错的薪资,那么以下技术是必须去了解熟悉的:

  • SpringBoot 的应用
  • 了解SpringBoot的起源及优势
  • 了解SpringBoot项目的格式以及创建方式
  • yaml语法特性
  • application配置文件及静态资源处理
  • Thymeleaf模板引擎
  • SpringBoot核心之WebMVCConfigurer
  • Struts2应用(了解即可)
  • 什么是Struts2
  • Struts2的用法
  • Struts1和Struts2的区别
  • Hibernate应用(了解即可)
  • Hibernate在项目中的作用及优势;
  • Hibernate中的hbm与实体类之间的关系;
  • 什么是HQL,什么是关系映射(一对一,多对一,多对多);
  • Redis入门和使用
  • Linux操作系统
  • Linux中的常用命令;
  • Linux下的jdk、tomcat安装;
  • Linux下的项目部署方式。
  • 消息中间件的使用
  • 推荐activemq的基础和与Spring的整合
  • 学习SVN的使用,了解GIT
  • 学习一下分页的使用方法
  • 前端框架推荐学习BootStrap、EasyUI

以上四阶段都可以在网上搜到对应的内容,只是会踩坑很多罢了,我也是对相关资料做了对应的整理,这里附上详细的架构师学习路线和学习资料

img

学习java,你掌握这些。二三线也能轻松拿8K以上

最后重点强调一下,身边如果有已经入门的学长,一定要用好资源,多问多请教,再就是学习的过程中一定要多动手,多敲代码,不要被当时学习敲了一次,感觉自己就懂了的错觉给误导,可能第二天你就忘了前天所学的内容。看博客、看视频无非是让你了解、知道这个知识点,但是如果你想消化他,把他变成自己的东西,那么请你一定要多动手、多思考!只有把代码敲烂、键盘敲垮(这里夸张了~)你才会有所收获!

更多学习内容请阅读我的知乎专栏:打造全网Java高级工程师资料库(总目录)看完学的更加快,知识更牢固。你值得拥有(持续更新)~

  • 0
    点赞
  • 0
    评论
  • 7
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

coder吹雪

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值