Java基础杂文

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 这段内容介绍了HTTPS无法解决的问题,包括网络延迟、数据包大小、并发请求限制和性能影响。接着解释了双亲委派模型,这是一种类加载机制,通过将加载请求逐级向上委托给父类加载器来完成。最后,详细对比了TCP和UDP两种传输层协议的区别,以及`select`的原理及其缺点,如频繁的用户态与内核态间的数据拷贝和遍历操作带来的性能损耗。

哪些问题是HTTPS无法解决的

1.网络延迟:HTTPS是基于TCP协议的,因此会受到TCP握手和TLS挥手带来的时间延迟,会导致加载的页面时间变长。

 

2.数据包大小:由于HTTPS相对于HTTP的头部信息相对较大,而HTTPS无法对头部信息进行压缩,因此每个请求的数据包相对来说比较大。

3.并发请求限制:在早期的HTTP/1.1中,每个HTTPS链接同一时间只能处理一个请求,但随着HTTP/2引入了多路复用,但还是在一些请求中无法解决并发访问的限制。

 

4.性能影响:HTTPS的加密和解密过程需要消耗CPU的资源,会降低处理器的响应速度。


什么是双亲委派模型

所谓的双亲委派模型就是如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此。

因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载。

image.png


TCP协议与UDP协议有什么区别

标准回答

首先UDP协议和TCP协议都是运输层协议,都是为应用层程序服务,都具有复用(不同的应用层协议可以共用UDP协议和TCP协议)和分用(将数据报解析之后分发给不同的应用层程序)的功能。UDP提供面向无连接基于数据报的不可靠传输,TCP提供面向连接基于字节流的可靠传输。UDP在很多实时性要求高的场景有很好的表现,而TCP在要求数据准确、对速度没有硬性要求的场景有很好的表现。

 

加分回答

具体的区别详细描述可以是:

UDP协议:面向无连接(不需要三次握手和四次挥手)、尽最大努力交付、面向报文(每次收发都是一整个报文段)、没有拥塞控制不可靠(只管发不管过程和结果)、支持一对一、一对多、多对一和多对多的通信方式、首部开销很小(8字节)。优点是快,没有TCP各种机制,少了很多首部信息和重复确认的过程,节省了大量的网络资源。缺点是不可靠不稳定,只管数据的发送不管过程和结果,网络不好的时候很容易造成数据丢失。又因为网络不好的时候不会影响到主机数据报的发送速率,这对很多实时的应用程序很重要,因为像语音通话、视频会议等要求源主机要以恒定的速率发送数据报,允许网络不好的时候丢失一些数据,但不允许太大的延迟,UDP很适合这种要求。

TCP协议:是TCP/IP体系中非常复杂的一个协议,面向连接(需要三次握手四次挥手)、单播(只能端对端的连接)、可靠交付(有大量的机制保护TCP连接数据的可靠性)、全双工通讯(允许双方同时发送信息,也是四次挥手的原由)、面向字节流(不保留数据报边界的情况下以字节流的方式进行传输,这也是长连接的由来。)、头部开销大(最少20字节)。优点是可靠、稳定,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开连接用来节约系统资源。缺点是慢,效率低,占用系统资源高,在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接。在要求数据准确、对速度没有硬性要求的场景有很好的表现,比如在FTP(文件传输)、HTTP/HTTPS(超文本传输),TCP很适合这种要求。


select的原理和缺点

select 是 一种 IO 多路复用技术,它的主旨思想是:

首先要构造一个关于文件描述符的列表,将要监听的文件描述符添加到该列表中,这个文件描述符的列表数据类型为 fd_set,它是一个整型数组,总共是 1024 个比特位,每一个比特位代表一个文件描述符的状态。比如当需要 select 检测时,这一位为 0 就表示不检测对应的文件描述符的事件,为 1 表示检测对应的文件描述符的事件。

调用 select() 系统调用,监听该列表中的文件描述符的事件,这个函数是阻塞的,直到这些描述符中的一个或者多个进行 I/O 操作时,该函数才返回,并修改文件描述符的列表中对应的值,0 表示没有检测到该事件,1 表示检测到该事件。函数对文件描述符的检测的操作是由内核完成的。

