Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java工程师学习指南 初级篇

Java工程师学习指南 初级篇

原创
作者头像
程序员黄小斜
发布于 2019-03-10 14:14:03
发布于 2019-03-10 14:14:03
7370
举报

Java工程师学习指南

初级篇

最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好。原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线。

所以,今天我们重新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下自己的Java学习历程。今天我们要讲的是,小白同学如何入门Java。

先声明一点,文章内容不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦。

本文所述的方法不一定适合所有人,如有错误敬请谅解。

01

Java Web项目指南

jav在上一篇文章中,我们讲到了入门Java的几个步骤,先搭建好环境,然后熟悉基本语法,接着熟悉Java的一些核心技术,并且在代码中进行实现。

如果你已经完成了这部分内容的学习,应该会感觉自己对Java已经有一定了解了,可以轻松地写出一些Java代码,比如实现多线程输出数字,再如操作IO流等等。

当然,这些代码通常只是一些demo,我们在实际的项目中可能并不会这么简单地使用这些技术,我们可能会同时使用集合类,多线程,以及操作数据库API

所以,在今天的初级篇中,我们就来谈谈怎么做项目吧。

Java Web项目

对于大部分Java新手来说,最适合他们入门的项目就是Java Web了。因为Java天然适合做Web应用,并且生态完善,更有很多开源的工具和框架去支撑这些应用,比如Spring,Hibernate,SpringMVC等等。

那么,如何开始着手做一个Java Web项目呢。个人认为最好的方式就是看视频了。因为,看书的话,很多内容比较过时,并且一般不会提供源代码。也有一些大佬喜欢推荐开源的项目(在GitHub上面的项目),但是对于小白来说,如果没有很完整的文档去指导他们,那也是毫无意义的。

曾几何时,Java Web的项目还在使用JSP + Servlet进行开发,后来出现了Struts2,再后来,出现了我们现在也一直在用的SpringMVC,说实话,不论使用哪种开发框架,你都需要先花一些时间去学习相关的技术,否则你会发现,即使是看视频,你也不知道里面在讲什么。

要想做好一个JavaWeb项目,你不仅需要一个好的项目课程,还需要足够的知识储备,下面就让我们来理一理这些内容把。

知识储备

Java基础部分的内容咱们上次说过了,这里就不再重复啦~下面我们分别来说说其他几方面的知识储备把

02

前端知识

推荐资源:在w3cschool学习html,css和js,支持在线测试代码。

既然是做Web,就难免要涉及到前端技术,不过,现在前后端分离已经是一种趋势,所以,如果你对前端不感兴趣,也没必要花太多时间去学习。

对于大部分同学来说,你最好要了解html的基本标签和格式,自己能够写一些简单页面,CSS的话,也可以稍微接触一些。相对于前面两个服务于样式的技术,我们倒是更应该去学习一下JavaScript,了解它的一些基本语法,以及ajax的使用,因为在前后端交互时,ajax是非常重要的。

所以,做一个Java Web项目,你不需要花太多时间在写前端页面上,如果有源代码可以直接使用,当然,对于一些需要修改的前端页面,你得怎么去做修改它,因为有时候你需要使用JSP,JSP既包括前端代码也包括Java代码,如果你完全看不懂前端代码的话,那就很尴尬了。

03

Java Web常用技术

JavaWeb的技术栈其实比较庞大,所以我们不要求面面俱到,只是希望你能够熟悉一下项目中可能用到的技术。下面列举一些常见的技术,大家最好要了解一下。

1 JSP和Servlet

推荐资源:《JavaWeb入门到精通》,慕课网、极客学院等网站上的JavaWeb基础课程

这是Java Web开发最原始的形态,现在很少直接使用了,但是后来的各种框架其实也是建立在servlet之上来做的。你们需要了解这两个技术分别是用来干什么的,最好能写一些demo来实践。

对于JSP,有时候你可能还要学习jstl等标签语言,因为这些标签可以让你更方便地往JSP中插入Java代码。

2 Spring和SpringMVC

推荐资源:《Spring实战》,慕课网、极客学院等网站上的SpringMVC基础课程。

事实上,除了上述资源之外,你也可以直接到官网上查看快速开始文档。

