JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(StringclassName)实现。 例如: try...
分类:
数据库 时间:
2015-04-22 13:44:20
阅读次数:
164
Java 不是一门程序语言,它是一个平台,也可以说是一门技术.Java 包括 1.Java 程式语言 一个类似 C++ 或 Smalltalk 的物件导向程式语言。学习 Java 程式语言类似学人类语言,都有一套规则和文法。 2.Java 虚拟机器(JVM) 用来执行 Java 程式。JVM 有许多...
分类:
编程语言 时间:
2015-04-22 13:23:04
阅读次数:
136
对Java垃圾回收最大的误解是什么?它实际又是什么样的呢?
当 我还是小孩的时候,父母常说如果你不好好学习,就只能去扫大街了。但他们不知道的是,清理垃圾实际上是很棒的一件事。可能这也是即使在Java的世界中, 同样有很多开发者对GC算法产生误解的原因——包括它们怎样工作、GC是如何影响程序运行和你能对它做些什么。因此我们找到了Java性能调优专家Haim
Yadid,并把名为Java
p...
分类:
编程语言 时间:
2015-04-22 11:51:11
阅读次数:
159
结论
局部变量表中的变量是很重要的垃圾回收根节点,被局部变量表中变量直接活着间接引用的对象都不会被回收。
实验
看如下代码,使用JVM的-XX:+PrintGC参数运行下面代码(在main函数中分别执行localVarGcN的每一个函数)
package com.winwill.jvm.basic;
/**
* @author qifuguang
* @date 15/4/21 20...
分类:
编程语言 时间:
2015-04-22 09:46:32
阅读次数:
177
强引用,软引用,弱引用,虚引用
强引用:
我们一般使用的就是强引用。垃圾回收器绝不会回收它。
当内存空间不足时Java虚拟机宁愿抛出OutOfMemoryError错误使程序异常终止,也不会回收具有强引用的对象来解决内存不足的问题
软引用:
如果一个对象具有软引用,那么当内存空间足够的时候GC就不会回收它,如果内存空间不足了,就会回收这些对象的内存空间。
弱引用...
分类:
其他好文 时间:
2015-04-21 16:13:49
阅读次数:
148
Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。
关于这篇教程是系列第一部分。首先会解释基本的术语,比如JDK、JVM、JRE和HotSpotVM。接着会介绍JVM结构和Java 堆内存结构。理解这些基础对于理解后面的垃圾回收知识很重要。
Java...
分类:
编程语言 时间:
2015-04-21 14:43:14
阅读次数:
176
1、强引用(StrongReference) ??? ? ? ? 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: Object?o=new?Object();???//??强引用 当内存空间不足,Java虚拟机...
分类:
编程语言 时间:
2015-04-21 13:14:35
阅读次数:
183
从今天开始,我会发5个关于java虚拟机的小系列:实战Java虚拟机之一“堆溢出处理”实战Java虚拟机之二“虚拟机的工作模式”实战Java虚拟机之三“G1的新生代GC”实战Java虚拟机之四“禁用System.gc()”实战Java虚拟机之五“开启JIT编译”下面说说【实战Java虚拟机之一“堆溢出处..
分类:
编程语言 时间:
2015-04-21 13:11:28
阅读次数:
203
默认情况下,System.gc()会显式直接触发Full GC,同时对老年代和新生代进行回收。而一般情况下我们认为,垃圾回收应该是自动进行的,无需手工触发。如果过于频繁地触发垃圾回收对系统性能是没有好处的。
分类:
编程语言 时间:
2015-04-21 12:48:30
阅读次数:
138
默认情况下,System.gc()会显式直接触发Full GC,同时对老年代和新生代进行回收。而一般情况下我们认为,垃圾回收应该是自动进行的,无需手工触发。如果过于频繁地触发垃圾回收对系统性能是没有好处的。...
分类:
编程语言 时间:
2015-04-21 11:08:18
阅读次数:
182