【Java开发岗面试】八股文—计算机网络
声明:
- 背景:本人为24届双非硕校招生,已经完整经历了一次秋招,拿到了三个offer。
- 本专题旨在分享自己的一些Java开发岗面试经验(主要是校招),包括我自己总结的八股文、算法、项目介绍、HR面和面试技巧等等,如有建议,可以友好指出,感谢,我也会不断完善。
- 想了解我个人情况的,可以关注我的B站账号:东瓜Lee
-
OSI 七层网络模型,你了解吗?具体功能有哪些?
总共有7层,自上向下为:
- 应用层:构建具体的应用和服务,例如HTTP服务、SNMP服务、DNS服务等等
- 表示层:主要对接收的数据进行操作,把计算机能够识别的内容转换成人能够识别的内容。
- 会话层:在传输层的基础上建立连接和管理会话。
- 传输层:定义了传输数据的协议和端口号,主要用于数据的分段、传输和重组,主要协议有TCP和UDP。
- TCP传输控制协议:面向连接的可靠协议
- UDP用户数据报协议:面向无连接的不可靠协议
- 网络层:主要用于对IP地址进行封装和解析(这一层的数据叫作数据包)(工作设备:路由器、防火墙等)
- 数据链路层:主要用于对MAC地址进行解析和封装(这一层的数据叫作数据帧)(工作设备:网桥、交换机)
- 物理层:主要定义了物理设备标准,它的主要作用是传输比特流(这一层的数据叫作比特)(工作设备:网卡、集线器、中继器)
OSI七层网络可以把应用层、表示层和会话层 归到一起 作为应用层,也就是五层网络模型
-
TCP/IP四层模型?
-
应用层:负责具体应用层协议的定义,包括:
- HTTP超本文传输协议
- FTP文件传输协议
- SMTP电子邮件传输协议
- DNS域名服务解析协议
-
传输层:使源端和目的端机器上的对等实体可以基于会话相互通信。
在这一层定义了两个端到端的协议TCP 和UDP 。
-
网络层:主要用于数据的传输、路由及地址的解析,以保障主机可以把数据发送给任何网络上的目标。数据经过网络传输,发送的顺序和到达的顺序可能发生变化。
在网络层使用IP和ARP(地址解析协议)
-
网络接口层:定义了主机间网络连通的协议
具体包括Echernet 、FDDI 、ATM 等通信协议
-
-
计算机网络分层的优缺点
优点:
- 相互独立,层与层之间要联系可以通过接口。
- 层与层之间的依赖较少,一层的改动不会对另一层有很大的影响。
- 有利于标准化,有利于各层逻辑复用
缺点:
- 一层出现了问题容易对其他层产生影响
- 有时会导致级联的修改:比如对下层做了修改,那上层也相应要修改,比较麻烦,要把控好全局
-
说一下TCP的三次握手?
这是基于传输层的TCP协议来实现客户端和服务端之间建立连接的方式
- 客户端发送SYN报文给服务端
- 服务端接收到SYN报文后,回应一个SYN和ACK报文
- 客户端收到服务端的SYN报文,回应一个ACK报文给服务端,就建立了连接
-
为什么要三次握手?两次行不行?四次呢?
所谓握手也就是客户端和服务端建立连接的通信过程,理论上来说当然是越少次数越好(通信过程要资源的开销),但是想要建立正确的连接(也就是要保证客户端和服务端都确认 自己和对方 的发送和接收功能是正常的),就至少要有三次握手。
第一次握手:客户端发送网络包,服务端接收。
服务端得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端接收。
客户端得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器 并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端接收。
服务端得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常, 就可以建立正确的连接了。
「两次握手」:无法防止历史连接的建立,会造成双方资源的浪费,也无法可靠的同步双方序列号;
「四次握手」:三次握手就已经理论上最少可靠连接建立,所以不需要使用更多的通信次数。
TCP第一次握手丢失了,会发生什么?
客户端发送给服务端SYN报文后,迟迟得不到服务端的(SYN+ACK)回应,就会触发超时重传 机制,重传5次以后,还是接收不到回应,就不连接了。
TCP第二次握手丢失了,会发生什么?
服务端给客户端发送SYN+ACK报文丢失,那么客户端就会一直等待,会触发重传SYN机制,服 务端也会重传。
TCP第三次握手丢失了,会发生什么?
客户端接收到服务端的SYN+ACK后,会给服务端发送ACK报文,进入连接状态,如果丢失了ACK报文,服务端一直接收不到,就会重传SYN+ACK,让客户端也重传ACK报文。
-
TCP四次挥手的过程?
-
客户端调用断开连接的请求,向服务器端发送一个终止标志位 FIN = 1,seq=u 的消息。
-
服务器在收到这个消息后,返回一个 ACK=1,ack=u+ 1 ,seq=v 的消息给客户端,表示接收到客户端断开链路的操作请求。
-
服务器端将关闭链路前需要发送给客户端的消息发送给客户端,在等待该数据发送完成后,发送一个终止标志位FIN = 1 ,ACK= 1 ,seq=w,a ck= u+ 1 的消息给客户端(表示关闭链路前服务器需要向客户端发送的消息已经发送完毕,请求客户端确认关闭从服务器到客户端的链路操作。)
-
客户端在接收到这个最终的FIN 消息后,发送一个 ACK = l ,seq=u + l ,ack=w+ I 的消息给服务器端,表示接收到服务器端的断开连接请求,并准备断开服务器端到客户端的链路。
客户端经过等待计时器设置的时间后,客户端将进入CLOSE 状态。
-
-
说一下TCP与UDP的区别?
- TCP是传输控制协议,UDP是用户数据报协议
- TCP是面向连接的(三次握手、四次挥手),UDP是面向无连接的
- TCP是可靠的(使用了接收确认和重传机制,使得发出去的信息都是可达的),UDP是不可靠的(只是将数据发出去,不管能不能接收)
- TCP适用于要求可靠数据传输的场景(比如传文件),UDP适用于不需要可靠传输的场景(比如打电话、直播,即使丢包了一些也没关系)
- TCP只有一对一的传输方式,UDP可以一对一、一对多、多对多的传输
- TCP是面向字节流的,UDP是面向报文的
- 如果已经建立了TCP连接,但是客户端突然出现故障了怎么办?
TCP设有一个保活计时器,服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。
-
拔掉网线后,原有的TCP连接还在吗?
还存在,因为TCP连接在Linux内核中是一个socket结构体,结构体内容包含了TCP的信息,即使拔掉网线,操作系统也不会更改这个结构体的内容,所以TCP连接还是存在的。
-
TCP的粘包和拆包?
TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为)一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。
为什么会产生粘包和拆包呢?
- 要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去,将会发生粘包;
- 要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包;
粘包和拆包有什么不好的?
- 粘包:把多个数据包粘合在一起进行发送,可能会导致接收端无法正确区分每个数据包,导致接收到的数据出现混乱。
- 拆包:把一个大的数据包拆成多个小数据包,可能会导致接收端收到的数据不完整。
如何解决粘包和拆包呢?
- 在发送端 将每个数据包封装为固定长度,接收端按照固定长度来对数据进行解析
- 在数据包中 增加特殊字符或者特殊标记,表示一个数据包的开始和结尾
-
TCP的流量控制?
简单来说,就是让发送方的发生速率不要太快,防止接收方来不及接收 而出现数据的丢包。
经过TCP的三次握手后,发送端和接收端就能进行数据传输了,但是发送端不能疯狂地向接收端发送数据,因为接收端接收不过来的话,接收方只能把处理不过来的数据存在缓存区里。如果缓存区都满了,发送方还在疯狂发送数据的话,接收方只能把收到的数据包丢掉,这就浪费了网络资源。
TCP是通过滑动窗口来进行流量控制的,也就是一个动态变化的窗口。
-
TCP的拥塞控制?
由于IP网络自身出现了拥堵,那么发送方的发生速率就要被控制,这就是拥塞控制,目的就是避免 发送方的数据 填满整个网络,使得网络更加拥堵,而出现数据的丢包。
发生方是能感知到网络出现了拥塞的,比如说发送方没有在规定时间内接收到响应报文,也就是发生了超时,就会认为网络出现了拥塞。
为了对发送方的发送速率进行限制,定义了一个叫做拥塞窗口的概念,拥塞窗口 cwnd 是发送方维护的一个的状态变量,它会根据网络的拥塞程度动态的变化。
拥塞控制算法:
- 慢启动
- 拥塞避免
- 快重传
- 快恢复
- 如何在 Linux 系统中查看 TCP 的连接状态?
在 Linux 可以通过netstat -napt
命令查看。
-
TCP 和 UDP 分别对应的常见应用层协议有哪些?
基于TCP的应用层协议有:HTTP、FTP、SMTP、SSH(安全外壳协议)、TELNET(网络电传)
基于UDP的应用层协议:DNS、TFTP(简单文件传输协议)
-
IP地址有哪些分类?
IP地址=网络号+主机号
- 网络号:标志主机所连接的网络地址属于互联网的哪一个网络
- 主机号:标志主机地址其属于该网络中的哪一台主机
IP地址分为A,B,C,D,E五大类:
- A类地址(1~126):以0开头,网络号占前8位,主机号占后面24位。
- B类地址(128~191):以10开头,网络号占前16位,主机号占后面16位。
- C类地址(192~223):以110开头,网络号占前24位,主机号占后面8位。
- D类地址(224~239):以1110开头,保留位多播地址。
- E类地址(240~255):以11110开头,保留位为将来使用。
-
说下ARP 协议的工作过程?
ARP 地址解析协议,它是用于实现IP地址到MAC地址的映射
当源主机和目的主机进行通信时:
-
当源主机需要将一个数据包要发送到目的主机时,会首先检查自己的ARP列表,是否存在目的IP地址对应的目的MAC地址:
-
如果有,源主机就直接将数据包发送到这个MAC地址对应的目的主机
-
如果没有,就向本地网段发起一个 ARP请求的广播包,来查询目的主机对应的MAC地址(ARP请求的数据包里,包括源主机的IP地址、MAC地址、目的主机的IP地址)
网络中所有的主机收到这个ARP请求包后,会检查其中的目的IP地址是否和自己的IP地址一致:
- 如果不相同,就会忽略此数据包;
- 如果相同,该主机首先将源主机的IP地址和MAC地址添加到自己的ARP列表中,然后给源主机发送一个 ARP响应数据包,告诉对方 自己就是它需要的MAC地址,源主机收到这个ARP响应数据包后,将目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。
- 如果源主机一直没有收到ARP响应数据包,表示ARP查询失败,就不能进行通信。
-
-
-
HTTP的原理?
-
HTTP 遵循请求/响应模型:客户端向服务器发送请求,服务器处理请求 并响应给客户端。
-
HTTP 是一个无状态的协议:无状态是指客户端和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应后,连接就被关闭了,在服务器端不会保留连接的有关信息。
(比如同一个客户端向服务端发送两次请求,服务端并不知道这两次请求是来自同一个客户端发出的)
-
-
在浏览器地址栏输入一个URL 到显示主页的过程是什么?
- 浏览器 根据URL 通过域名解析器DNS 查找对应到的IP地址
- 浏览器与服务器 通过三次握手 建立TCP连接
- 浏览器向服务器 发送一个HTTP请求
- 服务器处理请求、生成响应,再将响应返回给浏览器
- 浏览器收到响应后进行解析 并渲染页面
- 浏览器与服务器 通过四次挥手 结束TCP连接
-
说下HTTP/1.0,1.1,2.0的区别?
-
HTTP/1.0:默认使用短连接,每次请求都需要建立一个TCP连接。
-
HTTP/1.1:默认使用长连接,TCP连接默认不会关闭,可以被多个请求复用。
而且还引入了管道机制,在同一个TCP连接里面,客户端可以同时发送多个请求,这样就进一步改进了HTTP协议的效率。
-
HTTP/2.0:引入了多路复用:在一个连接里,客户端和服务端都可以同时发送多个请求或响应。
-
-
HTTP 如何实现长连接?在什么时候会超时?
HTTP/1.0协议默认是短连接,设置长连接可以在头部设置Connection字段指定为keep-alive,从HTTP/1.1以后,连接默认都是长连接。
-
说说HTTP常用的状态码及其含义?
- 1xx - 信息性状态码:比如服务器正在处理客户端的请求。
- 2xx - 成功类状态码:请求已经完成,服务器向客户端提供了响应。
- 3xx –重定向状态码:服务器收到了请求,但是请求被重定向到了其他地方。
- 4xx – 客户端错误状态码:客户端发生错误,比如404页面找不到错误
- 5xx – 服务端错误状态码:客户端没错误,但是服务器出现了错误。
-
HTTP 常用的请求方式
HTTP协议一共有9种请求方式:GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH、TRACE、CONNECT
熟悉的四种请求方式就是:GET、POST、PUT、DELETE,使用restful开发也就是用这四种请求方式
@PostMapping:添加操作(对象在请求体) @DeleteMapping("/{id}"):根据id删除 @PutMapping:修改操作(对象在请求体) @GetMapping:查询所有 @GetMapping("/{id}"):通过id查询
- GET:是最常见也是最简单的http请求,它主要用作于获取资源。也就是说我客户端请求什么,你服务器就原样给我返回什么,可以携带参数,参数直接放在url地址栏。
- POST:主要用来传输实体,比如客户端需要向服务器传输一些东西的时候呢,这个时候就可以用POST方法了。也可以用GET,但是没这么安全(信息直接暴露了)
- PUT:主要用来传输文件,但是由于Http/1.1的PUT方法不带验证机制,存在安全性问题,所以一般的网站都不用这个方法来进行文件传输。
- DELETE:主要是用来删除某个资源,是和PUT完全相反的方法,同时该方法也不带认证机制,所以一般网站并不会对它进行开放使用。
-
GET和POST有什么区别?
- GET的本质是从服务器上获得数据,POST本质是向服务器传递数据
- GET传递的参数在url可见,不安全,POST传递的参数在url上不可见,相对安全
- GET请求是可以缓存的,POST请求不可以缓存
-
请求转发和重定向有什么区别?
请求转发:
request.getRequestDispatcher(URL地址).forward(request, response)
重定向:
response.sendRedirect(URL地址)
区别:
- 请求转发是一次请求,重定向是两次请求(请求转发的速度更快)
- 请求转发之后地址栏上的地址不会变化,重定向的地址栏会发生变化
- 请求转发是服务器的行为,重定向是需要客户端参与的行为
- 请求转发的网址只可以是本站点的网址,重定向时可以是任何网址
-
Cookie和Session是什么?有什么区别?
Cookie是客户端会话技术、Session是服务端会话跟踪技术
都是用来完成 一次会话内多次请求间的 数据共享
区别:
- 存储位置:Cookie 是将数据存储在客户端,Session 将数据存储在服务端
- 安全性: Cookie 不安全,Session 安全
- 数据大小: Cookie 最大3KB,Session 无大小限制
- 存储时间: Cookie 可以长期存储,Session 默认30分钟
- 服务器性能: Cookie 不占服务器资源,Session 占用服务器资源
- Session其实是基于Cookie实现的。
-
什么是HTTPS?
HTTPS = HTTP+SSL
HTTP 被用于在浏览器和服务器之间传递信息,但是是以明文的方式发送信息,不提供数据加密,所以容易被截取而直接读取到信息,因此 HTTP 不适合传输一些敏感信息。
为了保证数据传输的安全, HTTPS 在HTTP 的基础上加入了 SSL 协议,SSL 依靠证书来验证服务器的身份,并对浏览器和服务器之间的通信进行了数据加密,以保障数据传输的安全性。
-
HTTPS的工作原理是什么?
- 客户端发起HTTPS请求:输入一个https的网址,然后连接到服务器的443端口。
- 服务端返回证书:服务器在收到消息后 响应客户端并返回证书,证书中包含服务器信息、域名、申请证书的公司、公钥、数据加密算法等。
- 客户端验证证书:客户端在收到证书后,判断证书的签发机构是否正确,并使用该签发机构的公钥确认签名是否有效, 客户端还会确保在证书中列出的域名就是它正在连接的域名。如果客户端确认证书有效,则生成对称密钥,并使用公钥将对称密钥加密。
- 客户端和服务端的密钥交换:客户端将 使用公钥加密后的对称密钥 发送给服务器,服务器在接收到对称密钥后使用私钥解密。
- 进行安全的数据传输:经过上述步骤,客户端和服务器就完成了密钥对的交换,在之后的数据传输过程中,客户端和服务端就可以基于对称加密。数据加密之后在网络上传输,就保证了数据传输的安全性。
- HTTPS的加密流程是怎样的?【待学习】
-
HTTP 与 HTTPS 的区别?
- http是超文本传输协议,信息是以明文传输的;https是具有安全性的加密传输协议,引入了SSL,具有了身份验证和数据加密的效果。
- http的默认端口为80;https的默认端口为443。
-
URI和URL的区别?
URI,全称是Uniform Resource Identifier),统一资源标志符,主要作用是唯一标识到一个资源。
URL,全称是Uniform Resource Location),统一资源定位符,主要作用是提供资源的路径
URI像是身份证,可以唯一标识一个人,而URL更像一个住址,可以通过URL找到这个人。
-
RPC是什么?是一种协议吗?
RPC(远程过程调用)是一个通用的概念,而不是一个具体的协议。RPC是一种编程模型,允许一个程序调用另一个地址空间中的子函数,通常是在远程系统上,使得调用远程函数像调用本地函数一样。实现RPC涉及使用一个或多个协议来完成过程或方法的远程调用。已经开发了几种协议用于实现RPC,每个协议都定义了一组特定的规则和约定,用于执行远程过程调用,但它们都共享相同的基本思想,即使得远程调用看起来像本地调用一样。
总之,RPC是一种用于进行远程过程调用的编程模型,已经开发了各种协议来实现它。
-
RPC和HTTP有什么区别和联系?
RPC是远程过程调用,它的核心目标就是为了让开发人员在调用远程方法的时候 就像调用本地方法一样方便,而且RPC也不是一个协议,它就是一个通信协议的规范
而HTTP是超文本传输协议,它是浏览器和服务器之间进行数据传输的的通信协议,两者都不是一个类型的,无法比较
非要说的话就是:
- RPC可以基于TCP,也可以基于HTTP
-
常见的限流算法
(比如电商系统有秒杀业务,秒杀的请求量太大了,要做限流)
- 固定窗口
- 滑动窗口
- 漏桶算法
- 令牌桶算法
【后续继续补充,敬请期待】
相关文章:
【Java开发岗面试】八股文—计算机网络
声明: 背景:本人为24届双非硕校招生,已经完整经历了一次秋招,拿到了三个offer。本专题旨在分享自己的一些Java开发岗面试经验(主要是校招),包括我自己总结的八股文、算法、项目介绍、HR面和面试…...
【PythonRS】基于矢量范围批量下载遥感瓦片高清数据(天地图、高德、谷歌等)
这个是之前写的代码了,正好今天有空所以就和大家分享一下。我们在处理项目时,有时候需要高清底图作为辅助数据源去对比数据,所以可能会需要卫星数据。所以今天就和大家分享一下如何使用Python基于矢量范围批量下载高清遥感瓦片数据。 1 读取矢…...

