几个必要的知识点

简介: 几个必要的知识点

正文


俗话说的好,工欲善其事,必先利其器。有一件趁手的兵器非常的重要,同理,一个优秀的、强大的、速度够快的电脑是代码开发人员的理想吃饭工具。当然,我们还有优化并且提高自己的编程功底。

今天分享的是几个相对来说比较重要的知识点:


JDK8中元空间的意义?

1、字符串存在永久代中,容易出现性能问题和内存溢出。

2、类及方法的信息等比较难确定其大小,因此对于永久代的大小指定比较困难,太小容易出现永久代溢出,太大则容易导致老年代溢出。

3、永久代会为 GC 带来不必要的复杂度,并且回收效率偏低。

4、Oracle 可能会将HotSpot 与 JRockit 合二为一。


如何避免线程的死锁问题?

1. 破坏互斥条件 :这个条件我们没有办法破坏,因为我们用锁本来就是想让他们互斥的(临界 资源需要互斥访问)。

2. 破坏请求与保持条件 :一次性申请所有的资源。

3. 破坏不剥夺条件 :占用部分资源的线程进一步申请其他资源时,如果申请不到,可以主动释放它占有的资源。

4. 破坏循环等待条件 :靠按序申请资源来预防。按某一顺序申请资源,释放资源则反序释放。破坏循环等待条件。


如何判断一个常量是一个废弃的常量?

运行时常量池主要回收的是废弃的常量。假如在常量池中存在字符串 "abc",如果当前没有任何String对象引用该字符串常量的话,就说明常量 "abc" 就是废弃常量,如果这时发生内存回收的话而且有必要的话,"abc" 就会被系统清理 出常量池。


什么样的类会被Java虚拟机回收?

1. 该类所有的实例都已经被回收,也就是 Java 堆中不存在该类的任何实例。

2. 加载该类的 ClassLoader 已经被回收。

3. 该类对应的 java.lang.Class 对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。


TCP如何保证可靠传输的?

1. 应用数据被分割成 TCP 认为最适合发送的数据块。

2. TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。


3. 校验和: TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。


4. TCP 的接收端会丢弃重复的数据。


5. 流量控制: TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的 速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。(TCP 利用滑 动窗口实现流量控制)


6. 拥塞控制: 当网络拥塞时,减少数据的发送。


7. ARQ协议: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。


8. 超时重传: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

相关文章
|
前端开发 JavaScript API
前端 excelex 包可将数据保存为 xls、xlsx、csv、txt 文件(支持单元格样式、合并单元格等)
前端 excelex 包可将数据保存为 xls、xlsx、csv、txt 文件(支持单元格样式、合并单元格等)
356 1
|
9月前
|
机器学习/深度学习 自然语言处理
RWKV-7 2.9B 开源发布!纯 RNN 无 KV cache,支持世界所有语言
RWKV-7 2.9B 开源发布!纯 RNN 无 KV cache,支持世界所有语言
295 0
|
Java Maven
Idea下运行Maven项目时provide包没有依赖导致类找不到
Idea下运行Maven项目时provide包没有依赖导致类找不到
413 0
|
存储 搜索推荐 Java
ElasticSearch 的概念解析与使用方式(一)
ElasticSearch 的概念解析与使用方式(一)
386 1
|
消息中间件 PHP 数据安全/隐私保护
docker安装rabbitmq并配置hyperf使用
通过以上步骤,您可以实现在Docker容器中安装和配置RabbitMQ,并在PHP的Hyperf框架中进行集成和使用。这种方式为开发者提供了快速部署并实现消息队列解决方案的能力,同时维持了环境与生产环境的一致性,从而为开发高效的分布式应用程序提供了便利。
390 3
docker安装rabbitmq并配置hyperf使用
|
Python
Python pip 操作的几种用法
Python pip 操作的几种用法
372 0
|
Kotlin
Kotlin中接口、抽象类、泛型、out(协变)、in(逆变)、reified关键字的详解
Kotlin中接口、抽象类、泛型、out(协变)、in(逆变)、reified关键字的详解
251 0
|
存储 Cloud Native 关系型数据库
Ganos三维引擎系列(四):路网与地形贴合
本文介绍了阿里云多模态时空数据库Ganos三维引擎在交通领域的专题应用,帮助业务侧快速实现三维地形与高精路网的自动贴合。Ganos三维引擎支持三大类存储结构:表面网格模型、体网格模型与3D实景模型,其中表面网格模型(SFMesh)提供了三维地形数据的存储能力,同时提供了与矢量三维(Polygon3D)的贴合功能,帮助用户降低交通领域三维数据生产处理的难度。
|
机器学习/深度学习 编解码 计算机视觉
YOLOv5改进 | 主干篇 | EfficientNetV1高效的特征提取网络
YOLOv5改进 | 主干篇 | EfficientNetV1高效的特征提取网络
482 0