垃圾收集器:Java的垃圾回收机制最主要的实现者就是”垃圾收集器”,但是每个厂商设计的虚拟机所提供的垃圾收集器都有很大区别,而且即使是同一个虚拟机也会提供几个不同的垃圾收集器供用户根据自己不同特点来组合。下图是Hot Spot虚拟机包含的收集器,之后介绍每个收集器的特点。 在介绍各种收集器之前...
分类:
编程语言 时间:
2014-11-27 20:05:55
阅读次数:
273
语言特征Java编程语言的风格十分接近C语言、C++语言。Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器..
分类:
编程语言 时间:
2014-11-27 18:44:46
阅读次数:
276
1 创建的匿名类对象只能调用一次。因为在创建的该对象放在堆内存中,在栈中无引用对象引用。所以下次再调用时,系统将其回收。package lianxi1;class Circle{ int radius; public int getRadius(){ return radi...
分类:
其他好文 时间:
2014-11-27 17:55:58
阅读次数:
135
B.使用Fragment应用放置后台很久,被系统回收,出现crash;原因:系统做了源码FragmentActivity调用onSaveInstanceState保存Fragment对象,这时候系统恢复保存的Fragment,但是在FragmentActivity重新执行生命周期的时候,我们重新生成...
分类:
其他好文 时间:
2014-11-27 12:18:01
阅读次数:
156
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。...
分类:
其他好文 时间:
2014-11-27 01:30:42
阅读次数:
163
c++本身不提供自动内存回收机制,所以每次我们有new一个对象或者数组,我们都是时时刻刻提醒自己要记得去delete new出来的对象,那样岂不是非常烦人?而且就算你记得在析构函数中delete new出来的对象,也同样会造成很多问题,比如一个class里面有个指针,初始化的时候new了一块内存,然后class 有个对象a,再通过class b=a复制一份a,这样其实两个对象分别有一个指针指向ne...
分类:
其他好文 时间:
2014-11-26 19:09:12
阅读次数:
132
“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间...
分类:
编程语言 时间:
2014-11-26 16:13:02
阅读次数:
281
苹果的内存有限,为了更好的用户体验,需要手动管理内存。从网上copy,也一 基本原理Objective-C的内存管理机制与Java那种全自动的垃圾回收机制是不同的,它本质上还是C语言中的手动管理方式,只不过稍加了一些自动方法.1,OC采用了引用计数(retain count)对对象内存进行管理,例如...
分类:
其他好文 时间:
2014-11-26 14:10:55
阅读次数:
165
不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我 们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果 我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然j.....
分类:
移动开发 时间:
2014-11-25 15:50:03
阅读次数:
275
ARC 自动引用计数ARC不是垃圾回收,而是编译器自动插入代码来减少程序员的代码输入和失误。 同时比垃圾和效率要高,因为其不影响运行时间,相当于自己管理内存。总是通过属性...
分类:
其他好文 时间:
2014-11-24 20:39:11
阅读次数:
587