java面试(网络)

news/发布时间2024/5/15 9:07:53

TCP和UDP有什么区别?TCP三次握手不是两次?

TCP:面向连接,可靠的,传输层通信协议。点对点,占用资源多,效率低。
UDP:无连接,不可靠,传输层通信协议。广播,协议简单,占用资源少,效率高。
两次握手客户端在第一次握手推出后造成资源浪费。

JAVA有几种IO模型?

BIO:同步阻塞IO,可靠性差,吞吐量低。适用于连接少,且比较固定的场景。JDK1.4唯一选择。
BIO
NIO:同步非阻塞IO:可靠性好,吞吐量较高。适用于连接多,且连接短操作,例如聊天室,Netty。JDK1.4+。
NIO
AIO:异步非阻塞IO:可靠性好,吞吐量高,适用于连接多,且连接长操作,例如相册服务器,视频流,JDK1.7+
AIO
同步,异步针对请求,阻塞,非阻塞针对客户端
客户端发请求,一直等待服务器响应:客户端:阻塞,请求:同步
客户端发请求,轮询服务器响应:客户端:非阻塞,请求:同步
客户端发请求,等待服务器响应:客户端:阻塞,请求:异步
客户端发请求,不等待服务器返回响应:客户端:非阻塞,请求:异步

JAVA NIO核心组件?

Channel Buffer Selector
Buffer:缓冲区,手动或自动将数据送到channel/client。
Channel:接口,类似流,每个Channel对应一个Buffer缓冲区。Channel会注册到Selector上,用于读写数据
Selector:选择器,能够检测多个注册的通道是否有事件发生。如果有事件发生,对该事件进行相应的处理,只用一个线程去管理多个通道(连接),极大地减少了系统开销,简化了初始化成本和多线程之间上下文切换的成本。
NIO

select,poll和epoll区别?javaNIO使用那种机制?

NIO中Selector核心实现机制。
用户空间和内核空间:操作系统为保护系统安全,将内核划分为两个部分。用户空间不能直接访问底层硬件设备,必须通过内核空间。
文件描述符(FD):形式上是整数,实际上是索引,指向内核为每个进程维护进程所打开的文件记录表,当程序打开/创建一个文件时,内核就会向i昵称返回一个FD。
select:会维护一个FD集合fd_set,将fd_set从用户空间复制到内核空间,激活socket。fdSet在x64大小2048。
poll:类似select,把fd_set优化为pollFd(链表)结构。fd集合突破大小限制。
epoll:事件驱动,不再扫描所有的fd,只将用户关心(读写)的fd事件存放在内核的事件表中,这样减少了从用户到内核的拷贝数据。
总结:
select:遍历 数组 受限内核2048 低
poll: 遍历 链表 无上限 低
epoll: 遍历 红黑树 无上限 高
java中可查看DefaultSelectorProvider源码,在windows下使用WindowsSelectorProvider,而Linux下,根据Linux内核版本,2.6+使用EpollSelectorProvider,否则使用默认的PollSelectorProvider。
select:1984年,poll:1997年,epoll:2002年。受限于机器硬件。

描述下HTTP和HTTPS的区别。

HTTP:网络通信协议。基于TCP,使浏览器工作高效,减少网络传输。
HTTPS:是HTTP加强版。是HTTP+SSL(Secure Socket Layer)。在HTTP的基础上增加了一系列的安全机制,一方面保证数据传输安全,另一方面对访问者增加了验证机制(证书)。
区别:
1.HTTP:连接简单,无状态,HTTPS:传输经过证书加密,安全性高
2.HTTP:免费。HTTPS:申请证书收费
3.他们的传输协议不同,HTTP默认80端口,HTTPS默认443端口
HTTPS缺点:握手协议费时,影响响应速度及吞吐量。HTTPS证书体系也并不是完全安全,对于DDOS攻击也没用还会起反作用。功能越强大的证书越贵。

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

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

相关文章

【杭州游戏业:创业热土,政策先行】

在前面的文章中,我们探讨了上海、北京、广州、深圳等城市的游戏产业现状。现在,我们切换视角,来看看另一个游戏创业热土——杭州的发展情况 最近第19届亚运会在杭州举办,本次亚运会上,电子竞技首次获准列为正式比赛项…

RAW 编程接口 TCP 简介

一、LWIP 中 中 RAW API 编程接口中与 TCP 相关的函数 二、LWIP TCP RAW API 函数 三、LwIP_Periodic_Handle函数 LwIP_Periodic_Handle 函数是一个必须被无限循环调用的 LwIP支持函数,一般在 main函数的无限循环中调用,主要功能是为 LwIP各个模块提供…

flink源码分析 - 获取调用位置信息

flink版本: flink-1.11.2 调用位置: org.apache.flink.streaming.api.datastream.DataStream#flatMap(org.apache.flink.api.common.functions.FlatMapFunction<T,R>) 代码核心位置: org.apache.flink.api.java.Utils#getCallLocationName() flink算子flatmap中调用了一…

如何让电脑待机而wifi不关的操作方法!!

1、一台电脑如果一天不关机&#xff0c;大约消耗0.3度电。 一般一台电脑的功耗约为250-400W&#xff08;台式机&#xff09;。 一台电脑每月的耗电量&#xff1a;如果是每小时300W每天10小时每月30天90KW&#xff0c;即90千瓦时的电。 这只是保守估计。 2、使用完毕后正常关闭…

ARM处理器有哪些工作模式和寄存器?各寄存器作用是什么?ARM异常中断处理流程?