select() 返回时,会告诉进程有多少描述符要进行 I/O 操作,接下来遍历文件描述符的列表进行 I/O 操作。

select 的缺点:

每次调用select,都需要把 fd 集合从用户态拷贝到内核态,这个开销在 fd 很多时会很大;

同时每次调用 select 都需要在内核遍历传递进来的所有 fd,这个开销在 fd 很多时也很大;

select 支持的文件描述符数量太小了,默认是 1024(由 fd_set 决定);

文件描述符集合不能重用,因为内核每次检测到事件都会修改,所以每次都需要重置;

每次 select 返回后,只能知道有几个 fd 发生了事件,但是具体哪几个还需要遍历文件描述符集合进一步判断。

相关文章
|
存储 中间件 开发工具
云计算的三个主要服务模型:IaaS、PaaS 和 SaaS
云计算的三个主要服务模型:IaaS、PaaS 和 SaaS
21889 0
|
9月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
475 5
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
326 70
|
存储 Serverless 数据库
科普文:云计算服务类型IaaS, PaaS, SaaS, BaaS, Faas说明
本文介绍了云计算服务的几种主要类型,包括IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、BaaS(后端即服务)和FaaS(函数即服务)。每种服务模式提供了不同的服务层次和功能,从基础设施的提供到应用的开发和运行,再到软件的交付使用,满足了企业和个人用户在不同场景下的需求。文章详细阐述了每种服务模式的特点、优势和缺点,并列举了相应的示例。云计算服务的发展始于21世纪初,随着互联网技术的普及,这些服务模式不断演进,为企业和个人带来了高效、灵活的解决方案。然而,使用这些服务时也需要注意服务的稳定性、数据安全性和成本等问题。
12471 5
|
存储 开发工具 数据安全/隐私保护
什么是Iaas,Paas,Saas?
IaaS(基础设施即服务)提供网络上的IT基础设施服务,按需计费;PaaS(平台即服务)则提供运算平台与解决方案服务,助力用户在云端基础设施上构建与部署应用;而SaaS(软件即服务)通过网络交付软件服务,让用户能够便捷地使用已部署好的应用程序,无需关心底层技术细节。以厨房为例,IaaS如同提供厨房用品,用户自行烹饪;PaaS则是提供预制菜,减少前期准备;SaaS则像点外卖,直接享用成品菜肴。
6288 3
|
存储 数据采集 人工智能
TDengine 签约蘑菇物联,改造通用设备工业互联网平台
在当前工业互联网迅猛发展的背景下,企业面临着日益增长的数据处理需求和智能化转型的挑战。通用工业设备的高能耗问题愈发突出,尤其是由这些设备组成的公辅能源车间,亟需更高效的解决方案来提升设备运行效率,降低能源消耗。为此,蘑菇物联选择携手 TDengine,共同推进数智化转型。
302 3
|
消息中间件 Web App开发 JavaScript
「web浏览器」通过 rAF,聊聊浏览器的任务调度
本文主要介绍浏览器相关知识点,通过 rAF,了解浏览器的任务调度。
704 0
|
存储 前端开发 算法
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
361 0
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
|
存储 小程序 数据库
核酸检测小程序实战教程
核酸检测小程序实战教程
核酸检测小程序实战教程
|
新零售 数据可视化 物联网
解决方案应用实例 |“数智”合作,阿里云助力良渚古城建设智慧景区
在如今文旅融合大背景下,如何运用技术手段加强对文化遗产保护和利用已成为重要课题。阿里云所沉淀的云计算、数据驱动、人工智能等方面的先进技术,协助良渚古城遗址公园实现了数据资源的综合应用、深度应用和本地化应用,为游客提供全方位的便捷服务和体验,不断提高智能决策及精细化管理水平。良渚古城遗址公园与阿里云的“数智”合作,充分说明了只有运用云计算、大数据、互联网和物联网等技术,加快景区数字化进程,才能够更好地实现古代与当下的交相辉映。
5213 0
解决方案应用实例 |“数智”合作,阿里云助力良渚古城建设智慧景区