Struts2早已被时代抛弃,Spring则是当今的霸主,你需要了解Spring如何使用,以及SpringMVC如何使用,并且学会在项目中使用它。

由于SpringBoot最近很火,并且搭建方式比SpringMVC更简单,你也可以先学习SpringBoot,以便更快速地搭建起你的第一个Java Web项目。

3 MySQL

推荐资源:《Sql必知必会》,Runoob上的MySQL基础教程,慕课网、极客学院等网站上的视频课程

一个JavaWeb应用一定要有数据啊,所以我们需要用到数据库,其实搭一个mysql数据库是非常简单的,但是对于初学者来说最麻烦的就是写sql了,所以,先学会建表,熟悉sql,对你以后做项目也是大有裨益的。

4 Hibernate和Mybatis

推荐资源:Runoob上的Hibernate和Mybatis基础教程,慕课网、极客学院等网站上的视频课程

当你学会了使用sql去查询数据,可能还不足以让你在项目中很方便地处理数据,因为我们还需要一个步骤,就是把数据库的数据转化成Java里的对象。orm框架就是为了解决这一问题而出现的,它可以让一张表和Java类一一对应,让数据查询变得非常方便。Hibernate和Mybatis都是orm框架,只不过现在mybatis越来越火了。

所以,你需要了解这一技术,因为它会广泛地运用到大部分Java Web项目中。

5 Maven

推荐资源:《maven实战》,易百教程里的maven教程,慕课网、极客学院等网站上的视频课程

刚才咱们已经说过了Spring,orm框架,以及MySQL等方面的技术了。实际上,一个简单的Java Web项目也只需要这些东西了。

但是,有一个问题,就是:一个项目里用到这么多技术,所需要的jar包也会很多,我们如何管理这些jar包呢。如果直接导入所需jar包,那当jar包更新或者需要替换时,每次都要手动操作,非常麻烦。另外,当jar包很多时,项目打包后的war格式文件也会很大,不利于传输。

为了解决上述问题,maven应运而生了。maven通过pom.xml文件来指定所需的jar包,并且自带了很多构建相关的功能,比如编译,打包,运行单元测试等等,因为它本身就是一个构建工具。

当然,新手可能还难以理解这些概念,你必须要知道的是,大部分Java Web项目需要用maven来管理,你需要学会maven的基本用法,最基本的用法就是:学会修改pom.xml文件。

6 Tomcat

推荐资源:慕课网、极客学院等网站上的视频课程。

对于小白来说,Tomcat相关的技术是非常复杂的,毕竟它是一个应用服务器啊,事实上这个时候,你只需要学会如何安装Tomcat即可。毕竟,它在项目中的作用就是提供一个运行环境而已。

正常来说,你只要下载解压Tomcat的压缩包即可。由于现在的IDE都支持集成Tomcat,所以一般情况下你都可以在IDE中配置好你的Tomcat路径,然后设置好你的项目路径,IDE会自动把你的工程代码部署到Tomcat服务器上。

如果你使用想跳过IDE直接部署工程到Tomcat上,也可以直接编译工程并且打包得到war格式的文件(这个步骤可以使用maven来完成),然后拷贝war文件到Tomcat下的特定目录即可。

上述两种部署方式的详细步骤请到搜索引擎寻找答案。

7 Git和GitHub

推荐资源:廖雪峰的Git教程,GitHub官网,慕课网、极客学院等网站上的视频课程。

既然要做项目,为什么不把它发布在GitHub上。当你熟悉了Git指令之后,你可以很方便地发布你项目中的每一次更新,并且同步到GitHub上,这样既可以让你更好地管理项目版本,又可以让你GitHub更加活跃,为你未来的面试加分。

所以,赶紧学好Git指令,然后开启你的项目之旅吧。

04

其他常用组件

除了上面几种必备的技术之外,有时候我们在项目中还会用到其他东西,在这里我们把它们叫做组件。这里只做简单的介绍,至于具体怎么使用,在网上都可以很容易地找到相关文章。

1 日志系统

当项目代码比较多的时候,容易发生错误,日志可以很好地记录代码运行时的错误,常用的日志系统有log4j,logging等等,另外你还需要了解一下slf4j。

2 单元测试

