摘要: 一、为什么不要使用finalize 终结方法finalize是不可预测的: (1)无法保证什么时间执行。 (2)无法保证执行该方法的线程优先级。 (3)无法保证一定会执行。 (4)如果在终结方法中抛出了异常,并且该异常未捕获处理,则当前对象的终结过程会终止,且该对象处于破坏状态。 (5)影响GC的效 阅读全文
posted @ 2021-04-12 23:24 re-phoenix 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 本题题目的意思是计算在慢启动阶段,传输15个报文段所需要的全部时间,需要知道以下知识点: TCP连接建立时间,以及三次握手的过程,TCP握手第三次即可发送请求体(这叫做捎带)。 请求方发送请求后,服务方将对象以报文段的形式发送,每一个报文段要求有ack响应。 服务方发送速率受制于拥塞窗口大小,且在慢 阅读全文
posted @ 2020-09-13 20:52 re-phoenix 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 最近同事开发一个新交易的时候,使用了谷歌表达式引擎aviator,在测试阶段碰到了一个诡异的问题:应用在本机环境上测试,功能一切正常,丢到websphare服务器上测试,只要调用了相关交易,应用进程会立刻挂掉然后被websphare的nodeagent重新拉起来。由于这个交易是一个文件入库功能,最开 阅读全文
posted @ 2020-05-12 20:40 re-phoenix 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 一、何时创建服务引用 引用官方文档的原话,如果将Dubbo托管在Spring-IOC容器下,Dubbo服务引用的时机有两个,第一个是在Spring容器调用ReferenceBean的afterPropertiesSet方法时引用服务,第二个是在ReferenceBean对应的服务被注入到其他类中时引 阅读全文
posted @ 2019-06-28 18:53 re-phoenix 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 一、什么是SPI SPI全称为Service Provider Interface,是一种服务发现机制,其本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件。这样可以在运行时,动态为该接口替换实现类。 JDK提供了默认的SPI实现,但是Dubbo并未使用JDK提供的SPI,而是自己 阅读全文
posted @ 2019-06-15 21:34 re-phoenix 阅读(910) 评论(2) 推荐(1) 编辑
摘要: 人肉翻译,非谷歌机翻,部分地方添加了个人的理解,并做了分割,如有错误请在评论指出。转载请指明原链接,尊重个人劳动成果。 High-Level-Rest-Client基于Low-Level-Rest-Client封装,Client配置方面基于Low-Level,而API使用上基于High-Level。 阅读全文
posted @ 2019-04-02 22:31 re-phoenix 阅读(3201) 评论(0) 推荐(1) 编辑
摘要: 本节为JVM垃圾收集的基础理论,一个GC过程在逻辑上需要经过两个步骤,即先判断哪些对象是存活的、哪些对象是死亡的,然后对死亡的对象进行回收。 一、关于回收目标 在前面我们已经了解到,JVM的内存模型划分为多个区域,由于不同区域的实现机制以及功能不同,那么各自的回收目标也不同。一般来说,内存回收主要涉 阅读全文
posted @ 2019-01-08 20:45 re-phoenix 阅读(1033) 评论(3) 推荐(1) 编辑
摘要: 一、对象的内存布局 以Hotspot虚拟机为例,对象在内存中的结构可以分为三部分:对象头(header)、实例数据(instance data)、对齐填充(padding)。 1.1.对象头 1.1.对象头 对象头的结构大体相似,但不同JVM的具体实现使得它们略有差别。一般来说,对象头都包含了标记字 阅读全文
posted @ 2018-12-15 16:34 re-phoenix 阅读(605) 评论(0) 推荐(2) 编辑
摘要: 1.1.什么是直接内存(Derect Memory) 在内存模型最开始的章节中,我们画出了JVM的内存模型,里面并不包含直接内存,也就是说这块内存区域并不是JVM运行时数据区的一部分,但它却会被频繁的使用,原因是NIO这个包。 NIO(New input/output)是JDK1.4中新加入的类,引 阅读全文
posted @ 2018-09-15 17:22 re-phoenix 阅读(7322) 评论(1) 推荐(1) 编辑
摘要: 一、堆(Heap) 1.1.什么是堆 堆是用于存放对象的内存区域。因此,它是垃圾收集器(GC)管理的主要目标。其具有以下特点: 堆在逻辑上划分为“新生代”和“老年代”。由于JAVA中的对象大部分是朝生夕灭,还有一小部分能够长期的驻留在内存中,为了对这两种对象进行最有效的回收,将堆划分为新生代和老年代 阅读全文
posted @ 2018-09-15 17:17 re-phoenix 阅读(3704) 评论(0) 推荐(1) 编辑
levels of contents