黑马程序员-java学习日志2

来源:互联网 发布:单片机最小系统 原理图 编辑:程序博客网 时间:2024/04/29 15:47

---------------------- android培训        java培训        期待与您交流!----------------------

今天学习了黑马的面向对象视频,可以用四个字来概括:深入浅出,跟自己看书差太多了,很多之前似懂非懂的东西一下子在脑海中明朗起来了。下面的几个概念是我在看视频时不懂的地方,上网查找了一下相关资料,以扩大知识面。

堆内存与栈内存:栈内存是由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。

堆内存亦称动态内存分配,程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。

堆内存与栈内存不同的地方是——栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限;动态内存的生存期可以由我们决定,如果我们不释放内存,程序将在最后才释放掉动态内存。

强引用、弱引用:从JDK1.2开始,对象的引用分为四个级别,从高到低依次为:强引用,软引用,弱引用和虚引用,从而使程序能够更加灵活地控制对象的生命周期。

强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。

弱引用:在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用 的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。

---------------------- android培训        java培训        期待与您交流!----------------------
详细请查看:http://edu.csdn.net/heima

原创粉丝点击