日志系统可以记录代码问题,单元测试则是为了避免代码出错,常用的单元测试组件主要是JUnit,建议你找个文档看一看,然后下载下来玩一下。

3 JSON

JSON逐渐成为前后端数据交互的标准格式,为了在项目中使用JSON的API,你也需要导入它的jar包,一般我们都会使用阿里提供的fastjson,赶快下载来玩一玩吧。

当然,常用的Java Web组件还有很多,比如HTTPClient,再比如一些加密工具,一些压缩工具等等,这里就不再一一列举了。

05

推荐项目课程

现在网上的项目课程那么多,哪一款更适合你呢?

其实我看过的视频课程也不是很多,早先在慕课网和极客学院看过一些项目课程,觉得比较一般,对新手来说不太友好。

我的一些同学看过一些培训机构的课程,专业讲师录的项目课程可能会稍微好一点。在我公众号后台回复“Java”可以领取某机构的视频课程,不过我不是打广告的,这个机构也没有给我钱啦。

当然,我最推荐的还是牛客网的视频课程,分别是Java中级项目课和Java高级项目课。主要有几点原因吧:

1 叶神讲课,比较了解同学们的情况,而且技术功底摆在那里没的说。 2 所做的项目比较接地气,用的技术栈也比较新,比较全。 3 我自己全程跟着牛客网的项目课做了一遍,感觉确实有收获,而且每个章节的安排也比较合理。 4 配套有PPT,项目代码以及部分安装包,可以让你省去很多繁琐的环节。

看来我真是牛客网的真爱粉,居然帮牛客网免费推广~

当然,你也可以自己去找一些你感兴趣的项目课程,后续我也会收集更多的视频课程来分享给大家。

PS:如果找不到我说的这些资源,也可以微信私我。老规矩,公众号后台回复“少侠”可以勾搭作者。

06

总结

今天的内容就到这里了,与其说是初级篇,反而更像是“项目篇”呢。因为学完基础内容之后,做项目是最好的复习和实践方式了。所以这篇文章围绕着做项目来展开,也就不足为奇了。

今天我们主要讲的是,做好一个JavaWeb项目,需要哪些知识储备,需要了解哪些技术,并且我也推荐一些比较精品的视频课程。

后面我还会写一篇文章,专门讲一讲怎么做项目,会更加详细,更加侧重怎么去做,敬请期待吧。

总结以下今天说的几个要点吧:

1 Java基础知识储备 2 前端知识储备 3 了解和使用JavaWeb常用技术 4 JavaWeb常用组件介绍 5 视频课程推荐

俗话说的好,磨刀不误砍柴工,相信你看了本文之后,可以更好地做好知识储备,然后开始Java Web的项目实践,希望你能够顺利地完成你的第一个项目。

— END —

▼更多精彩内容

想了解Java后端学习路线?你只需要这一张图! Java工程师修炼之路(校招总结) 你不可错过的Java学习资源清单 Java基础知识点总结 Java秋招面经大合集

笔者在今年秋招中成功拿到BAT头条网易等大厂的研发offer,期间总结了很多经验和技巧,我把它们写成文字,做成专题,发表在公众号上,希望让更多有需要的朋友看到。

关注公众号【程序员江湖】后,可以在后台回复“Java”即可领取精品Java学习资源(不断更新中),学习资源包括基础,实战以及求职等内容。

