小白初学Java不知从何下手,全面梳理Java学习路线

Java (39) 2024-01-22 19:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说小白初学Java不知从何下手,全面梳理Java学习路线,希望能够帮助你!!!。

最近有些网友问我,怎么样能学好Java开发,有些人还是想转行做开发的零基础小白。但都不太了解Java究竟需要学什么,究竟要从哪里学起,哪些是主流的Java技术等等,导致想学,但又很迷茫,不知所措,无从下手。

今天,小编就来给大家分享一些值得参考的指点和建议,帮助你少走弯路。

小白初学Java不知从何下手,全面梳理Java学习路线_https://bianchenghao6.com/blog_Java_第1张

1、Java基础

Java是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的oop 特性:封装、继承、多态。此外还有泛型、反射的特性,很多框架的技术都依赖它,比如Spring核心的Ioc和AOP,都用到了反射,而且Java自身的动态代理也是利用反射实现的。

此外还有Java一些标准库也是非常常见,比如集合、I/O、并发,几乎在Web开发中无处不在,也是面试经常会被问到的,所以在学习Java后端之前,不妨先打好这些基础。

另外还有Java8的一些新特性,也要重点关注,比如Lambda表达式、集合的Stream流操作、全新的DateAPI等等。

关于书籍推荐,千锋广州Java培训的老师是不建议初学者一开始就拿着「Java编程思想」啃的。因为对于一点的面向对象语言编程的基础,而这本书又写得太博大精深了,在当时的我来说,完全是天书。但是它仍然是Java界的圣经,每读一次都有所收获。千锋广州Java培训的老师在这里推荐你们一开始先看「Java 核心技术」,这本书讲得比较通俗易懂,初学者比较能接受。

2、数据库

关于SQL方面:SQL教程、MySQL教程

可以了解了一些基础语法之后,就直接跟着视频的老师做一些表操作实战练习了,比如单表查询、多表查询等。建议学sql切勿眼高手低,需多加练习,不要只看懂了就行,因为工作中写得一手简练的sql是非常重要的。

在这里千锋广州Java培训的老师说下我在项目一直秉承着sql语句是能避免多表查询就避免多表查询,能够分开多条语句就分开多条语句,因为这里涉及到多表查询性能和数据库扩展的问题。

关于JDBC方面:JDBC 教程、JDBC获取连接对象源码分析

你需要弄懂JDBCAPI的用法,其实它只是一组规范接口,所有数据库驱动只要实现了 JDBC,那么我们就可以通过标准的API调用相应的驱动,完全不用知道驱动是怎么实现的,这就是面向接口编程的好处。

而且对于JDBC可以直接看视频去理解,跟着视频做了一个基于Apache Dbutils工具做了一个具有事务性的小工具,特意用思维导图总结了一下:

小白初学Java不知从何下手,全面梳理Java学习路线_https://bianchenghao6.com/blog_Java_第2张

jdbc-utils源码地址:jdbc-utils

3、Web 基础

曾经开源中国创始人红薯写了一篇文章「初学JavaWeb开发,请远离各种框架,从 Servlet开发」,我觉得他说的太对了,在如今Java开发中,很多开发者只知道怎么使用框架,但根本不懂Web的一些知识点,其实框架很多,但都基本是一个套路,所以在你学习任何框架前,请把Web基础打好,把Web基础打好了,看框架真的是如鱼得水。

关于Http协议这部分内容比较简单搜集一些相关资料就能学会,不赘述。

关于Web基础这方面数据推荐,我当时是看的是「Tomcat与JavaWeb开发技术详解」,很详细地讲解了整个JavaWeb开发的技术知识点。但现在看来,我觉得里面讲的有一些技术确实有点老旧了,不过可以了解一下JavaWeb 开发的历史也是不错的。

关于 JSP,你只要了解它其实就是一个 Servlet 就行了。关于它的一些标签用法,可以直接忽略,因为现在互联网几乎没哪间公司还用JSP,除了一些老旧的项目。现在都是流行前后端分离,单页应用,后端只做API接口的时代了,所以时间宝贵,把这些时间重点放在Servlet规范上面吧。

