JVM的内存模型,主要分为五部分 1.程序计数器:内存中的一小块区域,主要用来指示当前线程执行的命令行,线程私有的,唯一一个没有异常的 2.java栈:主要存放局部变量、操作栈、动态链接、方法出口等信息,jvm执行方法的过程就是进栈出栈的过程,可能导致的异常为stackoverflowerror和o ...
分类:
其他好文 时间:
2016-11-24 15:53:46
阅读次数:
155
1、java内存管理分为内存分配和内存回收,都不需要程序员负责。 2、垃圾回收的机制主要是看对象是否有引用指向该对象。 java对象的引用包括 强引用 软引用 弱引用 虚引用 3、强引用 是指创建一个对象并把这个对象赋给一个引用变量。 强引用有引用变量指向时永远不会被垃圾回收。即使内存不足的时候。4 ...
分类:
编程语言 时间:
2016-11-21 19:09:50
阅读次数:
262
1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过如下 ...
分类:
编程语言 时间:
2016-11-04 16:20:39
阅读次数:
247
Java 如何有效地避免OOM:善于利用软引用和弱引用 想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题。下面是本文的目录大纲: 一.了解 强引用、软引用、弱引用、虚引 ...
分类:
编程语言 时间:
2016-10-28 15:21:28
阅读次数:
320
前言: 从事Android开发的同学都知道移动设备的内存使用是非常敏感的话题,今天我们来看下如何使用软引用与弱引用来优化内存使用。下面来理解几个概念。 1.StrongReference(强引用) 强引用是我们最最常见的一种,一般我们在代码中直接通过new出来的对象等,都是强引用,强引用只要存在没有 ...
分类:
移动开发 时间:
2016-10-20 09:51:29
阅读次数:
189
众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象 ...
分类:
编程语言 时间:
2016-10-18 09:25:54
阅读次数:
249
Android 解决图片大量下载:软引用必须懂4点可能对于Android开发者来说,软引用这个词有的会不是很熟悉,软引用在Java开发中用的比较多,但是,在Android开发中引用软引用,会给我们解决很多难题。AD:1.对象的强、软、弱和虚引用为了能更加灵活控制对象的生命周期,需要知道对象引用的4中... ...
分类:
移动开发 时间:
2016-10-01 22:26:54
阅读次数:
350
强引用: 类似:object A=new Object();这样的引用,只要强引用还存在,垃圾回收期就永远不会回收被引用的对象,eg:这里的new Oject(). 软引用: 一些还有用,但是非必需的的对象,对于软引用关联的对象,在系统将要发生内存泄漏之前,将会把这些对象列入回收范围,并进行二次回收 ...
分类:
编程语言 时间:
2016-09-26 21:38:13
阅读次数:
164
背景:收到公众投稿,《从面试题中看Java的Reference(引用)》,分析的很不错,总感觉少了实际的例子和应用场景。于是结合自己工作中场景,小总结一下。看下Agenda如下:
1、强引用
2、软引...
分类:
移动开发 时间:
2016-09-24 21:58:51
阅读次数:
228
对于Java中的垃圾回收机制来说,对象是否被回收的标准在于该对象是否被引用。因此,引用也是JVM进行内存管理的一个重要概念。 Java中对象的引用一般有以下4种类型: 1强引用 2软引用 3弱引用 4虚引用 以下一一介绍其用法和区别 1强引用:在Java中最常见的就是强引用,把一个对象赋给一个引用变 ...
分类:
编程语言 时间:
2016-09-18 21:12:54
阅读次数:
155