IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 一面 自我介绍 实验室项目 object方法 hashmap 数组 链表 TCP、UDP GET、POST 缓存 双亲委派机制 好处 数据库事务、索引、大表优化 垃圾回收机制 年龄到15晋升到老年 -> 正文阅读

[网络协议]一面 自我介绍 实验室项目 object方法 hashmap 数组 链表 TCP、UDP GET、POST 缓存 双亲委派机制 好处 数据库事务、索引、大表优化 垃圾回收机制 年龄到15晋升到老年

作者:牛客229490098号
链接:https://ac.nowcoder.com/discuss/755338?type=2&order=0&pos=1&page=1&ncTraceId=&channel=-1&source_id=discuss_tag_nctrack
来源:牛客网

一面
自我介绍 实验室项目
object方法 hashmap 
数组 链表
TCP、UDP
GET、POST 缓存
双亲委派机制 好处
数据库事务、索引、大表优化
垃圾回收机制 年龄到15晋升到老年代 为什么?可以更改么?

object方法

image-20210925091448077

finalize

对象在被GC释放之前一定会调用finalize方法,对象被释放前最后的挣扎,因为无法确定该方法什么时候被调用,很少使用。

hashmap

image-20210925094621506

从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,如下如所示。红黑树是2-3-4是引入红黑树形成的特殊平衡树

image-20210925095458657

数组 链表

数组存储地址连接在一起,方便查询,难于插入删除

链表存储地址不联系,每个元素保存下一个元素的地址,方便插入删除,易于查询

TCP、UDP

tcp/udp都属于Tcp/Ip协议。在tcp/ip的模型中属于传输层,

UDP用于处理数据包,是一种无连接的协议,只管发送不确认是否完整发送或是完整到达,发送是只需在数据报加上一个udp头标,开销小,数据传输高效。

TCp也用于处理数据包。是一种面写连接,可靠,基于字节流的传输层通信协议,连接时需要三次握手,核心是双方都能收发数据

第一次客服端,发送握手信号。

第二次服务端,返回握手信号,和确认信号。 这步就完成了客户端收发数据,服务端发数据,所以我们扔需要确认服务端是否能受数据。

第三次客户端,发送确认信号

如果没有收到,会有超时重发。

image-20210925101910774

断开连接四次挥手也是同理

第一次客户端,发送断开请求

第二次服务端,发送确认信号,客户端到服务端连接断开,但是是双工通信,服务端仍可发出信息,客户端需要等待服务端发送二次确认。 这里完成了,客户端的收发数据

第三次服务端,发送数据完成后,想客户端发送确认断开信号。 服务端发数据

第四部客户端,等待2msl(Maximum Segment Lifetime),返回确认信号。完成服务端收数据

1.为什么连接的时候是三次握手,关闭的时候却是四次握手?

但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET

2.为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文

对比

image-20210925103333050

双亲委派机制 好处

双亲委派先谈jvm,jvm提供了BootstrapclassLoaderExtClassLoader/AppClassLoader三个类加载器

如果没有定义,自定义类加载器,程序一般在appClassLoard中

我们程序的类被加载时先=》ExtClassLoader-》BootstrapclassLoader

如果都不存在再有本身加载,这样利用三层查找加载已加载的类。

优势

沙箱安全机制:比如自己写的String.class类不会被加载,这样可以防止核心库被随意篡改
避免类的重复加载:当父ClassI oader已经加载了该类的时候,就不需要子CJlassI oader再加载一 次

image-20210925104416541

数据库事务、索引、大表优化

事务就是并发控制的基本单位。有一系列操作指令组成

特性:ACID

原子性/一致性/隔离性/持久性

原子性:同事成功或失败

一致性:事务执行前后执行状态一致,几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。 例如不能从余额为0的银行卡先取出1000,在存入1000,一致性和原子性密切相关。

隔离性:事务不受其他因素干扰,事务执行的中间结果对其他事务必须是透明的

持久性: 对数据影响的永久的

索引不了解

大表优化

1.字段优化

  • 尽量使用 TINYINT,SMALLINT,MWDIUM_INT作为整数类型而非 INT,如果非负则加上UNSIGNED.
  • VARCHAR 的长度只分配需要的空间.
  • 使用枚举或者整数代替字符串类型.
  • 尽量使用TIMESTAMP而非DATETIME.
  • 单表不要有太多字段,建议在20以内.
  • 避免使用null字段,很难查询优化且占用额外索引空间.
  • 用整形来存ip

2.索引优化

  • 字符字段只建前缀索引.
  • 字符字段最好不要做主键.
  • 不用外键,用程序保证约束.
  • 尽量不用UNIQUE,由程序保证约束.

3.查询SQL优化

  • 不用 SELECT *.
  • 少用 JOIN.
  • 避免 %xxx式查询.

垃圾回收机制 年龄到15晋升到老年代 为什么?可以更改么?

垃圾回收机制GC的算法有哪些?标记清除法,标记压缩,复制算法,引用计数器,分代收集算法 怎么用的?

引用计数是计算机编程语言中的一种**内存管理**技术,是指将资源(可以是对象内存磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。

复制算法需要空间只有一半了

image-20210925130453806

为了优化复制算法,产生了标记清除算法,

标记清除会产生内存片段不连续,优化之后就是标记压缩算法。

image-20210925124838252

64位操作系统的jvm虚拟机新生代GC最大年龄为15后转为老年代的原因
我们所知道的对象布局中对象头中会存储对象的GC状态,而这个GC状态也就有对象的GC年龄。而在对象头中,它是由4位数据来对GC年龄进行保存的,所以最大值为1111,即为15。所以在对象的GC年龄达到15时,就会从新生代转到老年代。

可以更改么?

不知道

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-26 10:33:32  更:2021-09-26 10:34:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:44:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码