计算机基础知识复习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,可在子类中重新定义,也可被重新赋值

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

容器技术所涉及Linux内核关键技术

容器技术所涉及Linux内核关键技术 一、容器技术前世今生 1.1 1979年 — chroot 容器技术的概念可以追溯到1979年的UNIX chroot。它是一套“UNIX操作系统”系统,旨在将其root目录及其它子目录变更至文件系统内的新位置,且只接受特定进程的访问。这项功…

Git远程仓库的多人协作

目录 一.项目克隆 二.多人协作 1.创建林冲仓库 2.协作处理 3.处理冲突 三.分支推送协作 四.分支拉取协作 五.远程分支的删除 一.项目克隆 我们可以把远程项目克隆到本地形成一个本地的仓库 git clone https://github.com/txjava-teach/txjava-code.git //链接你自己的远…

Docker 部署 plumelog 最新版本 实现日志采集

1.配置plumelog.yml version: 3 services:plumelog:#此镜像是基于plumelog-3.5.3版本image: registry.cn-hangzhou.aliyuncs.com/k8s-xiyan/plumelog:3.5.3container_name: plumelogports:- "8891:8891"environment:plumelog.model: redisplumelog.queue.redis.redi…

Spring常见面试题总结

关于详细介绍,可以看我写的 ( Spring知识点) 这篇文章。 Spring 基础 什么是 Spring 框架? Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说 Spring 框架指的都是 Spring Framework&#xff0c…

Mac系统下 IDEA配置Maven本地仓库

1.为什么需要配置本地仓库? 在软件开发过程中,使用Maven工具进行依赖管理是常见的做法。Maven通过集中管理各种依赖库,能够帮助开发者在项目中轻松地引入所需的第三方库,并确保项目能够顺利构建和部署。然而,在使用Mav…

RGCL:A Review-aware Graph Contrastive Learning Framework for Recommendation

A Review-aware Graph Contrastive Learning Framework for Recommendation 解决的问题 基于评论的推荐可以自然地形成为具有来自相应用户项目评论的边特征的用户项目二分图。那么就可以利用评论感知图中独特的自监督信号来指导推荐的两个组件:用户-项目嵌入学习,用户-项目…

5、mysql的读写分离

主从复制 主从复制的含义 主从复制:在一个mysql的集群当中,至少3台,即主1台,从2台。 当有数据写入时,主负责写入本库,然后把数据同步到从服务器。 一定是在主服务器写入数据,从服务器的写入…

重生之我在异世界学编程之C语言:深入预处理篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一、预处理的作用与流程&#xf…

信创源代码加密的答案:信创沙箱

在信息化与工业化融合创新(信创)的背景下,企业面临着前所未有的数据安全挑战。SDC沙盒技术以其独特的隔离和保护机制,为信创环境提供了强有力的支持。以下是SDC沙盒在信创支持方面的优势,这些优势体现了其在保护企业数…

计算机网络B重修班-期末复习

[TOC] (计算机网络B重修班-期末复习) 一、单选 (20题,1分/题,共20分) 二、判断 (10题,1分/题,共10分) 三、填空 (10题,1分/题,共10…

结合实例从HCI层分析经典蓝牙连接和配对过程

我们知道,经典蓝牙BREDR的link key协商是在LMP层做的,那么蓝牙Host在鉴权的过程中,会跟BT SOC有哪些交互: 首次配对 在HCI Inuqiry找到想要配对的设备后,Host会调用HCI Create Connection命令去连接对方设备&#xf…

StartAI图生图局部重绘,让画面细节焕发新生!!

在设计的世界里,每一个细节都承载着我们的创意与心血。然而,有时我们总会遇到一些不尽如人意的画面细节,它们如同瑕疵般破坏了整体的和谐与美感。今天,我要向大家推荐一款强大的工具——StartAI的局部重绘功能,它正是我…

VMware vCenter保姆级安装部署(VMware VCenter Nanny Level Installation and Deployment)

VMware vCenter保姆级安装部署教程 VMware vCenter‌是由VMware开发的一款虚拟化管理平台,主要用于管理和监控虚拟化环境中的虚拟机、主机和存储资源。它提供了一个集中控制的平台,简化了虚拟化基础设施的管理工作,提高了资源利用率和灵活性…

蓝牙协议——音量控制

手机设置绝对音量 使用Ellisys查看如下: 使用Wireshark查看如下: 音量的量程是128,0x44的十进制是68,53%或54%音量的计算如下: 68 / 128 53.125%耳机设置绝对音量

如何完全剔除对Eureka的依赖,报错Cannot execute request on any known server

【现象】 程序运行报错如下: com.netflix.discovery.shared.transport.TransportException报错Cannot execute request on any known server 【解决方案】 (1)在Maven工程中的pom去掉Eureka相关的引用(注释以下部分&#xff0…

从AI换脸到篡改图像,合合信息如何提升视觉内容安全?

本文目录 引言一、AI“真假之战”下的发展现状与考验挑战1.1 视觉内容安全现状与技术分类1.2视觉内容安全企业1.3视觉内容安全领域挑战 二、开山之石:引领视觉内容安全的创新之路2.1合合内容安全系统2.2发起编制相关技术规范2.3参与篡改检测挑战赛 三、视觉内容安全…

虚幻引擎结构之ULevel

在虚幻引擎中,场景的组织和管理是通过子关卡(Sublevel)来实现的。这种设计不仅提高了资源管理的灵活性,还优化了游戏性能,特别是在处理大型复杂场景时。 1. 场景划分模式 虚幻引擎采用基于子关卡的场景划分模式。每个…

log4j2漏洞复现(CVE-2021-44228)

靶场环境 步骤一:设置出战规则 步骤二:开启靶场 cd vulhub cd log4j cd CVE-2021-44228 docker-compose up -d docker ps 访问端口 靶机开启 步骤三:外带注入 获得dnslog 靶机访问dnslog 得到dnslog的二级域名信息 步骤四:构造…

美国加州房价数据分析01

1.项目简介 本数据分析项目目的是分析美国加州房价数据,预测房价中值。 环境要求: ancondajupyter notebookpython3.10.10 虚拟环境: pandas 2.1.1 numpy 1.26.1 matplotlib 3.8.0 scikit-learn1.3.1 2. 导入并探索数据集 通用的数据分析…

ML-Agents 概述(二)

注:本文章为官方文档翻译,如有侵权行为请联系作者删除 ML-Agents Overview - Unity ML-Agents Toolkit–原文链接 ML-Agents 概述(一) ML-Agents 概述(二) 训练方法:特定环境 除了上一节介绍的…