穷举vs暴搜vs深搜vs回溯vs剪枝
欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻全排列👉&#…...

Sensor Demosaic IP 手册PG286笔记
《 UG1449 Multimedia User Guide》中包含了大量的多媒体IP简介。 本IP 用于对bayer RGB(每个pixel只有单个R/G/B)做去马赛克处理,恢复成每个pixel点都有完整的RGB值。通过axi接口配置IP内部erg。 1、算法手册中的描述 提到了几种插值算法&…...
HarmonyOS —— UIAbility 页面跳转总结
HarmonyOS —— UIAbility 页面跳转总结 Author:Gorit Date:2023年12月27日 一、系统环境 HarmonOS API9SDK 3.1.0Stage 模型 二、应用内跳转 在应用内之前实现不同 page 的跳转,我们使用 router 即可,页面跳转主要支持如下…...

Spring Boot 3 集成 Jasypt详解
随着信息安全的日益受到重视,加密敏感数据在应用程序中变得越来越重要。Jasypt(Java Simplified Encryption)作为一个简化Java应用程序中数据加密的工具,为开发者提供了一种便捷而灵活的加密解决方案。本文将深入解析Jasypt的工作…...

Spring Boot整合 EasyExcel 实现复杂 Excel 表格的导入与导出功能
文章目录 1. 简介2. 引入依赖3. 导入功能实现3.1 创建实体类3.2 编写导入 Controller3.3 编写导入页面 4. 导出功能实现4.1 编写导出 Controller4.2 编写导出页面 5. 启动应用 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 &…...

