本系列作为Java Performance:The Definitive Guide的读书笔记。
概览
在目前的JVM中,主要有4中垃圾回收器(Garbage Collector):
串行回收器(Serial Collector),主要用于单核计算机吞吐量(并行)回收器(Throughput/Parallel Collector)并发回收器(Concurrent/CMS Co...
分类:
编程语言 时间:
2014-09-21 18:47:50
阅读次数:
224
数据库体系结构:结构组件汇总:
内存结构:
系统全局区 (SGA):数据库缓冲区高速缓存、重做缓冲区以及各种池
程序全局区 (PGA)
进程结构:
用户进程和服务器进程
后台进程:SMON、PMON、reco、DBWn、CKPT、LGWR、ARCn 等
存储结构:
逻辑:数据库、方案、表空间、段、区和 Oracle 块
物理: 数据文件、控制文件和重做日志文件...
分类:
数据库 时间:
2014-09-21 03:56:29
阅读次数:
323
在一个从Java源码编译到JVM字节码的编译器(如javac、ECJ)里,一个“编译单元”(CompilationUnit)指的是一个Java源文件。而在Dalvik VM的JIT里也有一个结构体名为“CompilationUnit”,这个千万不能跟Java源码级的编译单元弄混了——它在这里指的就是...
分类:
其他好文 时间:
2014-09-21 02:59:59
阅读次数:
320
java初始化问题~~~只需要记住三点就行了~~~~看别人的实验,搞的我都郁闷死了,给大家总结下:
* 1.先顺序加载static变量
* 2.无论何时只要执行构造函数,那么在执行构造函数方法体之前必须完成非静态变量,方法的加载(不限次数)
* 3.static执行完成后,classloader会执行main方法体,然后就正常执行呗~~~...
分类:
编程语言 时间:
2014-09-20 17:26:59
阅读次数:
182
数组 / 映射 / 元组一、数组1、定长数组声明数组的两种形式:声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初始值的数组,无需new关键字 Scala声明数组时,需要带有Array类名,且使用 () 来指明长度或提供初始值序列。在JVM中,Sca...
分类:
其他好文 时间:
2014-09-20 01:06:06
阅读次数:
253
一、线程栈模型
线程栈模型是理解线程调度原理以及线程执行过程的基础。线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶,线程栈的内容是随着线程的运行状态变化而变化的,研究线程栈必须选择一个运行的时刻(指代码运行到什么地方)
上图中的栈A是主线程main的运行栈信息,当执行new JavaThreadDemo().threadMethod();方法时,threadMet...
分类:
编程语言 时间:
2014-09-19 22:35:56
阅读次数:
325
我们知道java代码无法强制JVM何时进行垃圾回收,也就是说垃圾回收这个动作的触发,完全由JVM自己控制,它会挑选合适的时机回收堆内存中的无用java对象。代码中显示调用System.gc(),只是建议JVM进行垃圾回收,但是到底会不会执行垃圾回收是不确定的,可能会进行垃圾回收,也可能不会。什么时候才是合适的时机呢?一般来说是,系统比较空闲的时候(比如JVM中活动的线程很少的时候),还有就是内存不足,不得不进行垃圾回收。我们例子中的根本矛盾在于:堆内存由JVM自己管理,堆外内存必须要由我们自己释放;堆内存的...
分类:
其他好文 时间:
2014-09-19 22:32:26
阅读次数:
492
Synchronized,volatile,lock
锁->[就绪队列,堵塞队列]
第一个是jvm层次实现的。与volatile不同的是,后者不能从工作内存写回到主存。所以后者常用于类变量的同步
lock来说,在竞争资源激烈的情况下,效率最高。...
分类:
编程语言 时间:
2014-09-18 14:52:41
阅读次数:
183
转自:http://www.cnblogs.com/laoyangHJ/archive/2011/08/17/JavaGC.html——————————————————————————————————Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正...
分类:
编程语言 时间:
2014-09-18 00:41:42
阅读次数:
388