当前位置: 首页 > news >正文

计算机基础知识复习12.24

http和https有那些区别

http是超文本传输协议,信息是明文传输,存在安全风险的问题,https则解决http不安全的缺点,在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输

http连接建立相对简单,tcp三次握手之后便可进行http的报文传输,而https在tcp三次握手之后,还需进行ssl/tls的握手过程,才可进入加密报文传输

sleep()和wait()方法对比

sleep方法没有释放锁,而wait方法释放锁,wait()通常被用于线程间交互/通信 sleep()通常被用于暂停执行

wait()方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的notify或者notifyAll

那些对象可以作为GC Root?

虚拟机栈中引用的对象

public static void main(String []args){Demo demo=new Demo();demo=null;
}

方法区中类静态属性引用的对象

public static Demo a;
public static void main(String[]args){Demo b=new Demo();b.a=new Demo();b=null;}

方法区中常量引用的对象

public static final Demo a=new Demo();
public static void main(String[]args){Demo demo=new Demo();demo=null;
}

本地方法栈中JNI(native方法)引用的对象

如何实现可重入锁

synchronized的可重入性通过JVM内部机制实现,具体来说,每个锁对象都有一个计数器来记录当前持有该锁的线程重入的次数。

当一个线程首次获取锁,计数器加1,如果同一个线程再次获取锁,计数器1再次加1,这就是所谓的重入,每次线程释放锁,计数器会减一,只有当计数器减为0时,锁才会释放

OSI模型

应用层:负责给应用程序提供统一的接口

表示层:负责把数据转换成兼容另一个系统的能够识别的格式

会话层:负责建立,管理,终止表示层实体之间的通信方式

传输层:负责端到端的数据传输

网络层:负责数据的路由,转发,分片

数据链路层:负责数据的封帧和差错检测 ,以及Mac寻址

物理层:负责在物理网络中传输bit流

Read View在MVCC工作模式

m_ids:指的是在创建Read View 时,当前数据库中活跃事务的事务id列表,

JDK动态代理和CGLib代理区别

JDK动态代理是基于接口的代理,只能代理实现了接口的类

CGLIB动态代理是基于继承的代理,可以代理没有实现接口的类,使用CGLib动态代理时,Spring AOP会生成目标类的子类,并在方法调用前后插入横切逻辑

String 适用于少量的数据

StringBuilder: 单线程操作字符串缓冲区下操作大量数据

StringBuffer:多线程操作字符串缓冲区下操作大量数据

深拷贝和浅拷贝

浅拷贝:只复制对象本身和其内部的值类型字段,但不会复制对象内部的引用类型字段,浅拷贝只是创建一个新的对象,然后将源对象的字段值复制到新对象中,但如果源对象内部有引用类型字段,只是将引用复制到新对象中,两个对象指向同一个引用对象

深拷贝:指在复制对象的同时,将对象内部的所有引用类型字段的内容也复制一份,而不是共享引用,深拷贝会递归复制对象内部所有引用类型的字段,生成一个全新的对象以及其内部的所有对象

BIO 同步阻塞  应用程序发起read调用后,会一直阻塞,直到内核把数据拷贝到用户空间

NIO  同步非阻塞IO模型中,应用程序会一直发起read调用,等待数据从内核空间拷贝到用户空间的这段时间里,应用程序不断进行I/O系统调用轮询数据是否已经准备好的过程的十分消耗CPU资源

IO多路复用模型:线程首先发起select调用,询问内核数据是否准备就绪,等内核把数据准备好了,用户线程read再发起read调用,read调用的过程(数据从内核空间->用户空间)还是阻塞的

选择器selector 多路复用器,通过它,只需要一个线程便可以管理多个客户端连接,当客户端数据到了之后,才会为其服务。

JVM内存模型里的堆和栈有什么区别

栈主要用于存储局部变量,方法调用的参数,方法返回地址以及一些临时数据。每当一个被调用,一个栈帧就会在栈中创建,用于存储该方法的信息,当方法执行完毕后,栈帧也会被移除,堆用于存储对象的实例,当你使用new关键字创建一个对象时,对象的实例就会在堆上分配空间

