Tomcat, Jetty, resin, Oracle Application server, WebLogic Server, Glassfish, Websphere, JBoss 等等。(提供了 Servlet 功能的服务器,叫做 Servlet 容器。对 web 程序来说,Servlet ...
分类:
其他好文 时间:
2019-08-27 12:44:27
阅读次数:
154
# 就像我们生活中会产生垃圾一样,程序在运行过程当中也会产生垃圾 # 程序运行过程中产生的垃圾会影响到程序的运行的运行性能,所以这些垃圾必须被及时清理 # 没用的东西就是垃圾 # 在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能 # 所以我们必须进行及时的垃圾回收,所谓... ...
分类:
编程语言 时间:
2019-08-26 18:08:29
阅读次数:
98
在去年的9月26日,Oracle官方宣布Java11正式发布,这是Java大版本周期变化后的第一个长期支持版本,非常值得关注。Java9和Java10都在很短的时间内就过渡了,所以,Java11将是一个不可忽视的版本。从时间节点看,JDK11的发布正好处在JDK8免费更新到期的前夕,同时,JDK8、 ...
分类:
编程语言 时间:
2019-08-26 13:04:02
阅读次数:
75
提到Java的内存管理,我始终抱有一种又爱又恨的心理。作为一门面向对象的高级语言,Java的确为减轻程序员的负担做出了巨大的努力,它的垃圾回收机制帮助百万程序员从C系语言恼人的内存管理问题中解脱出来,成为自身的一大亮点;但同时,垃圾回收机制的不可强制执行的特点,又让了解过C/C++的人觉得自动垃圾回 ...
分类:
编程语言 时间:
2019-08-26 00:40:37
阅读次数:
94
使用过C++的人应该知道,使用new运算符在堆上创建对象的代价是非常高的——不但创建很麻烦,管理也很麻烦。Java也是通过new运算符在堆上创建对象,但是很明显有着较高的速度。这就要归功于垃圾回收器的存在了。 C++的堆分配和Java堆分配的不同之处 C++堆的管理是由程序员来负责的,这就意味着,对 ...
分类:
其他好文 时间:
2019-08-26 00:29:54
阅读次数:
91
我们几乎无法从Java本身改变其回收机制的策列,但我们可以改变我们的编程方式和在编程中的注意事项。 1.Java没有C++中对象析构的功能,但Java的垃圾回收机制是有原则的,它会回收没有变量引用的对象。这种对象没有变量引用它,也就再也不可能有任何方法找到这个“丢失的”对象了——GC回收的就是这种对 ...
分类:
编程语言 时间:
2019-08-26 00:21:02
阅读次数:
94
概述 Java运行时区域中,程序计数器,虚拟机栈,本地方法栈三个区域随着线程的而生,随线程而死,这几个区域的内存分配和回收都具备确定性,不需要过多考虑回收问题。而Java堆和方法区则不一样,一个接口的多个实现类需要的内存不一样,一个方法的多个分支需要的内存可能也不一眼,我们只有在运行期,才能知道会创 ...
分类:
其他好文 时间:
2019-08-25 21:38:02
阅读次数:
105
高性能go服务之高效内存分配 手动内存管理真的很坑爹(如C C++),好在我们有强大的自动化系统能够管理内存分配和生命周期,从而解放我们的双手。 但是呢,如果你想通过调整JVM垃圾回收器参数或者是优化go代码的内存分配模式话来解决问题的话,这是远远不够的。自动化的内存管理帮我们规避了大部分的错误,但 ...
分类:
其他好文 时间:
2019-08-24 14:59:37
阅读次数:
81
起源 1960年Lisp语言: 第一门真正使用内存动态分配和垃圾回收的语言。 运行时数据区域 1.程序计数器 Program Counter Register 1. 当前线程所执行的字节码的行号指示器。 2. 字节码解释器的工作是通过改变这个计数器的值去选取下一条需要执行的字节码指令。 3. 每条线 ...
分类:
编程语言 时间:
2019-08-23 22:21:15
阅读次数:
112
一、起源 1960年Lisp语言: 第一门真正使用内存动态分配和垃圾回收的语言。 二、概要 线程相关:程序计数器、虚拟机栈、本地方法栈,不需要考虑垃圾回收 Java堆、方法区:需要考虑垃圾回收 三、垃圾回收算法 1 引用计数算法 2 可达性分析算法 垃圾收集算法 1 标记-清除算法 Mark-Swe ...
分类:
编程语言 时间:
2019-08-23 22:12:47
阅读次数:
122