Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。 JDK1.8之前的堆内存示意图: 从上图可以看出堆内存分为新生代、老年代和永久代。新生代又被进一步分为:Eden 区+Survivor1 区+Survivor2 ...
分类:
编程语言 时间:
2019-02-04 12:52:25
阅读次数:
261
A NoOp Garbage Collector JDK上对这个特性的描述是: 开发一个处理内存分配但不实现任何实际内存回收机制的GC, 一旦可用堆内存用完, JVM就会退出. 如果有System.gc()调用, 实际上什么也不会发生(这种场景下和 XX:+DisableExplicitGC效果一样 ...
分类:
编程语言 时间:
2019-02-04 10:29:05
阅读次数:
379
恢复内容开始 一、go特点 一个文件属于一个包 package 垃圾回收机制,自动回收,不需要管理 天然并发 goroutine 轻量级线程,高效利用多核 channle管道通信机制 函数可以返回多个值 二、开发工具 vscode 插件 sublime Text Vim Emacs Eclipse ...
分类:
编程语言 时间:
2019-02-04 08:59:18
阅读次数:
153
for循环的另一种写法,在这里记录一下。但这里还有一点可以优化的地方,循环中的int x是一个临时变量,在每一次循环中,var都会给x重新复制,也就需要重新开辟一个空间存放var的值。如果这个临时变量存放在栈区,函数执行结束由系统回收的话,for循环的空间复杂度就是O(n)。可使用如下方式: 使用引 ...
分类:
其他好文 时间:
2019-02-03 19:47:54
阅读次数:
617
缓冲区(Buffer) 缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区: 使用缓冲区有这么两个好处: 1、减少实际的物理读写次数 2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的 ...
分类:
其他好文 时间:
2019-02-03 12:52:24
阅读次数:
165
C3P0数据源 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。C3P0数据源在项目开发中使用得比较多。 c3p0与dbcp区别 创建c3p0-config.xml: 创建JdbcU ...
分类:
其他好文 时间:
2019-02-03 12:45:38
阅读次数:
182
1.局部变量和全局变量 1.1局部变量 局部变量是在函数内部定义的变量,只能在定义函数的内部使用 函数执行结束后,函数内部的局部变量会被系统收回 不同函数可以定义相同名字的局部变量,但是各用个的互不影响 局部变量的生命周期: 1.所谓生命周期就是变量从被创建到被系统回收的过程 2.局部变量在函数被调 ...
分类:
编程语言 时间:
2019-02-02 19:16:31
阅读次数:
215
一 引入计数 Python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。 二 垃圾回收 1、当内存中有不再使用的部分时,垃圾收集器就会把他们清理掉。它会去检查 ...
分类:
编程语言 时间:
2019-02-02 19:06:14
阅读次数:
187
上下文管理器 "原理" "代码讲解" 原理 上下文管理能保证资源会被正确回收,即保证退出步骤的执行。其用处最多的是, 作为确保资源被正确回收的一种方式。 一种重复使用的 结构的有效机制,因为其功能是封闭代码,且可以填充 任意格式的代码块。 语法上 不接受其余参数 ,除了自带的 之外, 在不包括sel ...
分类:
编程语言 时间:
2019-02-02 12:39:22
阅读次数:
185
作为使用范围最广的虚拟机之一HotSpot,必须对垃圾回收算法的执行效率有严格的考量,只有这样才能保证虚拟机高效运行 ...
分类:
编程语言 时间:
2019-02-01 20:39:25
阅读次数:
139