自学java细节篇

叶子创业记

共 2937字,需浏览 6分钟

 · 2021-04-06

    这篇文章也是我以前总结的自学java细节篇文章,由于消息队列,集群之类的东西没有总结出来,所以我一直放到后台,而且我现在已经没有时间写技术类文章了。

   接下来我分享下自己曾经自学java的细节。这些细节将对比当下网络中最火的后端学习路线,不断地进行填充。如下图所示



12b76c2a3eed6d8070220ec5cc54e17d.webp


计算机基础课


    在自学java的前一个月里面,我自学了计算机专业的三门课程,计算机网络操作系统数据结构。对于刚入门的小白,计算机网络是最值得学习的,通过计算机网络的学习,我们将了解到我们的请求是如何从客户端发送出去,如何通过网络中各个节点转发,最终到达服务器,然后服务器又是如何将数据返回给我们客户端的。我们会大概了解到HTTP协议,TCP/IP协议,以太网协议,DNS协议等这些由牛人们提前创建下的数据收发规则。关于计算机网络,我从HTTP协议入手写了一篇文章,并且自己用思科的packet tracer软件,构建了一个网络拓扑,录制了一个视频,动态演示了一次HTTP请求中,数据包转发的详细过程,文章链接如下。


互联网协议简析及java中HTTP协议的实战


java基础及数据库


    接下来图中显示的是前端的知识,这不符合网络上各种教程的习惯,所以先跳过,我们直接选择一门编程语言,那就是java,第一步当然是配置JDK环境变量,让自己的电脑拥有java最基本的类库,然后输入自己的第一个hello world。这个过程最好通过自己百度完成,网络上有成千上万篇教人配置JDK的博客,最好可以自己去oracle官网下载JDK1.8版本,实在下载不下来还想坚持的,可以到群里找我要链接。如果你靠自己完成了以上这些步骤,那么你接下来碰到什么问题,基本可以自我驱动了。然后开始学习基本数据类型,运算符,字符串,流程控制语句,数组。接着是类与对象,方法与接口的概念,然后是继承,封装,多态,jar包管理,第三方类的导入。之后开始学习集合和泛型,接着学习异常处理(到这里其实就差不多了,后边两个后来用到再补),最后是IO数据流与多线程。之后大概率,你会开始学习JDBC,java数据库连接。此时你大概需要深入理解两个东西,第一种是API(应用程序接口),其实前边你学的那些无处不在用这种思想。第二种是数据库,应为你开始使用java操作数据库了,这也证明你将要开始下一个征程。以下为我一开始写的例子,如何理解API,以及什么是数据库,大概过一遍,不要死磕。


什么是API

到底什么是关系型数据库及关系到底是啥

关系型数据库之三大范式


    数据库的学习最好是在B站上百度一个比较火的教程,开始学习简单的sql语句,也就是结构化查询语句,工作中十分常用,所以对于这一方面不可偷懒,勤加练习。之后你就可以结合所学的数据库知识,学习JDBC了。sql语句的练习可以百度动力节点sql练习题,这里面的习题反复做几遍,应付日常工作绰绰有余。



web服务


    现在你拥有了使用java操作数据库的能力。那么你想要通过浏览器访问你的java应用程序,就需要学习WebSockets,配合之前学习的计算机网络知识,理解IP地址+端口号的含义,然后需要学习web应用服务器(一般是tomcat),这东西可以让你的java程序处于运行状态,同时学习servlet,用来与tomcat进行交互。这些学完,你就可以用浏览器与你的java应用通信了。结合之前学习的数据库知识,你就可以从浏览器端通过java应用程序将数据库中的数据取出来,再抛给浏览器。


前端学习


    接下来你需要将数据在浏览器上展示出来。你需要学习一些网页布局知识了,那就是HTML,CSS,然后你需要动态操作网页,动态操作数据,那么就需要学习JavaScript语言,之后你需要调用别人写好的js库,那么就需要学习点jQuery。如果你想要使网页局部数据发生改变,而不影响其他部分,就需要学习Ajax。这些都是前端用到的知识,不过你要想做出简单的页面,必须学习一点。学完以上知识,你可以搭建一些小型的管理系统了,基本都是些数据表格,可以进行一些简单的增删改查。


ORM框架,spring,maven


    然后你需要学习OR Map框架了,用来简化JDBC的繁杂操作(国内大多数使用mybatis)。接着学习spring,简化整个java应用之间的调用流程,减少大批重复代码,并且减少对象创建次数。之后学习springmvc,简化控制层代码,不再去配置servlet,不再用过多的if else 去分发不同的调用请求。接着应该学习maven,管理jar包,学会配置pom文件(初期的手动导包过程可能在如今已经没有教的了,maven的学习应该会早于orm框架,不过在这期间肯定会遇到)。



缓存


    然后开始学习Nosql数据库,一般从Redis开始。使用redis,大多数时候是组装key的过程。然后多了解一些redis的使用场景,练习几个demo。以下是我自己写的入门级实操练习。


redisTemplate的实操演练


springboot及微服务


    接着学习springboot,这个东西只需要在网上照片文章大概配置一次,就知道怎么回事了,然后在以后地学习中不断地练习他,熟悉他,最终就会和你曾经学习的知识全部绑定到一起。接下来学习spring cloud微服务,按照网上的一篇教你从零搭建微服务,整个流程搞下来,你就大概知道怎么回事了。



权限系统


    我们写出来的后端接口,并不是所有人都有权限访问的,根据人员角色的不同,访问接口的权限会不一样。这个时候就需要权限框架来帮助我们解决了,毕竟手写一个权限框架是十分耗费时间的,直接集成现有的就很方便。


任何人都能懂的shiro权限控制实战篇



linux系统


    后来到了拔高期,我需要开始学习各种技术的原理,但是发现任何原理基本上都离不开操作系统这个东西,因此我开始学习linux系统,因为我们后端服务大多数时候都跑在linux系统服务器上,大多数软件的编写基础都会涉及到操作系统的IO模型。以下是我对于linux系统的一些总结,不过还没有总结完,我已经离开这个行业了。


自学程序--快速学习linux之虚拟文件系统

自学程序---快速学习linux之内存管理

自学程序---快速学习linux之中断

自学程序---快速学习linux之文件描述符

自学程序---快速学习linux之从linux看网络IO

自学程序---快速学习linux之IO多路复用器

自学程序---快速学习linux之java版linux内存淘汰算法LRU

JVM原理   


    我们的java语言是跑在java虚拟机上边的,因此我当时觉得学习JVM原理很有必要,因此就把深入理解JVM总结了一边。以下是我对JVM原理的简单总结,由于自己能力有限,所以文章最终以导读的形式出现。


深入理解JVM导读一

深入理解JVM导读二

简单算法


    虽然我们知道,大部分程序员工作中并用不到什么算法,但是面试的时候,我们总是会碰到这些东西,普通程序员面试常见的算法通过下面的视频就可以形象的展现出来




浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报