2024.2.28 网络

news2024/11/17 3:41:05

思维导图

整理面试题

1、什么是回调函数

答:将函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。

2、结构体和共用体的区别

答:结构体的每个成员都会分配内存,大小又各个成员的内存之和但要满足字节对齐原则

共用体的内存以占字节数最大的成员为主

3、赋值与初始化有什么不同

答:初始化是从无到有的过程,先分配空间,然后再填充数据;赋值是对己有的对象进行操作。
对于基本数据类型,二者是没有任何区别,对于非基本数据类型,在写法与效率上有许多不同。

4、局部变量和全局变量能否重名

答:能,局部会屏蔽全局。要用全局变量,需要使用"::",局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体

5、形参和实参有什么区别

答:形参(Formal Parameter)是函数定义时声明的参数,它是函数内部的局部变量。形参在函数定义时指定了参数的类型和名称,用于接收函数调用时传递的实参的值。

实参(Actual Argument)是函数调用时传递给函数的值或变量。实参可以是常量、变量、表达式或者其他函数的返回值。实参的值会被传递给对应的形参,从而在函数内部进行处理。

形参和实参之间的区别主要有以下几点:

1>定义位置:形参是在函数定义时声明的,位于函数的参数列表中;实参是在函数调用时传递的,位于函数名后面的括号中。
2>数据类型:形参可以指定具体的数据类型,用于接收相应类型的实参;实参可以是任意合法的表达式或变量。
3>值传递:实参的值会被传递给对应的形参,形成一次值传递。在函数内部对形参进行修改不会影响到实参的值。

4>作用范围:形参只在函数内部有效,超出函数范围后就无法访问;实参在函数调用时生效,可以在函数内部使用。

6、数组与指针的区别是什么

答:指针的大小是固定的,数组的大小是根据申请时数据类型和元素个数决定的

数组名表示的是首元素地址,从功能上等同于一个地址,数组是构造数据类型,指针是指针类型

7、void指针就是空指针吗?它有什么作用?

答:空指针是(void*)0,void指针是万能指针,可以执行任意类型的地址

void的指针不能直接解引用,必须先转换为具体的指针后再使用

8、简述快速排序的思想

答:快速排序是一种常用的排序算法,它的基思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列的目的。

具体的快速排序算法步骤如下:

1.>选择一个基准元素(通常选择第一个元素)。
2.>将序列中所有比基准元素小的元素移到基准元素的左边,将序列中所有比基准元素大的元素移到基准元素的右边。
3.>对基准元素的左右两个子序列重复步骤1和步骤2,直到每个子序列只有一个元素。

快速排序的关键在于划分操作,即如何将序列中的元素按照基准元素进行划分。常用的划分方法是使用双指针法,即设置一个左指针和一个右指针,左指针从序列的左边开始向右移动,右指针从序列的右边开始向左移动,当左指针指向的元素大于基准元素且右指针指向的元素小于基准元素时,交换左右指针指向的元素,直到左指针和右指针相遇,此时将基准元素与左指针指向的元素进行交换。

快速排序的时间复杂度为O(nlogn),其中n为待排序序列的长度。它是一种原地排序算法,不需要额外的存储空间。

9、什么是野指针?怎么避免野指针?

答:野指针即非法访问

①未初始化的指针②释放堆区空间后,指针没有指向NULL③越界访问数组的指针④指向一个空间后,空间被释放的指针

避免野指针:①初始化指针②防止指针越界访问数组③防止指针指向一个被释放的空间④使用指针之前检查有效性

10、网络7层体系结构

答:①物理层②数据链路层③网络层④传输层⑤会话层⑥表示层⑦应用层

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

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

相关文章

快讯|Tubi 更新内容库重新定义自己

在每月一期的 Tubi 快讯中,你将全面及时地获取 Tubi 最新发展动态,欢迎🌟星标关注【比图科技】,一起成长变强! Tubi 更新内容库,重新定义自己 Tubi 近日宣布为数千万用户免费提供备受观众喜爱、获奖无数的…

anaconda指定目录创建环境无效/环境无法创建到指定位置

已经设置目录到D盘 创建环境时还是分配到C盘 可能是指定位置没有开启读写权限,如我在这里安装到了anaconda文件夹,则打开该文件夹的属性->安全->编辑 allusers下的权限全都打勾

android开发电子书,android基础编程

内存泄漏是什么? 内存泄漏即 ML (Memory Leak) 指 程序在申请内存后,当该内存不需再使用 但 却无法被释放 & 归还给 程序的现象 内存泄漏有哪些情况,对应的解决方案? 内存泄漏的原因归根到底就是当需…

redis-RedisTemplate.opsForGeo 的geo地理位置及实现附近的人的功能

redis内部使用的是 zset 数据结构存储,如下 import cn.huawei.VideoApplication; import cn.huawei.domain.Jingqu; import cn.huawei.service.JingquService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired…

【Java程序设计】【C00321】基于Springboot的在线租房和招聘平台(有论文)

基于Springboot的在线租房和招聘平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的在线租房和招聘平台,本系统有管理员、用户、房东以及公司四种角色; 管理员:首页、个人中心…

【DDD】学习笔记-领域驱动设计参考过程模型

