Java后端开发学习路线
前言
最近春招开始了,很多校招同学想从事Java开发的工作,但是不是很了解这里可以把我之前的学习路线分享一下。有困难的同学私聊加群,一起学习备战春招。
基本大纲
上述这些,简单的说一下都有哪些重点和资料。
Java基础
Java基础指的是对Java语言的理解,主要包括Java语法,面向对象基础,Java关键字的使用和理解,集合类和常用类,异常机制,Java IO等。
关于这方面,有一个课程可以推荐:
Java300集
这个课程是尚学堂出品的,很经典,讲的也很通俗易懂。可以根据自己的情况选择一些章节。这个课程第四章可以跳过不看,因为Java桌面开发现在很少了,基本用不到,可以淘汰掉。
这个课程推荐学习一到两个月
Web开发基础
Java web开发是最终的目的,但是现在框架横行的年代,大部分开发者都跳过了这个环节,直接学习框架快速上手了,这对于哪些社招转行的,可以,但是对于校招同学一定要把这块给搞明白,这是Web开发的基础。
在早期Servlet和JSP是Web开发的基础,其实JSP也是一种特殊的Servlet。都是转化为理解Servlet,关于这个有很多参考资料,推荐一个学习教程:
JavaEE
这个教程从基础的JDBC开始讲起,然后是Servlet和JSP,以及JSP的高级用法,自定义标签等。后面几章讲解了几个常用的框架,但是这些现在基本都过时了,不过还是可以学习下,对后面学习其他框架有很大的帮助。
Java 多线程
首先要理解,Java的线程和系统的线程之间的关系,在Java代码里面启动了一个线程,对应到操作系统层面做了什么事情。
Java线程和系统线程的关系
理解了这个,接下来就是学会怎么使用线程:
例子1
例子2
做到这些基本上面试就已经足够了,但是可以再拓展点,比如实现几个经典的面试题:
- 使用两个线程交替打印奇数偶数
- 使用synchorized 实现1
- 使用wait+notify实现1
- Countdownlatch 和Sempre的使用
- AQS基础
如果能把1-5搞明白,那多线程这块,校招面试肯定够了。
网络编程
其实网络和IO紧密相关。
最基础的要学会:
- 编写socket server和client程序。例子
- 把1中的server端,改写成多线程模式,每个client连接一个线程处理
- 把1改写成单线程reactor模式
- 把1改写成多线程reactor模式
最基本的,能够做到1-2,这样能够基本知道,IO流,socket api都有哪些,并且结合线程使用。最后进阶版的可以完成3-4,这样能够加深对reactor模式的理解。
上述完成之后,你会发现其实一个client一个线程处理,是不够明智的
因为线程的数量是有限的,但是client的数量可以很多,这样显示单机的处理能力是不够的。NIO可以解决这个问题
关于Java NIO 推荐一个教程:Java NIO
学会了这个,面试又能吹牛了!但是你可能还是发现,NIO有点复杂,比如哪些ByteBuffer需要你自己去控制顺序,需要flate等等,于是就有了一个经典的NIO框架:Netty。Netty是一个基于Java NIO实现的高性能网络处理库,有很多功能,但是也很复杂。关于Netty这里只是建议,会一点就行,要全会,那有点难。给个推荐:Netty学习教程
到这里IO技术基本上就到位了。但是IO往往是和多线程结合起来的。
所以二者可以放在一起学。
常用框架和工具
Java 开发中有很多的框架和工具。首先是maven,这是一个管理整个项目生命周期的工具,从依赖管理到打包编译,都可以使用maven完成。所以学会这个,能够在工作中更加快速的上手。主要是要理解maven lifecycle,这个理解了就好办了,以及maven的插件原理。
关于这个,尚硅谷的老师讲的也挺好的:maven学习教程
然后是一些常用的框架,其实不用太多,框架这个东西,设计之初就是为了简化开发,提高开发速度,如果一个框架你要学习很久,那这肯定是失败的,很多人都把框架理解错了,框架设计之初是没有把优化性能放在第一位的。所以框架基本都是很好用很好学的,校招一般也不会怎么问框架相关的话题,但是框架中优秀的设计思想,还是可以学习一下的。比如:
- Spring学习教程Spring是一个依赖管理的框架,这个依赖管理指的是类之间的依赖,不是jar包依赖。Spring的核心思想就是IOC和AOP。感兴趣的可以去了解下
- Mybatis这是一个ORM框架,解决JDBC重复开发的问题,实现基于配置开发的思路。
其他的还有很多,但是就不介绍了,这两个足够了。
开源
要说Java项目开源最好的东西,都是大数据那一套,比如Hadoop,MapReduce这些,但是这些又比较的大,不是很容易看懂。所以对于开源项目,可以看看Kafka,RocketMQ的设计和实现。这个可以推荐一本书:
**《Kafka权威指南》**这本书很适合初学者,由浅入深的讲述了Kafka的整体设计和实现,绝对是帮助很大的。
结语
简单的罗列了一下Java后端或者Java技术栈需要的东西,看起来有点多,但是其实还是很少,这些只能说是大家接触的比较多的,对于一些特殊的开发场景,还是需要专门学习,但是校招万变不离其宗,都是对基础的考察。所以大家加油!
Java后端开发学习路线相关推荐
- web后端开发学习路线_学习后端Web开发的最佳方法
web后端开发学习路线 My previous article described how you can get into frontend development. It also discuss ...
- 个人java后端详细学习路线(0→1)
2022.3.9 今晚收看B站老师分析的学习路线,根据网友评论和自己总结,我用在C站的第一篇博文记录一下. 来源:[建议收藏]按这个学,找工作没问题!Java后端开发详细学习路线视频教程,串起Java ...
- Java后端工程师学习路线——大学版
作为一名Java后端工程师,需要具备一定的计算机基础知识.Java语言基础和相关技术栈的知识,包括数据库.Web开发.框架等.在这篇博客中,我将从大一开始,讲解如何规划学习路线,以成为一名Java后端 ...
- 【实验室培训】大学生的Java后端开发学习之路(从App开发讲起)
文章目录 前言 一.浅谈如何开发一款App 1.一个好的idea 2.根据这个idea完善好具体的需求 3.分工合作 4.设计阶段 ①UI设计 ②接口设计 ③架构设计 5.开发阶段 6.测试阶段 7. ...
- 阿龙的学习笔记---C++后端开发学习路线梳理、阶段性总结
1. 前言 不是科班出身,机械学院下的机器人专业,乱七八糟QT.ROS.双目.单片机都接触一些,但是到现在没做过太多软件开发的活儿,所以对于未来找实习找工作没什么底. 研一就快要过去了,因为疫情研一下 ...
- C++后端开发学习路线及推荐学习时间
实习面试基本情况 先说一下楼主面试的情况,参与面试的公司:CVTE.搜狐.东方财富.美团.腾讯.字节跳动.阿里巴巴 CVTE:笔试-技术面1-技术面2-hr面-offer 阿里巴巴提前批:技术面1-挂 ...
- Java 后端开发学习型网站汇总
首页 - 不灭的焱:个人网站,汇集了大量开发实践经验文章,技术种类繁多,总结得也比较好,适合不时访问查看. 第十二章:技术总览_我是廖志伟的博客-CSDN博客:私人博客,收集了各种技术的官方网站. 网 ...
- 万字长文| 最详尽的JAVA后端开发求职路线
本人 21届双非本科,在大二的时候开始学习Java感谢我的恋爱6年之久的女朋友哈(她也是Java
- 为学弟学妹熬夜的一份零基础 C++ 开发学习路线
大家好,我是帅地. 之前写过几篇学习路线的文章 前端开发学习路线 Java 后端开发学习路线 一般开发岗主流的就是 Java 后台开发,前端开发以及 C++ 后台开发,现在 Go 开发也是越来越多了, ...
最新文章
- 智能安防赛道上 国产AI芯片力挫群雄
- 四、垃圾收集之垃圾收集算法
- 如何只使用标签来构建一个简单的电影推荐系统
- redhat6.5手动配置网络
- 鸿蒙公测报名表填写,鸿蒙2.0公测报名审核要多久_鸿蒙2.0公测报名审核时间
- LeetCode-数组-三数之和
- ubuntu系统没有声音解决方法
- Node.js验证码模块captchapng
- 只有我能做的工作,权限关了?
- ENSP实验五——三层交换机+二层交换机
- 13.计蒜客ACM题库.A1147 结果填空:礼物盒
- 《可穿戴创意设计:技术与时尚的融合》一一2.4 超级英雄和超级可穿戴设备...
- 八数码问题【人工智能实验】
- 谈一下对计算机网络技术的认识,浅谈对计算机网络的认识
- border-color属性设置单边边框和综合四边边框颜色
- oracle database lite,Oracle Database Lite Client 10
- 如何用python制作动画电影_用Python制作3D动画
- 智力答题源码php,php儿童智力测评系统
- 基于OpenCV DNN模块给黑白老照片上色(附Python/C++源码)
- ***无人驾驶***apollo 3.0 硬件系统
热门文章
- 三位一体计算机类自荐信范文,三位一体大学自荐信范文
- 六区哈卡服务器无限公会,六区哈卡LM54级小牧师很迷茫!(请高手指点)
- mixamo动画批量添加根骨骼与将动作处理成原地动作(blender)
- React-Native + Mobx项目实战--探花交友APP--项目搭建
- 拆机(装机)后开机黑屏并且一直发出滴滴滴的声音
- R与SPSS、SAS相比较_Python 在数据分析工作中的地位与R语言、SAS、SPSS 比较如何?
- Linux环境问题--Miniconda安装python环境搭建
- 大数据分析了50万条拼多多商品数据, 得出了这样的结论
- C# SQL Server笔记
- jsj中对象之间的赋值