21212
1321321
1
GC的基本原理 Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放。 对于程序员来说,分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该对象为"不可达的".GC将负责回收所有"不可达"对象的内存空间。 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方
1、 尽量指定类的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使
这短时间由于在改BUG,总是碰到OOM问题。特别关注了一下。也总结了一些OOM的处理方式:1.首先确保服务器来的图片大小合适。2.对图片进行压缩处理显示,具体用到BitmapFactory.Options 这个类,他可以提前向服务器请求,只得到图片的长宽,然后根据项目需要,自己设定size,在向服务器请求合适大小的图片。3.利用软引用来进行缓存。这个真心好用。具体就是用HashMap
2
(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写stat
1.可以在一个方法中使用 throw ,try-catch 语句来实现程序的跳转,如下代码 void fun() { try { if(...)
数据结构与算法1. 链表与数组。2. 队列和栈,出栈与入栈。3. 链表的删除、插入、反向。4. 字符串操作。5. Hash表的hash函数,冲突解决方法有哪些。6. 各种排序:冒泡、选择、插入、希尔、归并、快排、堆排、桶排、基数的原理、平均时间复杂度、最坏时间复杂度、空间复杂度、是否稳定。7. 快排的partition函数与归并的Merge函数。8. 对冒泡与快排的改进。9. 二分查找,与变种二分
软,内存不足时回收 , 内存缓存使用弱,强度比软还弱,只能活到下一个GC虚,唯一用途是在回收时会收到系统通知。NIO直接内存的自动回收就用到了这个。弱引用的作用在于解决强引用所带来的对象之间在存活时间上的耦合关系。弱引用最常见的用处是在集合类中,尤其在哈希表中。哈希表的接口允许使用任何Java对象作为键来使用。当一个键值对被放入到哈希表中之后,哈希表对象本身就有了对这些键和值对象的引用。如果这种引
11
面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动
Java反射机制
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号