26届JAVA 学习日记——Day14

news2024/11/22 11:08:23

2024.11.21周四
今天仍然在补充基础知识,项目进度较慢,明天再回顾一下Java8的新特性。

八股

操作系统

什么是缓冲区溢出?

缓冲区溢出是一种常见的计算机安全漏洞,它发生在程序试图将过多的数据写入缓冲区(即一块用于临时存储数据的内存区域)时。缓冲区有固定的大小,如果写操作超出其边界,就会覆盖邻近内存区域的数据,这可能导致不可预测的行为,包括程序崩溃或更严重的安全漏洞。

计算机网络

计算机网络各层有哪些协议?

在这里插入图片描述

OSI七层模型:

国际标准化组织制定了开放式系统互联通信参考模型(Open System Interconnection Reference Model),也就是 OSI 网络模型,该模型主要有 7 层,分别是应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层。

  • 应用层,负责给应用程序提供统一的接口;(浏览器、电子邮箱客户端)
  • 表示层,负责将数据转换称兼容另一个系统能识别的格式;
  • 会话层,负责建立、管理和终止表示层实体之间的通信会话;
  • 传输层,负责端到端的数据传输;(TCP、UDP)
  • 网络层,负责数据的路由、转发、分片;(IP、路由器、三层交换机)
  • 数据链路层,负责数据的封帧和差错检测,以及MAC寻址;(网络交换机)
  • 物理层,负责在物理网络中传输数据帧;(电缆、光纤、无线电频率)

TCP/IP模型

事实上,我们比较常见,也比较实用的是四层模型,即TCP/IP 网络模型,Linux 系统正是按照这套网络模型来实现网络协议栈的。
TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。TCP/IP协议簇并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。
TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层
在这里插入图片描述

  • 应用层,支持HTTP、SMTP等最终用户进程
  • 传输层,处理主机到主机的通信(TCP、UDP)
  • 网络层,寻址和路由数据包(IP)
  • 网络接口层,通过网络的物理电线、电缆或无线信道移动比特
TCP和UDP协议的区别?
  • 连接:TCP是面向连接的传输层协议,传输数据前要先建立连接;UDP是不需要连接,即刻传输数据。
  • 服务对象:TCP是一对一的两点服务,即一条连接只有两个端点;UDP支持一对一、一对多、多对多的交互通信。
  • 可靠性:TCP是可靠交付数据的,数据可以无差错、不丢失、不重复,按序到达;UDP是尽最大努力交付,不保证可靠交付数据。但是我们可以基于UDP传输协议实现一个可靠的传输协议,比如QUIC协议。
  • 拥塞控制、流量控制:TCP有拥塞控制和流量控制机制,保证数据传输的安全性;UDP则没有,即使网络非常拥堵,也不会影响UDP的发送速率。
  • 首部开销:TCP首部长度较长,会有一定的开销,首部在没有使用「选项」字段是 20 个字节,如果使用「选项」字段则会变长。UDP首部只有8个字节,并且是固定不变的,开销较小。
  • 传输方式:TCP是流式传输,没有边界,但保证顺序和可靠;UDP是一个包一个包的发送,是有边界的,但可能会丢包和乱序。
TCP为什么需要三次握手和四次挥手?

TCP为什么需要三次握手建立连接

  • 三次握手才能 阻止重复历史连接的初始化(主要原因)
  • 三次握手才能 同步双方的初始序列号
  • 三次握手才能 避免资源浪费
    在这里插入图片描述

为什么 TCP 需要四次挥手关闭连接:

服务器收到客户端的 FIN 报文时,内核会马上回一个 ACK 应答报文,但是服务端应用程序可能还有数据要发送,所以并不能马上发送 FIN报文,而是将发送 FIN 报文的控制权交给服务端应用程序。
在这里插入图片描述

HTTP和HTTPS协议的区别?
  • HTTP是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS则解决HTTP不安全的缺陷,在TCP和HTTP网络层之间加入SSL/TLS安全协议,使得报文能够加密传输。
  • HTTP连接建立相对简单,TCP三次握手之后便可进行HTTP的报文传输。而HTTPS在TCP三次握手之后,还需进行SSL/TLS的握手过程,才可进入加密报文传输。
  • 两者的默认端口不一样,HTTP默认端口是80,HTTPS默认端口号是443。
  • HTTPS协议需要向CA(证书权威机构)申请数字整数,来保证服务器的身份是可信的。

算法

今日暂无该内容学习。

项目

