垃圾回收算法: 标记-清除算法 标记无用对象,再进行清除回收 无法清除垃圾碎片,不需要移动对象 复制算法 按容量划分2个相等的内存区域。当一块用完,将活着的对象复制到另一块上,再对当前使用区域清除 每次只使用一个区域,内存使用率不高。对于存活率高的对象频繁复制 标记-整理算法 标记无用对象,让活着的 ...
分类:
编程语言 时间:
2020-03-23 16:44:36
阅读次数:
68
在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。 所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了 ...
分类:
编程语言 时间:
2020-03-23 11:09:24
阅读次数:
64
堆大小的设置规则 如果垃圾回收发生的频率比你想的要多很多,那么可以在启动JVM的时候为其配置更大的最大堆大小值。堆被填满的时间越久,就越能降低垃圾回收发生的频率。最大堆大小值可以在启动JVM的时候,用-Xmx参数来设定。默认的最大堆大小是被设置为可用的操作系统内存的四分之一,或者最小1GB。 如果问 ...
分类:
其他好文 时间:
2020-03-23 00:29:12
阅读次数:
75
1、Go 语言最主要的特性 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 2、$GOPATH目录约定有三个子目录 src存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go install等命令 ...
分类:
其他好文 时间:
2020-03-21 21:33:35
阅读次数:
69
初面 1、JVM的垃圾回收器有哪些? Serial、Parallel、CMS、G1 2、MyBatis 中 # 和 $ 的区别? # 预编译后生成占位符,$ 类似于字符串拼接;# 比较安全,$ 容易造成 SQL 注入 3、什么是 SQL 注入?(我给忘了) sql注入是一种将sql代码添加到输入参数 ...
分类:
编程语言 时间:
2020-03-18 23:51:44
阅读次数:
185
什么是Google Go? Google Go是由Robert Griesmer,Rob Pike和Ken Thompson在Google设计的一种开源编程语言。 Go在语法上类似于C语言; 除了内存安全性,垃圾回收,结构化类型和CSP样式并发之外。 它具有丰富的标准库。 它最初于2007年开发,于 ...
分类:
其他好文 时间:
2020-03-18 21:43:42
阅读次数:
111
一、Bean 的完整生命周期 在传统的Java应用中,bean的生命周期很简单,使用Java关键字 new 进行Bean 的实例化,然后该Bean 就能够使用了。一旦bean不再被使用,则由Java自动进行垃圾回收。 相比之下,Spring管理Bean的生命周期就复杂多了,正确理解Bean 的生命周 ...
分类:
编程语言 时间:
2020-03-17 21:11:32
阅读次数:
93
JVM中的堆一般分为三大部分:新生代、老年代、永久代,其大致的占比如下: 一、新生代 新生代主要用来存放新生的对象。一般占据堆空间的1/3。在新生代中,保存着大量的刚刚创建的对象,但是大部分的对象都是朝生夕死,所以在新生代中会频繁的进行MinorGC,进行垃圾回收。新生代又细分为三个区:Eden区、 ...
分类:
其他好文 时间:
2020-03-17 19:14:03
阅读次数:
51
垃圾回收机制是自动帮助我们管理内存,清理垃圾的一种工具 1)、引用计数 当一个对象的引用被创建或者复制时,对象的引用计数加1; 当一个对象的引用被销毁时,对象的引用计数减1; 当对象的引用计数减少为0时,就意味着对象已经没有被任何人使用了,可以将其所占用的内存释放了。 优点: 简单、直观 实时性,只 ...
分类:
其他好文 时间:
2020-03-16 23:52:49
阅读次数:
67
Java 堆内存被划分为新生代和老年代两部分,因此 JVM 通常采用分代回收算法。新生代主要使用复制和标记 清除垃圾回收算法 ,老年代主要使用标记 整理垃圾回收算法。JVM 中针对新生代和年老代分别提供了多种不同的垃圾收集器。 根据线程特点,可以将收集器分为三类: 1. 串行收集器 :Serial ...
分类:
其他好文 时间:
2020-03-14 20:12:46
阅读次数:
69