几个必要的知识点

简介: 几个必要的知识点

正文


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

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


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 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

相关文章
|
存储 Cloud Native Linux
QToolButton几个小知识点总结
QToolButton几个小知识点总结
|
7月前
|
算法 C语言
883重要知识点
883重要知识点
49 0
|
7月前
|
数据采集 监控 数据可视化
智慧矿山知识点总结
智慧矿山知识点总结
107 0
|
7月前
|
C++
关于C++的一些小知识点
关于C++的一些小知识点
|
XML 存储 JSON
有关于Java前端的相关知识点
1. 标签上 title 与 alt 属性的区别是什么?,2. DIV+CSS 布局较 table 有什么优势?,3. 介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的?,4. CSS 选择符有哪些?,5. JS 的数据类型有哪些?,6. null,undefined 的区别?,7. 描述下 JSON 对象的两个很重要的方法,8. eval 是做什么的?,9. 简述下为何通过 ajax 发送的请求会出现乱码问题,如何解决?,10.HTML5、CSS3 里面都新增了那些新特性?,11.什么是响应式设计?,12.为什么我们要弃用 table 标签,.......15...
|
Python
知识点总结 (3)
知识点总结 (3)
|
数据采集 人工智能 大数据
知识点总结(1)
知识点总结(1)
|
存储 编译器 程序员
c++续筑 c++11小知识点
在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它 C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。
166 0
c++续筑 c++11小知识点
下一篇
DataWorks