苍穹外卖
在这里插入图片描述
项目过程中解决的一些问题:
BeanUtils.copyProperties()
BeanUtil是Spring框架中的实体相关工具类,其包位置是package org.springframework.beans,在开发过程中发现OrdersVO需要承载的许多成员变量都来自Orders,当时我以为这个方法只能将同名的方法传递到该类中,因此花了很多时间去和接口文档中的参数对比找新的实体类。

但是实际上该方法具有以下特性:

  • 如果OrderVO继承自 Orders,则 BeanUtils.copyProperties 也会复制父类 Orders 的属性。
  • 有一个ignore的参数,能选择性将某些变量的复制取消(如主键id)。

接口文档参数:
在这里插入图片描述
OrderVO:

package com.sky.vo;

import com.sky.entity.OrderDetail;
import com.sky.entity.Orders;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class OrderVO extends Orders implements Serializable {

    //订单菜品信息
    private String orderDishes;

    //订单详情
    private List<OrderDetail> orderDetailList;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2245282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Element UI 组件库详解【Vue】

文章目录 一、引言二、安装并使用1. 安装2. 使用 三、常见组件说明1. 基础组件2. 布局组件3. 布局容器4. 选择框组件5. 输入框组件6. 下拉框组件7. 日期选择器8. 上传组件9. 表单组件10. 警告组件11. 提示组件12. 表格组件 一、引言 官方网站&#xff0c;element.eleme.cn El…

【腾讯云产品最佳实践】腾讯云CVM入门技术与实践:通过腾讯云快速构建云上应用

目录 前言 什么是腾讯云CVM&#xff1f; 腾讯云CVM的技术优势 基于最佳技术实践&#xff0c;使用腾讯云CVM搭建应用 1. 开通CVM实例 2. 连接CVM实例 3. 配置Web环境 4. 部署PHP应用 腾讯云CVM行业应用案例&#xff1a;电商平台的双十一攻略 1. 弹性伸缩解决高并发问题…

2024信创数据库TOP30之达梦DM8

近年来&#xff0c;中国信创产业快速崛起&#xff0c;其中数据库作为基础软件的重要组成部分&#xff0c;发挥了至关重要的作用。近日&#xff0c;由DBC联合CIW/CIS共同发布的“2024信创数据库TOP30”榜单正式揭晓&#xff0c;汇聚了国内顶尖的数据库企业及产品&#xff0c;成为…

SSA-XGBoost分类预测 | Matlab实现SSA-XGBoost麻雀算法优化XGBoost的多特征分类预测

分类预测 | Matlab实现SSA-XGBOOST麻雀算法优化XGBOOST的多特征分类预测 目录 分类预测 | Matlab实现SSA-XGBOOST麻雀算法优化XGBOOST的多特征分类预测效果一览基本介绍程序设计参考资料效果一览 基本介绍 Matlab实现SSA-XGBoost麻雀算法优化XG

c#编码技巧(十九):各种集合特点汇总

.NET 常用集合对比&#xff1a; .NET 常见的线程安全集合 .NET 只读集合

springboot基于Hadoop的NBA球员大数据分析与可视化(1)(6)

摘 要 科学技术日新月异&#xff0c;人们的生活都发生了翻天覆地的变化&#xff0c;NBA球员大数据分析与可视化系统当然也不例外。过去的信息管理都使用传统的方式实行&#xff0c;既花费了时间&#xff0c;又浪费了精力。在信息如此发达的今天&#xff0c;可以通过网络这个媒…

鸿蒙多线程开发——线程间数据通信对象01

1、线程间通信 线程间通信指的是并发多线程间存在的数据交换行为。由于ArkTS语言兼容TS/JS&#xff0c;其运行时的实现与其它所有的JS引擎一样&#xff0c;都是基于Actor内存隔离的并发模型提供并发能力。 对于不同的数据对象&#xff0c;在ArkTS线程间通信的行为是有差异的&…

goland单元测试

一、单元测试的概念 1.1 什么是单元测试&#xff0c;有什么用&#xff1f; 单元测试是针对于函数的测试&#xff0c;用来保证该函数的逻辑正确性。 1.2 单元测试的要求&#xff1f; 1. 单元测试在正式上线之前应该全部自动执行&#xff0c;并且需要保证全部通过 2. 单元测试需…

ArcGIS定义投影与投影的区别(数据和底图不套合的原因和解决办法)

今天介绍一下ArcGIS中定义投影与投影的区别。 给大家解惑一下为什么经常出现自己的数据无法和底图套合的情况。 一 目录 1、ArcGIS定义投影与投影的概念区别 2、ArcGIS定义正确的坐标系 3、ArcGIS动态投影实现套合 4、ArcGIS地理坐标系转投影坐标系&#xff08;错误做法&am…

语义通信论文略读(十七)可变长编码的语义通信+Extended Reality

Semantic Communications With Variable-Length Coding for Extended Reality 用于扩展现实的带可变长度编码的语义通信 作者: Bowen Zhang, Zhijin Qin, Geoffrey Ye Li 所属机构: 伦敦帝国理工学院电气与电子工程系; 清华大学电子工程系 关键词: 扩展现实&#xff0c;联…

IDEA2019搭建Springboot项目基于java1.8 解决Spring Initializr无法创建jdk1.8项目 注释乱码

后端界面搭建 将 https://start.spring.io/ 替换https://start.aliyun.com/ 报错 打开设置 修改如下在这里插入代码片 按此方法无果 翻阅治疗后得知 IDEA2019无法按照网上教程修改此问题因此更新最新idea2024或利用插件Alibaba Clouod Toolkit 换用IDEA2024创建项目 下一步…

网络编程 day1.2~day2——TCP和UDP的通信基础(TCP)

笔记脑图 作业&#xff1a; 1、将虚拟机调整到桥接模式联网。 2、TCP客户端服务器实现一遍。 服务器 #include <stdio.h> #include <string.h> #include <myhead.h> #define IP "192.168.60.44" #define PORT 6666 #define BACKLOG 20 int mai…

BLIP-2模型的详解与思考

大模型学习笔记------BLIP-2模型的详解与思考 1、BLIP-2框架概述2、BLIP-2网络结构详解3、BLIP-2的几点思考 上一篇文章上文中讲解了 BLIP&#xff08;Bootstrapping Language-Image Pretraining&#xff09;模型的一些思考&#xff0c;本文将讲述一个BLIP的升级版 BLIP-2&am…

strcat的模拟实现(递归)(c基础)

hi &#xff0c; I am 36 适合对象c语言初学者 strcat(arr1,arr2);函数是将arr2接到arr1后&#xff0c;返回arr1 链接介绍一下strcat(c基础)-CSDN博客 下面通过自定义函数来模拟实现 缺陷 该函数不适合arr1[] "";时因为该函数的功能是把arr2接到arr1后&#xf…

GeekChallenge 2024 第十五届极客大挑战 pwn AK

GeekChallenge 2024 第十五届极客大挑战 pwn AK &#x1f340;前言☘️ez_shellcode&#xff08;shellcode&#xff0c;栈溢出&#xff09;&#x1f33f;分析&#x1f33f;解题&#x1f33f;exp ☘️买黑吗喽了吗&#xff08;整数溢出&#xff0c;栈溢出&#xff09;&#x1f3…

springboot源码02-springboot启动主要步骤总结

文章目录 【README】【1】springboot应用启动主要步骤【1.1】springboot应用启动主要步骤总结 【2】springboot应用启动先后发布事件【2.1】springboot启动先后发布事件代码实践【2.1.1】自定义监听器【2.1.2】自定义SpringApplicationRunListener【2.1.3】springboot运行日志 …

数据结构——小小二叉树第二幕(二叉树链式结构的实现以及二叉树的遍历)超详细!!!

文章目录 前言一、实现链式结构二叉树1.1 前中后序遍历1.1.1 遍历规则 1.2 二叉树的结点个数以及高度等 总结 前言 上一篇我们初步认识了树的结构以及概念&#xff0c;同时也学习到了二叉树的顺序结构&#xff08;堆&#xff09;的实现&#xff0c;以及堆的初步应用。 时隔几日…

服务器端渲染 (SSR) 与客户端渲染 (CSR)

嘿程序员&#xff01;我们都知道&#xff0c;新时代的 Javascript 已经彻底改变了现代网站的结构和用户体验。如今&#xff0c;网站的构建更像是一个应用程序&#xff0c;伪装成一个能够发送电子邮件、通知、聊天、购物、支付等的网站。今天的网站是如此先进、互动&#xff0c;…

【spring】spring单例模式与锁对象作用域的分析

前言&#xff1a;spring默认是单例模式&#xff0c;这句话大家应该都不陌生&#xff1b;因为绝大多数都是使用单例模式&#xff0c;避免了某些问题&#xff0c;可能导致对某些场景缺乏思考。本文通过结合lock锁将单例模式、静态变量、锁对象等知识点串联起来。 文章目录 synchr…

解析与修复vcruntime140_1.dll问题,总结四种vcruntime140_1.dll解决方法

在使用Windows系统的过程中&#xff0c;不少用户可能会遇到与vcruntime140_1.dll相关的问题。这个看似神秘的文件&#xff0c;其实在很多软件的运行中扮演着至关重要的角色。今天的这篇文章将教大家四种vcruntime140_1.dll解决方法。 一、vcruntime140_1.dll文件分析 &#xf…