这些Java基础知识,诸佬们都还记得嘛(学习,复习,面试都可)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

  1. $ 将不会将传入的值进行预编译select * from user where name=${name},比如我传一个xiaowei,那么传过来就是 select * from user where name = xiaowei;

  2. #的优势就在于它能很大程度的防止sql注入,而 $ 则不行。比如:用户进行一个登录操作,后台sql验证式样的:select * from user where username=#{name} and password = #{pwd},如果前台传来的用户名是“xiaoweihaoshuai”,密码是 “1 or 1=1”,用#的方式就不会出现sql注入,而如果换成$方式,sql语句就变成了 select * from user where username=wang and password = 1 or 1=1。这样的话就形成了sql注入。

    在这里插入图片描述

🍷Mysql的四大特性

===========================================================================

Atomicity(原子性):一个事务(transaction)中的所有操作,要么全部做完,要么全部不做,不会在中间某个环节结束。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

Isolation(隔离性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读已提交(read committed)、可重复读(repeatable read)和串行(Serializable)

Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

在这里插入图片描述

🍹Linux常见的命令了解哪些

===============================================================================

目录切换:cd

目录查看:ls

创建目录:mkdir

删除目录或文件:rm -rf

拷贝目录:cp

新建文件:touch

修改文件:vi

查找命令: grep,find

让普通用户临时使用root权限,只需输入自己账户的密码:sudo

查看当前目录路径:pwd

查看进程:ps -ef

结束进程:kill -9 pid(-9 强制;pid:进程号)

切换用户:su

修改文件权限:chmod

在这里插入图片描述

🥫HTTP和HTTPS的区别

==============================================================================

HTTP协议以明文方式发送内容,不提供任何方式的数据加密。HTTP协议不适合传输一些敏感信息。而https则是具有安全性的ssl加密传输协议。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

🧉OSI模型有几层,分别是什么

===============================================================================

OSI模型分为7层。

由最低层到高层依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

🍺Get和Post有什么区别

==============================================================================

相同点:GET 和 POST属于OSI七层模型中的传输层,都是shttp请求方式, 底层都是 TCP/IP协议。

首先,get是从服务器上获取资源,而post方式是向服务器提交数据

第二,get方式隐私性,安全性较差,这是由于get的参数会放到url的后面,get是把参数数据列加到提交表单的属性所指的url中,值和表单内各个字段一一对应,以name=value的方式,添加到前端界面action所指的url后面,并且用"?"进行连接,各个变量之间以“&”符号连接;而post方式是将表单中的数据放到Http协议中的请求头或消息体中。

第三,Get传输数据会受到URL的长度限制,而Post可以传输大量的数据,比如上传文件等。

get请求会被保存在浏览器历史记录当中,post不会。get请求可以被收藏为书签,因为参数就是url中,但post不能。它的参数不在url中

使用get方式时,数据会显示在地址栏上。

在这里插入图片描述

🥂三次握手和四次挥手

==========================================================================

这个知识点之前有详细记录过,点击此处传送😉😉

☕SpringMVC的工作流程

==============================================================================

在这里插入图片描述

  1. 前端发送请求被前端控制器DispatcherServlet拦截

  2. 前端控制器调用处理器映射器HandlerMapping对请求URL进行解析,解析之后返回调用给前端控制器

  3. 前端控制器调用处理器适配器处理调用链

  4. 处理器适配器基于反射通过适配器设计模式完成处理器(控制器)的调用处理用户请求

  5. 处理器适配器将控制器返回的视图和数据信息封装成ModelAndView响应给前端控制器

  6. 前端控制器调用视图解析器ViewResolver对ModelAndView进行解析,将解析结果(视图资源和数据)响应给前端控制器

  7. 前端控制器调用视图view组件将数据进行渲染,将渲染结果(静态视图)响应给前端控制器

  8. 前端控制器响应用户请求

组件说明

DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,组件的调用由它统一调度。

HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应的后端处理器 Handler。也就是说它知道处理用户请求的后端处理器,但是它并不执行后端处理器,而是将处理器告诉给中央处理器。

HandlerAdapter:处理器适配器,它调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象。

ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP)。

Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的Controller 类。

在这里插入图片描述

🍸Redis的RDB和AOF文件

================================================================================

可以参考之前写的Redis相关知识点,点击此处传送

RDB和AOF都有各种的优缺点,如果对数据安全性要求高,在实际开发中往往会结合两者来使用。

持久化方式:

RDB定时对整个内存做快照;而AOF记录每一次执行的命令

数据完整性:

RDB不完整,两次备份之间会丢失数据;AOF相对完整,取决于刷盘策略;

文件大小:

RDB会有压缩,文件体积小;而AOF记录命令,文件体积很大

宕机恢复速度:RDB很快;而AOF慢,因为要执行一遍命令;

数据恢复优先级:

RDB低,因为数据完整性不如AOF,AOF高,因为数据完整性更高。

系统资源占用:

RDB占用高,大量CPU和内存消耗;而AOF占用低,主要是磁盘IO资源,但AOF重写时会占用大量CPU和内存资源

使用场景:

RDB在可以容忍几分钟的数据丢失,追求更快的启动速度时使用比较合适;

AOF主要在对数据安全性要求较高时比较常见。

在这里插入图片描述

🍶算法题全排列

=======================================================================

面试中问到了一道经典的算法题,经典的回溯题案例,想学习的朋友们往下试着写写哟。

题目:

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]

输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]

输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]

输出:[[1]]

最后

关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:

  • Java基础部分

  • 算法与编程

  • 数据库部分

  • 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)

这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。**

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-0sfuwuB1-1713364787478)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值