《嵌入式工程师自我修养/C语言》系列——ARM处理器有哪些工作模式和寄存器&#xff1f;各寄存器作用是什么&#xff1f; 一、ARM处理器的工作模式及寄存器1.1 ARM处理器的工作模式1.2 ARM处理器中的寄存器 二、ARM 异常中断处理2.1 什么是异常&#xff1f;异常向量表是什么&…

Python爬虫进阶:爬取在线电视剧信息与高级检索

简介&#xff1a; 本文将向你展示如何使用Python创建一个能够爬取在线电视剧信息的爬虫&#xff0c;并介绍如何实现更高级的检索功能。我们将使用requests和BeautifulSoup库来爬取数据&#xff0c;并使用pandas库来处理和存储检索结果。 目录 一、爬取在线电视剧信息 …

es6 中的生成器 generator / 迭代器 / async /await 到底是个啥,使用场景

生成器 generator 到底是个啥 是一个函数 可以用来遍历数据结构是解决异步编程的一种方案进行数据流的生成和控制协程和状态机返回一个生成器对象/可迭代对象 生成器对象&#xff1a; 生成器对象是由生成器函数返回的对象&#xff0c;它符合迭代器协议&#xff08;Iterator Pr…

ChatGpt的初步认知(认知搬运工)

前言 ChatGpt火了有一段时间了&#xff0c;对各行各业也有了一定的渗透&#xff0c;当然发展过程中也做了一些安全约束&#xff0c;今天主要是来跟大家分享下关于chatGpt的初步认知。 一、chatGpt是什么&#xff1f; ChatGPT&#xff0c;全称聊天生成预训练转换器&#xff08;英…

K8S部署Java项目 pod的logs报错为:Error: Unable to access jarfile app.jar

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

react中使用echarts

先上一张效果图 React中 配置属性如下&#xff0c;可直接粘贴使用 import React, { useEffect, useMemo, useState } from react import * as echarts from echarts import ReactECharts from echarts-for-reactconst LineChart (props: any) > {const option {color: [#…

2024年2月26日

2024年2月26日&#xff0c;周一&#xff0c;早上要上班。 做了一个梦、梦见我找到我最爱的那个女孩&#xff0c;刚好梦里她应该也喜欢我吧&#xff0c;我们相拥&#xff0c;她笑的好美&#xff0c;他要带我去见她父亲商量我们的未来&#xff0c;可是她在路上变成了螃蟹&#xf…

惠尔顿安全审计系统任意文件读取漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

《Docker 简易速速上手小册》第6章 Docker 网络与安全(2024 最新版)

文章目录 6.1 Docker 网络概念6.1.1 重点基础知识6.1.2 重点案例&#xff1a;基于 Flask 的微服务6.1.3 拓展案例 1&#xff1a;容器间的直接通信6.1.4 拓展案例 2&#xff1a;跨主机容器通信 6.2 配置与管理网络6.2.1 重点基础知识6.2.2 重点案例&#xff1a;配置 Flask 应用的…

Apache POI技术-在Java中的基本使用

Apache POI技术-在Java中的基本使用 文章目录 Apache POI技术-在Java中的基本使用前言一、Apache POI是什么&#xff1f;1.Apache POI简介&#xff1a;2.Apache POI主要包括的模块&#xff1a;3.Apache POI 的应用场景&#xff1a;报表生成&#xff1a;数据导入导出&#xff1a…

北航复试知识点总结

2024.2.25 住行 报道+机试+两天面试=4天 面试流程 (每个人大概20min,早一点到考场!) 形式:5位老师(一记录,四提问) 老师 陆峰 办公地址:北京航空航天大学新主楼H1033 电子邮箱: lufeng@buaa.edu.cn 个人主页:http://shi.buaa.edu.cn/lufeng/ 面试礼仪 于无形中…

STL初始---C++

STL目录 1.STL的产生原因2.STL基本概念与六大组件2.1基本概念2.2六大组件 3.STL中容器、算法、迭代器3.1容器3.2算法3.3迭代器 4.STL简单应用4.1vector存放内置数据类型4.2vector存放自定义数据类型4.3vector容器嵌套容器 1.STL的产生原因 长久以来&#xff0c;软件界一直希望…

SpringMVC 学习(四)之获取请求参数

目录 1 通过 HttpServletRequest 获取请求参数 2 通过控制器方法的形参获取请求参数 3 通过 POJO 获取请求参数&#xff08;重点&#xff09; 1 通过 HttpServletRequest 获取请求参数 public String handler1(HttpServletRequest request) <form action"${pageCont…

AI误导游戏——LLM的危险幻觉

在当今科技高速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已成为日常生活和工作中不可或缺的一部分。特别是大语言模型&#xff08;LLM&#xff09;如GPT-4等&#xff0c;它们的智能表现令人惊叹&#xff0c;广泛应用于文本生成、语言翻译、情感分析等多个领域…

装饰模式(Decorator Pattern)

定义 装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许通过将对象包装在装饰器类的实例中来动态地添加新的行为和责任。这种模式可以在不修改现有代码的情况下&#xff0c;灵活地扩展对象的功能。 示例 考虑一个咖啡店的场景&…

微服务-微服务Spring Security OAuth 2实战

1. Spring Authorization Server 是什么 Spring Authorization Server 是一个框架&#xff0c;它提供了 OAuth 2.1 和 OpenID Connect 1.0 规范以及其他相关规范的实现。它建立在 Spring Security 之上&#xff0c;为构建 OpenID Connect 1.0 身份提供者和 OAuth2 授权服务器产…
推荐文章