【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 按钮⭐搭建物体层级⭐给物体添加脚本⭐为脚本变量赋值 📕模仿官方样例按钮的样式📕在按钮上添加文字📕修改按钮图片 …...
Vue 3 中安装并使用 Axios 详细步骤+样例代码详解
axios详细步骤 在集成终端打开,使用 npm 或 yarn 安装 Axios: npm install axios或 yarn add axios这将在您的项目中安装 Axios。 在您的 Vue 3 项目中创建一个用于发送 HTTP 请求的模块或文件,比如 http.js。 在 http.js 文件中导入 Axios…...
IDEA 控制台中文出现乱码问题解决
一、问题概述 请看下图 二、问题分析 IDEA控制台输出乱码一般会有三种来源: ① IDEA本身编码错误 ② Tomcat日志输出编码错误 ③ 项目本身原因。 终极原因:IDEA编码和Tomcat编码不一致,统一设置为UTF-8即可。 三、解决思路 修改…...
计算机网络(1)
计算机网络(1) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网(1)因特网概念解读服务常见的服务 协议网络边缘特点强调 网络核心特点强调 小程一言 我的计算机网络专栏,是自己在计算机网络…...
如果我想用python自动操作手机、电脑软件,应该学python哪方面的知识呢?
Python 作为一门万能语言,在各方面的表现都非常好 如果我们想使用 Python 来操作手机和电脑,那么需要学习掌握如下几个方面的知识 1. 基本的Python编程 显而易见,你需要学习Python的基本语法、数据类型、控制流和函数等基本概念。这是后面…...
关于java命令行传参
关于java命令行传参 本篇文章拓展以下java中的命令行传参😎 有时候你希望运行一个程序的时候再传递给它消息,这要靠传递命令行参数给main()方法来实现。首先我们先来创建一个数组遍历。 public class Demo {public static void main(String[] args){/…...
[LeetCode][Python]389. 找不同
简单 给定两个字符串 s 和 t ,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s "abcd", t "abcde" 输出:"…...
鸿蒙崛起:互联网大厂加速鸿蒙原生应用开发,人才争夺战打响
随着华为鸿蒙系统的发布和不断推进,一场以鸿蒙为中心的生态竞争已经拉开帷幕。近日,网易、美团等多家互联网公司发布了与鸿蒙系统有关的岗位招聘,加速推进鸿蒙原生应用开发转型。这种趋势表明,鸿蒙系统已经引起了行业的广泛关注&a…...
OR-NeRF论文笔记
OR-NeRF论文笔记 文章目录 OR-NeRF论文笔记论文概述Abstract1 Introduction2 Related Work3 Background4 Method4.1 Multiview Segmentation4.2 Scene Object Removal 5 ExperimentsDatasetsMetricsMultiview SegmentationScene Object Removal 6 Conclusion 论文概述 目的&am…...
【web】vue 播放后端(flask)发送的 mp3 文件
文章目录 演示后端(flask)前端(vue3)重要说明 演示 后端(flask) 后端返回的是 mp3 文件的 url,是可以直接在浏览器上打开后播放的处理跨域请求pip install flask-cors后端代码from flask impor…...
vmware安装openEuler 22.03 LTS操作系统
vmware安装openEuler 22.03 LTS操作系统 1、下载openEuler操作系统镜像文件2、安装openEuler操作系统3、配置openEuler操作系统3.1、配置静态IP地址 和 dns3.2、查看磁盘分区3.3、查看系统版本 1、下载openEuler操作系统镜像文件 官网下载链接 链接: https://www.openeuler.or…...
做电子商务系统网站建设/广州排前三的seo公司
将 C 或 C 源代码编译成可执行文件分成两步:第一步是将每个源代码文件分别编译成可重定位文件(relocatable,扩展名为 .o),第二步是将所有的可重定位文件链接成可执行文件。在 Linux 中,可重定位文件和可执行文件的格式都是 ELF(Ex…...
软件公司网站模板图片/百度关键词排名推广话术
华为畅享20 plus终于正式发布了!那么在畅享20 plus的小功能配件表现怎么样呢?比如说大家非常关心的nfc和红外功能。那么华为畅享20 plus有nfc吗?华为畅享20 plus支持红外功能吗?小编告诉你答案!华为畅享20 plus有nfc吗?华为畅享20 plus没有…...
包头 网站制作/产品推广宣传方案
题目: Design a HashSet without using any built-in hash table libraries. 在不使用任何内置哈希表库的情况下设计HashSet。 To be specific, your design should include these functions: 具体而言,您的设计应包括以下功能: add(value): …...
北京 房地产 网站建设/sem推广竞价
jdk7及以前: 通过-XX:PermSize 来设置永久代初始分配空间,默认值是20.75m -XX:MaxPermSize来设定永久代最大可分配空间,32位是64m,64位是82m jdk8及之后: 通过-XX:MetaspaceSize 来设置永久代初始分配空间ÿ…...
哪里有做直销网站的/福州seo优化排名推广
A、MySQL 备份工具xtrabackup 的安装1. percona 官方xtrabackup 的二进制版本;二进制版本解压就能用了。2. 解压xtrabackup &创建连接tar -xzvf percona-xtrabackup-2.3.4-Linux-x86_64.tar.gz -C /usr/local/ln -s /usr/local/percona-xtrabackup-2.3.4 /usr/l…...
网站模板可以自己做吗/seo工作内容
-- 唯一约束:unique -- 指定字段为唯一约束的时候。它的值不能重复。一张表中可以有多个唯一约束 -- 将student表中的tel和ID设置为唯一约束 DROP TABLE student; CREATE TABLE student( sid INT PRIMARY KEY AUTO_INCREMENT, sname CHAR(10), tel CHAR(11) UNIQUE, ID CHAR…...