您的位置:首页 > 编程语言 > Java开发

关于内存溢出OutOfMemory

2018-01-08 10:34 295 查看
以下不算是教程,完全可以作为一个开胃菜,思考下。

相信百度“java内存溢出”或者“java内存泄漏”的文章,都会有很多详细描述,代码举例。这里推荐我看过的文章。

http://blog.csdn.net/anxpp/article/details/51325838

再说下我之前的面试经历。

被问到印象深刻的编程经历,当时自己写个关于【在指定文件夹下的文件中查找指定字符串】的程序,然后这个程序其实写出来大家都会觉得简单,确实如此。但是如果这些文件比较多,每个文件都比较大呢,我的代码确实出现了问题,具体如下:

在文件名带有【anr】和【crash】的文件夹中的所有文件中找到【Process】和【Flags】字符串中间的内容,并反馈属于哪个文件。我刚开始写的代码如下,使用的是jdk1.6。
http://tools.oschina.net/js/syntaxhighlighter_3.0.83/styles/shCoreMidnight.css‘/> ?
之后面试说了这件事,问我原因,当时没有在意这个问题,直到我后来看了写内存泄露内存溢出的文章恍然大悟。测试文件比较小的时候没什么问题,文件多而且大的时候会出现OutOfMemory问题,这时候就需要优化代码了。优化如下,使用jdk1.7。具体更换jdk原因可以看内存泄漏中substring()方法在1.6和1.7中的区别,在1.7中移除永久代中的字符常量池。
http://tools.oschina.net/js/syntaxhighlighter_3.0.83/styles/shCoreMidnight.css‘/> href="#" target=_blank>?
之后可以正常处理文件比较大的了,比之前效果快太多了。如果有任何好的建议或者疑问,可以撩我哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息