Java和C++的一个非常重要的区别在于内存管理,JVM把内存管理及垃圾回收接管过来,不需要Java程序员显式的管理对象的生命周期,从而避免了诸如内存溢出及内存泄露等问题;但作为一个Java程序员,深刻理解Java的内存管理及垃圾回收机制,对于理解Java对象的创建过程,有效利用内存,构建高性能Java应用将具备非常重要的意义,因此本文对Java的内存管理机制做了一个详细的介绍。...
分类:
编程语言 时间:
2014-10-06 23:26:11
阅读次数:
315
Memwatch简单介绍在三种检測工具其中,设置最简单的算是memwatch,和dmalloc一样,它能检測未释放的内存、同一段内存被释放多次、位址存取错误及不当使用未分配之内存区域。请往http://www.linkdata.se/sourcecode.html下载最新版本号的Memwatch。安...
分类:
系统相关 时间:
2014-10-04 13:52:26
阅读次数:
246
C++异常当然可以通过try...catch处理,不过没有finally关键词。C++资源的释放可以通过RAII实现。RAII,也称为“资源获取就是初始化”,是c++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象。Destructors shou...
分类:
编程语言 时间:
2014-10-04 02:08:55
阅读次数:
155
安卓给每个应用都分配一定的内存。不同手机之间这个内存的大小是不一样的。如果你的应用使用的内存达到了分配的大小,当再次申请内存时,就到导致OutOfMemoryError.https://developer.android.com/training/articles/memory.htmlhttps:...
分类:
移动开发 时间:
2014-09-30 17:11:19
阅读次数:
132
GC和内存泄露无关垃圾回收,这次是一个被无数人讨论过的传统话题。Action Script使用的是和Java相似的内存管理机制,并不会即时回收废弃对象的内存,而是在特定时间统一执行一次GC(Gabage Collection)操作来释放废弃对象的内存,避免了重复判断是否需要回收产生的性能问题。但要注...
分类:
其他好文 时间:
2014-09-28 21:03:46
阅读次数:
250
今天再看JDK源码的时候看到了String类的不同版本的实现方式的不同,主要是substring这个方法,JDK6里面的实现方式是:很明显可以看到,调用String对象的substring方法后指向的对象地址并没有发生改变,只是改变的是偏移量,这样的话在GC阶段就有可能造成内存泄露了。还好查了一..
分类:
其他好文 时间:
2014-09-28 18:46:56
阅读次数:
205
5. 内存问题排查手段及相关文件介绍【重点】
对于内存问题排查,或者OOM问题排查,一般会涉及到如下文件,下面将如下文件的分析和设置介绍一下,这也是本文档的重点,后面排查内存信息还是要根据这些文件信息来排查。其实未必是有内存泄露,也可能是一些策略有问题,比如线程数目的增加,buffer的申请、释放时间交集等。
5.1 /proc/sys/vm/min_free_kbytes
min_free...
分类:
其他好文 时间:
2014-09-28 02:30:50
阅读次数:
198
在C++中,智能指针是一个非常重要的概念。因为C++的类动态分配的对象不能自动释放掉,需手动调用new运算符。当程序员大意时,或程序发生异常时,或许就会发生没有手动释放内存而造成内存泄露。
智能指针的定义:就是在一个类中,存在一个指向另一个类对象的指针,并通过对指针运算符(比如:->,*)的重载,就可以实现利用当前类的对象通过指针运算符来操纵另一个类的成员(就像另一个类的指针操作一样),并且,在析构函数中定义了delete操作,借助于变量的作用域,能够实现类对象空间的自动释放。
在C++ 11中,有...
分类:
编程语言 时间:
2014-09-25 17:04:39
阅读次数:
212
一直赞叹Sun对待技术的严谨和优雅(bless Sun)。Sun JDK中Java库的源代码,连注释都清清楚楚、规规范范,javadoc注解的使用也一丝不苟,读起来很熟舒服。因此,在日常工作和学习中,经常读读 Java库的源代码,不亦乐乎?如果遇到诡异问题,源代码的帮助就更大了。闲话少说,回归正题。...
分类:
其他好文 时间:
2014-09-22 17:17:22
阅读次数:
306
Point p1;Point *p2=new Point(); p1 由系统创建并释放,不用担心会出现内存泄露,但是生命期只有在本区域的大括号内,出了大括号就没用了。P2 是指针,要自己释放,用不好很危险,用好了功能强大,因为他可以赋值给全局的变量,一下子从局部变量变成全局变量,还能把对象作为函数返...
分类:
编程语言 时间:
2014-09-19 20:53:45
阅读次数:
188