JDK里面本身就带了很多的监控工具,如JConsole等。 我们今天要讲的这款工具visualvm,就是其中的一款。但是这款工具是在JDK1.6.07及以上才有的。它能够对JAVA程序的JVM堆、线程、类加载情况、JVM GC情况进行监控,是一个很好的免费的监控工具。监控范围:JDK1.4及以上版....
分类:
编程语言 时间:
2014-08-24 18:00:53
阅读次数:
247
1.Java的内存泄漏
在Java中,内存泄漏指的是存在具备下面两个特点的对象:
①这些对象是可达的,即在有向图中,存在通路可以与其相连;
②这些对象是无用的,即程序以后不会再使用这些对象。
如果对象满足这两个条件,就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,却占用着内存。对于那些不可达的对象,GC会负责回收。
我们可以通过调用System.gc()去访问GC,但是JVM...
分类:
编程语言 时间:
2014-08-24 15:30:12
阅读次数:
325
看了你的问题, 我还特意的查看了ZooKeeper的启动脚本代码。ZooKeeper启动脚本没有加任何参数,也就是使用jvm默认的。如果想要加大ZooKeeper的JVM使用内存。可以在更改{ZK_HOME}/bin/zkServer.sh,大约在109-110行。?12nohup $JAVA "-...
分类:
其他好文 时间:
2014-08-24 10:13:02
阅读次数:
249
出现java.lang.OutOfMemoryError: Java heap space的错误要么是程序问题,要么就是分配给JVM的内存确实不够。
一般来说都是可以事前可控解决的。
但是如果不可控的情况,例如使用第三方包,或者系统抽筋,就会抛出OutOfMemoryError错误。OH NO,根据不会抛出来,当前线程直接挂掉。
既然都...
分类:
编程语言 时间:
2014-08-23 21:40:51
阅读次数:
250
第十六章(数据的输入输出处理)1、在变量、数组、对象中存储数据是暂时的,程序运行结束后他们就会消失。为了永久地保存程序创建的数据,可以将其保存在磁盘文件中,这样以后可以在其他程序中使用这些数据。2、可以使用文件输入/输出流与指定的文件建立关联,然后将需要的数据输..
分类:
编程语言 时间:
2014-08-23 19:11:31
阅读次数:
212
启动mqnamesrv总是报,Load JVM error D:\Program Files (x86)\Java\jdk1.6.0_13/jre/bin/server/jvm.dll,我JDK检查几次没有问题
后在开发群里询问网友,JDK必须使用64位解决掉了。
启动mqnamesrv
start/b bin/mqnamesrv.exe >mqnamesrv.log
...
Singleton模式可以是很简单的,它的全部只需要一个类就可以完成(看看这章可怜的UML图)。但是如果在“对象创建的次数以及何时被创建”这两点上较真起来,Singleton模式可以相当的复杂,比头五种模式加起来还复杂,譬如涉及到DCL双锁检测(double checked locking)的讨论、涉及到多个类加载器(ClassLoader)协同时、涉及到跨JVM(集群、远程EJB等)时、涉及到单例对象被销毁后重建等。对于复杂的情况,本章中会涉及到其中一些[1]...
分类:
其他好文 时间:
2014-08-23 17:47:51
阅读次数:
327
TCP传输(传输控制协议):TCP协议是一种面向连接的,可靠的字节流服务。当客户端和服务器端彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能进行数据的传输。它将一台主机发出的字节流无差错的发送到互联网的其它主机。在发送端负责把上层传下来的字节流分成报文段传递给下层。在接收端负责把报文重组...
分类:
编程语言 时间:
2014-08-22 23:46:39
阅读次数:
301
UDP传输:面向无连接的协议,不可靠,只是把应用程序传给IP层的数据报包发送出去,不保证发送出去的数据报包能到达目的地。不用再客户端和服务器端建立连接,没有超时重发等机制,传输速度快是它的优点。就像寄信,写好信放到邮箱桶里面,既不能保证信件在邮递过程中不丢失,也不能保证信件是按顺序寄到目的地的。看j...
分类:
编程语言 时间:
2014-08-22 23:44:39
阅读次数:
240