1、后台回复“少侠”,可以获取我的微信,有什么问题都能聊。 2、如果你想要加入微信交流群,那么可以在后台回复“江湖”。 3、如果你想要到我的技术博客看更多的Java后端技术文章,请回复“练级”。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
四种软件架构,看看你属于哪个层次
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。
DevOps时代
2019/05/17
1.6K0
四种软件架构,看看你属于哪个层次
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
🐯 大家好,我是猫头虎!在这个技术快速发展的时代,软件架构的演进无疑扮演着关键角色,尤其是对我们软件开发者来说。如何选择合适的软件架构,如何权衡其优缺点,无疑是我们每个开发者都要面临的问题。今天,我将深入探讨四种主流的软件架构:单体架构、分布式应用、微服务架构以及Serverless架构。我们将一起探讨它们的核心思想、优劣势以及典型的应用场景,帮助大家更精准地定位到适合自己项目的架构模型。希望这篇博客能够在你的技术道路上点亮一盏指路灯,并为你在软件架构的道路上披荆斩棘!💻🚀
猫头虎
2024/04/09
6.9K0
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
云原生架构-架构师之路(十九)
云原生架构 基于云原生技术,指将 云应用中的非业务代码部分进行最大化的剥离,让 云设施接管项目中大量非功能特性(如弹性、韧性、安全、可观测性和灰度等)。把质量属性 和 业务功能完全分离,我们自己的公司只关注业务代码,至于质量属性交给云。
用户9919783
2023/09/05
2.2K0
云原生架构-架构师之路(十九)
服务架构的演进之路:从单体应用到Serverless
随着时间的推移和技术的进步,软件架构经历了从单体应用、面向服务架构(SOA)、微服务架构到Serverless架构的演变。每一步的演进都是为了更好地应对日益增长的业务需求和用户基数。接下来,我们将一起回顾这段旅程,看看每个阶段是如何推动技术的发展的。
井九
2024/10/12
2440
迈向云原生:名企FreeWheel应用架构演进
👆点击“博文视点Broadview”,获取更多书讯 FreeWheel是美国传媒巨头康卡斯特(Comcast)集团旗下的高端视频广告技术供应商,90%以上的美国主流电视媒体和运营商都在使用FreeWheel的广告平台和技术。本文将带你了解名企FreeWheel核心业务系统研发团队将单体应用改造成云原生微服务应用的演进之路。 01 何为云原生应用 2010年,WSO2的创始人Paul Fremantle提出了云原生(Cloud native)一词。经历了10多年的发展和技术变革,云原生的定义和内涵都有了很
博文视点Broadview
2023/04/19
3770
迈向云原生:名企FreeWheel应用架构演进
云原生架构总览
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波
山河已无恙
2023/03/02
2.7K0
云原生架构总览
浅谈5 种典型的云原生架构反模式
反模式是随着项目的推进演变而来的,主要的原因,如重大需求调整,但架构没有对应的变化,性能和安全需求对当前架构的硬性改变,团队或组织强行调整技术等。本文将为大家讲解云原生架构中常见的反模式。
CNCF
2021/07/30
4830
浅谈5 种典型的云原生架构反模式
猫头虎分享: 探索软件系统架构的革新之路
在这篇博客中,我们将深入探讨软件系统架构的发展与革新。从单体应用到微服务,再到云原生架构,每一步都标志着技术的进步和思维的转变。对于软件工程师、架构师以及技术爱好者而言,这篇文章将提供关键的知识点和技术细节,帮助理解和把握架构设计的脉络。涵盖了微服务、容器化、DevOps、云计算等多个关键词,本文将是你理解软件架构演变的完美指南。
猫头虎
2024/04/07
1680
猫头虎分享: 探索软件系统架构的革新之路
微服务系统架构
回忆一下微服务架构是如何进化产生的,最早出现的是单体应用架构,后来为了具备一定的扩展和可靠性,就有了垂直拆分架构,也就是加了个负载均衡,而到现在的微服务架构则是进一步在探讨一个应用系统该如何设计才能够更好的开发、管理更加灵活高效。
GreatSQL社区
2023/02/24
3640
Serverless架构:用服务代替服务器
还记得在十多年前,SaaS鼻祖SalesForce喊出的口号『No Software』吗?SalesForce在这个口号声中开创了SaaS行业,并成为当今市值520亿美元的SaaS之王。今天谈谈『No Server』有关的事, 继OpenStack、Docker 、MiscroService、Unikernel、Kubernetes和Mesos之后,ServerLess正成为Google、AWS乃至创业公司暗战的新战场,它能否成为云计算领域的颠覆性趋势? 我相信大家也会存在一些疑问: Serverless到
yuanyi928
2018/04/02
3.8K0
Serverless架构:用服务代替服务器
微服务系统架构
回忆一下微服务架构是如何进化产生的,最早出现的是单体应用架构,后来为了具备一定的扩展和可靠性,就有了垂直拆分架构,也就是加了个负载均衡,而到现在的微服务架构则是进一步在探讨一个应用系统该如何设计才能够更好的开发、管理更加灵活高效。
GreatSQL社区
2022/05/30
2400
《前端Serverless:面向全栈的无服务架构实战》-- 1.Serverless综述(笔记)
IaaS:Infrastructure as a Service,基础设施即服务。
爱学习的程序媛
2022/10/27
8980
《前端Serverless:面向全栈的无服务架构实战》-- 1.Serverless综述(笔记)
系统架构演变:SOA、微服务架构的区别和联系
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/08
1.5K0
云计算进化进行时,Serverless会成为终极形态吗?丨科技云·视角
继OpenStack、Docker、MiscroService、Unikernel、Kubernetes和Mesos之后,Serverless正成为Google、Amazon乃至创业公司暗战的新战场。
科技云报道
2022/04/14
2920
云计算进化进行时,Serverless会成为终极形态吗?丨科技云·视角
一次吃透Serverless技术:Serverless的模式+技术前景,终生受益
回顾软件技术发展的历史,我们会发现“抽象、分解、集成、复用”的主题贯穿始终,行业的每一次更新换代都伴随着更高程度的软件服务模式的抽象,并随之引起IT行业的商业模式革新。
愿天堂没有BUG
2022/10/28
5670
一次吃透Serverless技术:Serverless的模式+技术前景,终生受益
3.5 架构管理
多种因素驱动着技术架构复杂性不断增大,要做好运维管理难度将呈指数增大。在运维过程中,运维需要持续推进架构的优化,比如应用与数据库在服务器层面分离,利用集群部署方式提升并发能力,数据库读写分离提升数据库性能,反向代理及CDN加速提升前端访问速度,拆分业务或数据库提升性能,同步改异步方式提升并发能力,有损服务与降级提升故障恢复能力等。发挥运维核心价值,不仅要保障基础设施层面的高可用,还要不断向业务侧深入,加强软件架构管理能力。同时,架构是运维数字世界的骨架,沉淀了团队众多专家的经验,是一项核心资产,需要在运维侧建立架构管理的工作机制,沉淀架构资产,达到持续提升业务连续性、加快软件交付速度、提高服务质量、提升客户体验的运维价值创造。
彭华盛
2021/07/28
1K0
2020:我们处在一个什么样的技术浪潮当中?
在软件架构领域,经历了从单体应用到 SOA 再到微服务; 在云计算领域,经历了从虚拟机到容器; 在数据库领域,从关系数据库到 NoSQL 再到 NewSQL; 在大数据领域,从批处理到流处理; 在运维领域,从手工运维到 DevOps、AIOps; 在前端领域,从 jQuery 到 React 等三大框架; …… 除此之外,还有一些新兴的领域如 AI、区块链等等,开启了一波又一波的风口。
一个会写诗的程序员
2019/08/20
9110
微服务和 Serverless 如何强强联合?
导语 | 微服务与 Serverless 被不少开发者称为“天作之合”,在当前的微服务体系中,Serverless 的定位是什么?Serverless 在微服务分布式应用中又是如何落地的?本文由腾讯云微服务产品中心技术总监 韩欣 在 Techo TVP 开发者峰会 ServerlessDays China 2021上的演讲《腾讯云微服务在 Serverless 的探索实践》整理而成,向大家分享团队中 Serverless 技术在实际开发过程与用户场景中的落地与思考。 点击可观看精彩演讲视频 一、
腾讯云开发者
2021/07/15
2.6K0
应用技术架构 —— 无服务器架构
2012 年,iron.io 首次提出 Serverless 概念。2014 年,AWS 发布 Lambda 开启 Serverless 商业化时代,AWS Lambda,最早被大众所认可的 Serverless 实现。随后各大云厂商争相推出自己的 Serverless 服务、框架或工具。
学习中心
2023/03/22
2.9K0
(译)无服务器架构
无服务器运算,或者简单说无服务器,是软件架构界的一个新热点。三大云——亚马逊、谷歌以及微软都在无服务器方面下了重注,我们会看到很多的书籍、开源项目、会议以及软件供应商,都不约而同的关注这一主题。但是什么是无服务器?是否值得重视?为什么值得重视?本文中我希望能在这一问题方面给读者一些启迪。
崔秀龙
2019/07/23
3.4K0
(译)无服务器架构
推荐阅读
相关推荐
四种软件架构,看看你属于哪个层次
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档