通过领域驱动设计魔方,我们从业务、技术与管理三个维度引入了有助于领域驱动设计的方法和模式,同时梳理了影响领域驱动战略设计的架构因素,确定以“四个边界”为核心对领域逻辑进行控制,规定了领域驱动设计团队必须遵循的纪律&…

java常用环境docker安装

配置目录 rocketmqredismysql不配置binlog配置binlog Nacoszookeeper 本文为精简安装,部分不带容器卷映射,仅供以学习使用。 rocketmq nameservice docker run -d -p 9876:9876 --name rmqnamesrv rocketmqinc/rocketmq sh mqnamesrvbroker docker r…

小狐狸chat2.7.2免授权修复版可用版

小狐狸chat2.7.2免授权修复版可用版 在网络上面找了好几个版本不能使用,今天发布这个仔细测试正常使用 主要功能:独立版无限多开支持分销会员充值自己APP打包小程序万能创作MJ绘图多个国内接口 国外很火的ChatGPT,这是一种基于人工智能技术…

LNMP架构的源码编译环境下部署Discuz社区论坛与wordpress博客

目录 一、编译安装Nginx 1、关闭防火墙 2、安装依赖包 3、创建运行用户 4、解压软件包并编译安装 5、软链接路径优化 6、添加Nginx系统服务 二、编译安装Mysql服务 1、安装依赖环境以及源 2、创建运行用户 3、编译安装 4、修改配置文件 5、数据库目录进行权限调整…

Qt SQLite的创建和使用

重点: 1.SQLite创建数据库内容方法 链接:SQLite Expert Personal的简单使用-CSDN博客 2.和数据库进行链接方法 QSqlDatabase DB; //数据库连接bool MainWindow::openDatabase(QString aFile) {DBQSqlDatabase::addDatabase("QSQLITE"); /…

通过多进程并发方式(fork)实现服务器

以下内容为视频学习记录。 1、父进程accept后返回的文件描述符为cfd以及用于创建连接的lfd; 调用fork()创建子进程后,子进程继承cfd,lfd,通过该cfd与连接过来的客户端通信,lfd对子进程来说没用,可以直接close(lfd); 对于父进程来说&#x…

火灾安全护航:火灾监测报警摄像机助力建筑安全

火灾是建筑安全中最常见也最具破坏力的灾难之一,为了及时发现火灾、减少火灾造成的损失,火灾监测报警摄像机应运而生,成为建筑防火安全的重要技术装备。 火灾监测报警摄像机采用高清晰度摄像头和智能识别系统,能够全天候监测建筑内…

【Kafka系列 06】Kafka Producer源码解析

温馨提示:本文基于 Kafka 2.3.1 版本。 一、Kafka Producer 原理图 生产者的 API 使用还是比较简单,创建一个 ProducerRecord 对象(这个对象包含目标主题和要发送的内容,当然还可以指定键以及分区),然后调…

3G 蜂窝移动通信

4 3G 蜂窝移动通信 第三代 (3G) 蜂窝移动通信系统 -1996 年正式标准名称:IMT-2000。 -工作在 2000 MHz 频段,数据率可达 2000 kbit/s(固定站)和 384 kbit/s(移动站)。 -包括中国通信标准化协会 CCSA (C…

云计算与边缘计算:有何不同?

公共云计算平台可以帮助企业充分利用全球服务器来增强其私有数据中心。这使得基础设施能够扩展到任何位置,并有助于计算资源的灵活扩展。混合公共-私有云为企业计算应用程序提供了强大的灵活性、价值和安全性。 然而,随着分布在全球各地的实时人工智能应…

Leetcode 第 385 场周赛题解

Leetcode 第 385 场周赛题解 Leetcode 第 385 场周赛题解题目1:3042. 统计前后缀下标对 I思路代码复杂度分析 题目2:3043. 最长公共前缀的长度思路代码复杂度分析 题目3:3044. 出现频率最高的质数思路代码复杂度分析 题目4:3045. …

【网络那些事】

【云计算】 云计算:把计算资源放在某个地方,并通过互联网暴露出来,让用户可以按需使用计算资源的方式,就是所谓的云计算 云计算的三种服务: 云平台专业名词 日常叫法 亚马逊云叫法 云服务器 ECS (Elas…

鸿运(通天星CMSV6车载)主动安全监控云平台敏感信息泄露漏洞

文章目录 前言声明一、系统简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 鸿运主动安全监控云平台实现对计算资源、存储资源、网络资源、云应用服务进行7*24小时全时区、多地域、全方位、立体式、智能化的IT运维监控,保障IT系统安全、稳定、可靠运行…

Java多线程算法总结

1. 标题三个线程同时运行,依次打印ABC,一共打印10次 算法代码如下: public class ThreadTest {private Object oa new Object();private Object ob new Object();private Object oc new Object();private static final String TAG &quo…

Tomcat架构分析

Tomcat的核心组件 Tomcat将请求器和处理器分离,使用多种请求器支持不同的网络协议,而处理器只有一个。从而网络协议和容器解耦。 Tomcat的容器 Host:Tomcat提供多个域名的服务,其将每个域名都视为一个虚拟的主机,在…