生命周期:栈中的数据具有确定的生命周期,当一个方法调用结束时,其对应的栈帧就会被销毁,栈中存储的局部变量也会随之消失,堆中的对象生命周期不确定,对象会在垃圾回收机制检测到对象不再被引用时才被回收

存取速度:栈的存取速度比堆快,因为栈遵循先进后出的原则,操作快速简单,堆的存取速度相对较慢

存储空间:栈的空间相对较小,且固定,由操作系统管理,当栈溢出时,通常是因为递归过深或局部变量过大。堆的空间较大,动态扩展,由JVM管理。堆溢出通常是由于创建了太多的大对象或未能及时回收不再使用的对象

可见性:栈中的数据对线程是私有的,每个线程有自己的栈空间,堆中的数据对线程是共享的,所有线程都可以访问堆上的对象

抽象类和接口区别

实现方式:实现接口的关键字为implements ,继承抽象类的关键字extends,一个类可以实现多个接口,但一个类只能继承一个抽象类,所以接口可以间接实现多重继承

方法方式:接口只有定义,不能有方法的实现,抽象类可以有定义与实现,方法可在抽象类中实现

变量:抽象类可以包含实例变量和静态变量,而接口只能包含常量

访问修饰符:接口成员变量默认为public static final 必须赋初值,不能被修改  抽象类中成员变量默认为default,可在子类中重新定义,也可被重新赋值

相关文章:

计算机基础知识复习12.24

http和https有那些区别 http是超文本传输协议,信息是明文传输,存在安全风险的问题,https则解决http不安全的缺点,在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输 http连接建立相对简单&#xff0…...

如何使用vscode解决git冲突

在使用VSCode时,遇到Git冲突是很常见的情况。Git冲突是指当多个人同时修改同一个文件的同一行或相邻行时,Git无法自动决定应该保留哪一个修改,需要手动解决这个冲突。 要解决Git冲突,可以按照以下步骤操作: 1. 打开V…...

告别卡顿:CasaOS轻NAS设备安装Gopeed打造高效下载环境

文章目录 前言1. 更新应用中心2.Gopeed安装与配置3. 本地下载测试4. 安装内网穿透工具5. 配置公网地址6. 配置固定公网地址 前言 无论你是需要大量文件传输的专业人士,还是只是想快速下载电影或音乐的普通用户,都会使用到下载工具。如果你对现有的下载工…...

Java 重写(Override)与重载(Overload)