关于Tomcat,它是一个Web容器,我们写的后端项目都要部署到Web容器才能运行,它其实是一个遵循 Http,通过 Socket 通信与客户端进行交互的服务端程序:Tomcat结构及处理请求过程。

推荐书籍:Tomcat 与JavaWeb 开发技术详解

4、Web 主流框架

JavaWeb框架多如牛毛,等你有一定经验了,你也可以写一个Web框架,网上很多说 Spring、Struts2、Hibernate 是Java三架马车。

千锋广州Java培训老师只想说,那是很久远的事情了,严重不推荐 Struts2、Hibernate,一开始只需要上手Spring、SpringMVC、Mybatis 就可以了,特别是Spring框架,其实 Spring家族的框架都是很不错的。

但是提醒一点就是,千万不要沉迷于各种框架不能自拔,以会多种用法而沾沾自喜,导致知其然而不知其所以然。

Spring其核心思想就是IOC和AOP:

谈谈对Spring IOC的理解

Spring面向切面编程

SpringMVC它的思想是全部请求统一用一个Servlet去做请求转发与控制,这个 Servlet叫DispatcherServlet

Mybatis它可实现动态拼装sql,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集

5、Web框架进阶

使用了SSM框架后,你会觉得框架也不过这么回事,如果你对Spring有过大概了解,你也会产生想写一个「山寨版」Spring的心思了,一个轻量级Web框架主要具备以下功能:

可读取用户自定义配置文件,并以此来初始化框架;

具备 Bean 容器,管理项目的类的对象生命周期;

具备依赖注入,降低类之间的耦合性;

具备AOP功能,使项目可进行横向编程,可不改变原有代码的情况增加业务逻辑;

具备MVC框架模式。

其实除了SSM之外,Web框架可谓是百家齐放,其中以Spring全家桶最为耀眼,在这里我极力推荐两个Spring家族框架:SpringBoot和SpringCloud。

SpringBoot弥补了Spring配置上的缺点,再也不用为繁杂的xml费劲精力了,堪称是Java后端开发的颠覆者,推荐书籍「Java EE开发的颠覆者:SpringBoot实战」

SpringCloud是一个微服务架构,能够将项目按照业务分成一个个微服务,每个微服务都可独立部署,服务之间互相协调。

当一个项目越来越大时,随之而来的是越来越难以维护,此时将项目拆分成若干个微服务、单独维护、单独部署,也可以降低项目不同业务间的耦合度。

推荐书籍「Spring Cloud 与 Docker 微服务架构实战」,这本书将 Docker 与微服务完美地结合在一起,堪称完美!

6、其它技术

Redis:一个高性能的key-value数据库,当有并发量很高的请求时,将数据缓存在 Redis 中,将提高服务器的响应性能,大大减轻数据库的压力。

Git:世界上最先进的分布式版本控制系统,建议所有初学者从命令行开始使用Git!

Maven:一个用于构建项目的工具,将项目间的依赖通过xml完美地组织到一起,可通过编译插件将项目编译成字节码文件。还有类似的Gradle也是不错的选择。

maven的pom.xml文件详解

Linux:至少要求常用的命令会用,能够在linux环境下部署项目。

最全的SSH连接远程终端教程

Docker:简直是项目部署神器啊,来不及解释了,推荐书籍「Docker 技术入门与实战」,中国首部Docker著作!

7、开发工具

工欲善其事,必先利其器,以下是我推荐的一些开发工具:

Intellij IDEA:Java 开发最好的IDE,这个是公认的,我一开始是用Eclipse 的,后来用了Intellij IDEA,才发现Eclipse就是一坨屎,所以我以过来人劝你们不要使用Eclipse,直接Intellij IDEA!

小白初学Java不知从何下手,全面梳理Java学习路线_https://bianchenghao6.com/blog_Java_第3张

Iterm2:macOS最好用的终端!

Chrome:人生苦短,请用Chrome,来不及解释了,快上车!

Postman:很好用的一个接口调试工具。

要有进取心,要有拼搏的精神,要耐得住寂寞,经过多方理论与实践相结合,快速成为高薪程序员根本不是事儿。

当你在学习编程时走入误区后或思路打不开时,你可以尝试寻求专业的帮助,用最快的时间,实现最优的效果,比如全面系统的学习一下,相信你会不大不同的收获。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复