SQLSERVER排查CPU占用高
操作系统是Windows2008R2 ,数据库是SQL2008R2 64位 64G内存,16核CPU 硬件配置还是比较高的,他说服务器运行的是金蝶K3软件,数据库实例里有多个数据库 现象 他说是这几天才出现的,而且在每天的某一个时间段才会出现CPU占用高的情况 内存占用不太高,只占用了30个G CPU…...
uniapp:富文本回显
一、使用uniapp官方的标签 rich-text: 会出现图片无法显示的问题,可以用以下方法来过滤处理 <rich-text :nodes"question.title | formatRichHtml"></rich-text> formatRichHtml(html) {if (!html) {return html;}//控制小程序…...

flink内存配置
flink内存配置 配置 TaskManager 内存 | Apache Flink...

easyexcel 导出
在使用EasyExcel库进行数据写入时,通常我们会使用实体类来存储数据。但是当遇到动态查询,无法确定属性数量和名称时,就需要使用Map来接收数据。然而,直接将Map中的数据写入Excel表格并不是一件简单的事情。接下来,我将…...

maven命令行安装依赖测试
mvn dependency:get -DgroupIdorg.springframework -DartifactIdspring-core -Dversion5.3.9作用:可用于测试配置环境变量后,能否下载依赖到本地仓库...

Redis 笔记
文章目录 安装 & 启动杂乱String字符串 key-valueList 有序重复列表Set 无序不重复列表SortedSet 有序集合Hash 哈希Stream 轻量级消息队列订阅模式 学习地址:https://www.bilibili.com/video/BV1Jj411D7oG/ 安装 & 启动 安装包地址: https://g…...

可穿戴智能设备应用领域以及使用意义分别有哪些?
可穿戴智能设备有哪些? 可穿戴智能设备是指可以佩戴在身上,具有智能功能和交互能力的电子设备。以下是一些常见的可穿戴智能设备: 智能手表:智能手表结合了传统手表的功能和智能设备的特性,可以显示时间、接收通知、监…...

【Linux操作系统】探秘Linux奥秘:文件系统的管理与使用
🌈个人主页:Sarapines Programmer🔥 系列专栏:《操作系统实验室》🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。 目录 🪐1 初识Linux OS &…...
机器学习——主成分分析(PCA)
主成分分析(Principal Component Analysis,简称PCA)是一种常用的无监督学习算法,用于降维和数据可视化。主要目标是将高维数据转换成低维空间,同时尽可能保留原始数据的信息。 PCA的主要思想是通过线性变换将原始数据…...

论最近热门的AI绘画技术—从小白绘画到文创手账设计【文末送书-13】
文章目录 🏀前言⚽AI绘图技术栈⚾️简单的代码实现案例🏈iPad萌系简笔画:从小白绘画到文创手账设计【文末送书-13】⛳粉丝福利:文末推荐与福利免费包邮送书! 🏀前言 AI绘画技术,也称为人工智能…...

python打开文件的方式比较
open(addr,w) 打开之后文件无论以前有什么,打开后都要清空 /// open(addr,r) 文件打开后,不删除以前内容...

使用Jenkins和单个模板部署多个Kubernetes组件
前言 在持续集成和部署中,我们通常需要部署多个实例或组件到Kubernetes集群中。通过Jenkins的管道脚本,我们可以自动化这个过程。在本文中,我将演示如何使用Jenkins Pipeline及单个YAML模板文件(.tpl)来部署多个类似的…...

Unity Meta Quest 一体机开发(十二):【手势追踪】Poke 交互 - 用手指点击由 3D 物体制作的 UI 按钮
文章目录 📕教程说明📕给玩家配置 HandPokeInteractor📕用 3D 物体制作可以被点击的 UI 按钮⭐搭建物体层级⭐给物体添加脚本⭐为脚本变量赋值 📕模仿官方样例按钮的样式📕在按钮上添加文字📕修改按钮图片 …...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...