重写 (Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。…...

HDFS与HBase有什么关系?

1 、 HDFS 文件存储系统和 HBase 分布式数据库 HDFS 是 Hadoop 分布式文件系统。 HBase 的数据通常存储在 HDFS 上。 HDFS 为 HBase 提供了高可靠性的底层存储支持。 Hbase 是 Hadoop database ,即 Hadoop 数据库。它是一个适合于非结构化数据存储的数据库, HBase 基于列的…...

CentOS7下的vsftpd服务器和客户端

目录 1、安装vsftpd服务器和ftp客户端; 2、配置vsftpd服务器,允许普通用户登录、下载、上传文件; 3、配置vsftpd服务器,允许anonymous用户登录、下载、上传文件; 4、配置vsftpd服务器,允许root用户登录…...

全网最详细Gradio教程系列10——Blocks:底层区块类(下)

全网最详细Gradio教程系列10——Blocks:底层区块类(下) 前言本篇摘要10. Blocks:底层区块类10.4 Blocks Layout:布局10.4.1 行与列1. Rows2. Columns 10.4.2 选项卡和折叠类10.4.3 重渲染.render()10.4.4 Group分组10.…...

嵌入式设备常用性能和内存调试指令

文章目录 嵌入式设备常用性能和内存调试指令内存问题分析性能测试android设备通过NDK 使用SimplePerf 抓取火焰图嵌入式linux抓取特定进程的perf火焰图 杂记 嵌入式设备常用性能和内存调试指令 内存问题分析 安装valgrind,按照如下指令执行应用程序: …...

数据库系统原理:数据恢复与备份策略

3.1可行性分析 开发者在进行开发系统之前,都需要进行可行性分析,保证该系统能够被成功开发出来。 3.1.1技术可行性 开发该《数据库系统原理》课程平台所采用的技术是vue和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识…...

C++软件设计模式之装饰器模式

装饰器模式(Decorator Pattern)是C软件设计模式中的一种结构型设计模式,主要用于解决在不改变现有对象结构的情况下动态地给对象添加新功能的问题。通过使用装饰器模式,可以在运行时为对象添加新的行为,而不需要修改其…...

fpga系列 HDL:Quartus II PLL (Phase-Locked Loop) IP核 (Quartus II 18.0)

在 Quartus II 中使用 PLL (Phase-Locked Loop) 模块来将输入时钟分频或倍频,并生成多个相位偏移或频率不同的时钟信号: 1. 生成 PLL 模块 在 Quartus II 中: 打开 IP Components。 file:///C:/intelFPGA_lite/18.0/quartus/common/help/w…...

Spring AOP 中记录日志

Spring AOP 中记录日志 使用 AOP 和 Spring 提供的 RequestContextHolder 在通知中记录 HTTP 请求相关日志。以下是进阶添加日志功能的完整例子和说明。 完整示例 1. 切面类实现 Aspect Component public class LogAspect {Around("annotation(log)") // 拦截所有…...

udp tcp协议

文章目录 1. UDP协议1.1 端口号1.2 UDP协议格式1.3 UDP特性1.4 报文的封装 2. TCP协议2.1 TCP协议格式2.2 TCP策略2.2.1 确认应答机制(ACK)序号与确认序号6个标志位序号的理解 2.2.2 超时重传机制2.2.3 连接管理机制三次握手四次挥手理解三次握手理解四次挥手 2.2.4 流量控制2.…...

C语言结构体详细讲解

文章目录 [TOC] 一、前言二、结构体2.1 结构体概念🎈2.2 结构体定义🎉2.3 结构体使用🎗️ 结尾 时间紧后面还有一些知识点这周内补上, 理解理解!(❁◡❁) 一、前言 在学习结构体之前,讲讲为什么会专门写一章博客来分享…...

公交车信息管理系统:实现交通数据的智能化处理

概述 在对系统进行设计之前,需要对选题进行需求分析、可行性分析、流程分析、数据字典等内容。根据需求分析阶段,大致确定用户使用系统所需要具有的功能模块需求,由此规划出系统需要设计的相关功能模块。根据可行性分析阶段,确定系…...

在 Windows 下生成 .tgz 文件的方法

方法 1:使用 7-Zip 7-Zip 是一个流行的免费压缩工具,支持生成 .tar.gz 格式。 步骤: 下载并安装 7-Zip。准备好要压缩的文件或文件夹。右键点击文件或文件夹,选择 7-Zip > 添加到压缩文件...。在弹出的对话框中:…...

编程式浪漫,100款圣诞树代码分享

最近这几天有很多小伙伴开始寻找各种各样的圣诞树代码,我们最常用的Java,Python,C语言,前端,都是可以实现的。小巫师,就在这里分享超火的圣诞树代码,源码分享! 01.HTML圣诞树源代码…...

Nacos的下载和启动(如何快速稳定下载在github中)

目录 Nacos的下载 下载加速器 在githup中找到Nacos 启动Nacos 访问Nacos Nacos的下载 下载加速器 首先,我们需要进入githup中,我们直接访问,肯定是访问不到的。 这里我们经常玩游戏的同学肯定知道steam,这个加速器。直接进入…...

python基础知识(六)

文章目录 连接Mysql数据库安装Mysql数据库连接数据库创建数据库创建数据表查询表是否存在设置主键插入数据批量插入查询、删除、更新数据 使用PyMySql连接数据库安装PyMySql连接数据库 连接MongoDB安装pymongo驱动在MongoDB创建库及数据插入文档查询数据修改数据文档排序删除数…...

神经网络-LeNet

LeNet在1990年被提出,是一系列网络的统称,包括了LeNet1~LeNet5,对于神经网络的学习者来说,大家对下面这个图一定很熟悉,该图是对LeNet的简化展示。 在LeNet中已经提出了卷积层、Pooling层等概念,只是但是由…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”&#xff0c;于是尝试整合图像识别与网页自动化技术&#xff0c;完成了这套模拟登录流程。核心思路是&#xff1a;截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...