JVM-03-OOM JVM 堆内存溢出(outOfMemoryError:java heap space)
OOM
为什么要知道
1、内存泄露一般是代码设计存在缺陷导致的,通过了解内存泄露的场景,可以避免不必要的内存溢出和提高自己的代码编写水平;
2、通过了解内存溢出的几种常见情况,可以在出现内存溢出的时候快速的定位问题的位置,缩短解决故障的时间。
概念
内存泄露
指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用。
...
2018-10-08 02:04:06 |
Java
JVM-02-JMM 运行时内存模型
运行时内存模型
相关内容参见 java 运行时内存模型
直接内存
特征
直接内存并非 JVMS 定义的标准 Java 运行时内存。
直接内存区域是全局共享的内存区域。
直接内存区域可以进行自动内存管理(GC),但机制并不完善。
本机的 Native 堆(直接内存) 不受 JVM 堆内存大小限制。
可能出现 OutOfMemoryError 异常。
nio
...
2018-10-07 23:19:52 |
Java
JVM-02-HotSpot 虚拟机对象探秘
对象的内存布局
在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域:
对象头(Header)
实例数据(Instance Data)
对齐填充(Padding)
对象头
对象头记录了对象在运行过程中所需要使用的一些数据:
哈希码
GC 分代年龄
...
2018-10-07 23:19:52 |
Java
JVM-01-jvm ovewview 概览
Java 技术体系
组成部分
java 编程语言
jvm
class 文件格式
API 类库
其他三方库
JDK 与 JRE
JDK
java 编程语言、API 类库、JVM
开发环境
JRE
Java SE API、JVM
运行环境
Java技术体系的...
2018-10-07 23:19:52 |
Java
JVM-00-what is jvm
什么是Java虚拟机
作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的。
但是如果要问什么是虚拟机,恐怕很多人就会模棱两可了。
在本文中,我会写下我对虚拟机的理解。因为能力所限,可能有些地方描述的不够欠当。
如果你有不同的理解,欢迎交流。
我们都知道java程序必须在虚拟机上运行。
那么虚拟机到底是什么呢?
先看网上搜索...
2018-10-07 23:19:52 |
Java
database Jdbc-04-oracle jdbc 链接信息
如何连接到 oracle
详情
如何从我的Streaming和/或LiveView应用程序连接到Oracle数据库?
解决方案
首先,确定您的Oracle数据库的正确URL。URL应为以下格式之一:
jdbc:oracle:thin:@<dbhost>:<dbport>:<sid>
jdbc:oracle:thin:@<dbhost>:&l...
2018-10-07 06:51:25 |
Database
database Jdbc-03-fetchsize
聊聊jdbc statement的fetchSize
在使用MySQL的JDBC时,如果查询结果集过大,使用一次查询,可能会出现Java.lang.OutOfMemoryError: Java heap space问题,因为DB服务器端一次将查询到的结果集全部发送到Java端保存在内存中而造成OOM。
MySQL JDBC需要一条SQL从数据库读取大量数据,而不发生JVM OOM,可以采...
2018-10-07 06:51:25 |
Database
database Jdbc-02-PreprareStatement & Statement
执行计划的区别
以Oracle为例吧
Statement为一条Sql语句生成执行计划,
如果要执行两条sql语句
select colume from table where colume=1;
select colume from table where colume=2;
会生成两个执行计划
一千个查询就生成一千个执行计划!
PreparedStatement用于使用绑定...
2018-10-07 06:51:25 |
Database