https://my.oschina.net/u/1464083/blog/3022661 在传统的软件测试中,我们通常通过一个给定的条件来判断系统的反馈,通过断言来判断是否符合预期,测试条件和结果通常比较明确和固定。而混沌工程,是通过注入一些“不确定”因素,象放进了一群淘气的猴子,在系统资源、可用 ...
分类:
Web程序 时间:
2019-07-12 18:54:32
阅读次数:
180
资料: 一、什么是OOM OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error 二、为什么会OOM、出现的原因是什么 为什么会没有内存了呢?原因不外乎有两点: ① 分配的少了: ...
分类:
编程语言 时间:
2019-07-12 12:55:12
阅读次数:
149
强引用 Java 默认的就是强引用 只要有强引用存在,对象就不会被回收 软引用 如果内存足够就不进行回收,内存不够的时候会进行回收 比较适合做大对象的缓存 弱引用 如果垃圾回收发生,在线程扫描的时候,如果一个对象只有弱引用存在,那么就会被回收 如果这个对象是偶尔的使用,并且希望在使用时随时就能获取到 ...
分类:
编程语言 时间:
2019-07-12 12:37:16
阅读次数:
103
JAVA head 分三个区域:1、新生代:1).Eden(伊甸园)区是新对象分配内存的地方,由于堆是所有线程共享的,因此在堆上分配内存需要加锁。而Sun JDK为提升效率,会为每个新建的线程在Eden上分配一块独立的空间由该线程独享,这块空间称为TLAB(Thread Local Allocati ...
分类:
编程语言 时间:
2019-07-11 20:26:24
阅读次数:
106
了解单例模式:http://terrylee.cnblogs.com/archive/2005/12/09/293509.html 单例模式实际应用场景。 1. Windows的Task Manager(任务管理器)就是很典型的单例模式(这个很熟悉吧),想想看,是不是呢,你能打开两个windows ...
分类:
其他好文 时间:
2019-07-11 20:23:05
阅读次数:
122
一、 垃圾收集有哪些算法以及各自的特点 标记清除算法 复制算法 标记整理算法 分代收集算法 1. 标记清除算法 :将所有需要回收的对象进行标记,标记结束后对标记的对象进行回收。 缺点 是效率低,会造成大量的碎片。 2. 复制算法 :复制算法将空间分为两部分,每次使用其中的一部分。当一块内存用完了,就 ...
分类:
其他好文 时间:
2019-07-10 01:02:46
阅读次数:
124
为什么要使用连接池 一个数据库服务器只拥有有限的连接资源,一旦所有的连接资源都在使用,那么其它需要连接的资源就只能等待释放连接资源。所以,在连接资源有限的情况下,提高单位时间的连接的使用效率,缩短连接时间,就能显著缩短请求时间。 所以就有了连接池的概念,在初始化时,创建一定数量的连接,先把所有连接存 ...
分类:
其他好文 时间:
2019-07-09 09:29:19
阅读次数:
88
难得遇到一次java堆内存溢出(心里想着,终于可以来一次jvm性能优化了$$) 先看下报错信息, 错误就是发出了这样的信号: 执行垃圾收集的时间比例太大, 有效的运算量太小. 默认情况下, 如果GC花费的时间超过 98%, 并且GC回收的内存少于 2%, JVM就会抛出这个错误。 资料来源:OutO ...
分类:
Windows程序 时间:
2019-07-08 19:41:07
阅读次数:
2527
【阅读模式答题】 答题:对于JVM的理解,在我看来有两个重要部分: 第一是Java代码编译和执行的整个过程: 开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换 ...
分类:
其他好文 时间:
2019-07-08 17:56:29
阅读次数:
111
一. java虚拟机的内存模型如图: 补习一下jvm内存模型中的各个组成部分 堆: 1. 我们new出来的对象全部放在堆中,他是jvm所能够动态分配的最大的一块空间 2. 优点: 内存动态分配,生命周期不必事先告诉编译器,由JAVA的垃圾回收线程动态回收 <! more 栈: 1. 存取的速度仅次于 ...
分类:
其他好文 时间:
2019-07-08 13:29:07
阅读次数:
63