摘要: 主要介绍一个支持图片自动预取、支持多种缓存算法、支持二级缓存、支持数据保存和恢复的图片缓存的使用及功能。与AndroidLruCache相比主要特性:(1). 使用简单 (2).轻松获取及预取新图片(3).包含二级缓存(4).可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13种)或自定义缓存算法(5).可方便的保存及初始化恢复数据(6). 省流量性能佳(有且仅有一个线程获取图片)(7).支持不同类型网络处理(8).可根据系统配置初始化缓存(9).扩展性强(10).支持等待队列(11).包含map的大多数接口。适用:获取图片较多的应用,如新浪微博、twitter、微信头 阅读全文
posted @ 2013-11-25 12:55 Rosepotato 阅读(641) 评论(0) 推荐(0) 编辑
摘要: JAVA线程池原理以及几种线程池类型介绍文章分类:Java编程 在什么情况下使用线程池? 1.单个任务处理的时间比较短 2.将需处理的任务的数量大 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。 线程池工作原理:http://www.ibm.com/developerworks/cn/java/j-jtp0730/ 该文章里有个例子,简单的描述了线程池的内部实现,建议根据里面的例子来了解JAVA 线程池的原理。同时,里面还详细描述了使用线程池存在的优点和弊端,大家可以研究... 阅读全文
posted @ 2013-11-14 22:37 Rosepotato 阅读(3488) 评论(0) 推荐(0) 编辑
摘要: 尊重原创: http://gstarwd.iteye.com/blog/6929372004 年 5 月 01 日所有的编程语言都有一些共用的习语。了解和使用一些习语很有用,程序员们花费宝贵的时间来创建、学习和实现这些习语。问题是,稍后经过证明,一些习 语并不完全如其所声称的那样,或者仅仅是与描述的功能不符。在 Java 编程语言中,双重检查锁定就是这样的一个绝不应该使用的习语。在本文中,Peter Haggar 介绍了双重检查锁定习语的渊源,开发它的原因和它失效的原因。 编辑注 :本文在针对 Java 5.0 修订前参考了 Java 内存模型;关于内存排序的描述也许不再正确。尽管如此,在新的 阅读全文
posted @ 2013-11-13 11:11 Rosepotato 阅读(275) 评论(0) 推荐(0) 编辑
摘要: JAVA的参数传递倒底是值传递还是引用传递,我觉得两种说法都没错,关键是看怎么理解“引用”和“引用传递”。(一)从编译原理的角度讲,所有那些无法通过形参来修改实参本身的传递机制都是“值传递”,在JAVA中,你只能通过在形参上调用方法来修改实参所引用的那个对象,却修改不了实参本身(不能使它引用到另个对象),如:voidf(ArrayListlist){list=newArrayList();//不影响外边的实参。}所以从这个角度,JAVA中根本就没有“引用传递”(不像C#中,真的有引用传递,只需要加个ref或out关键字,就不仅可以修改实参所引用的对象,还能修改实参本身)。这种说法并非没有道理, 阅读全文
posted @ 2013-11-13 08:16 Rosepotato 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 总结了一下JAVA中常见的几种RuntimeException,大约有如下几种:Java代码NullPointerException-空指针引用异常ClassCastException-类型强制转换异常。IllegalArgumentException-传递非法参数异常。ArithmeticException-算术运算异常ArrayStoreException-向数组中存放与声明类型不兼容对象异常IndexOutOfBoundsException-下标越界异常NegativeArraySizeException-创建一个大小为负数的数组错误异常NumberFormatException-数字格 阅读全文
posted @ 2013-11-11 13:53 Rosepotato 阅读(357) 评论(0) 推荐(0) 编辑
摘要: Java线程死锁如何避免这一悲剧 Java线程死锁需要如何解决,这个问题一直在我们不断的使用中需要只有不断的关键。不幸的是,使用上锁会带来其他问题。让我们来看一些常见问题以及相应的解决方法: Java线程死锁 Java线程死锁是一个经典的多线程问题,因为不同的线程都在等待那些根本不可能被释放的锁,从而导致所有的工作都无法完成。假设有两个线程,分别代表两个饥饿的人,他们必须共享刀叉并轮流吃饭。他们都需要获得两个锁:共享刀和共享叉的锁。 假如线程 “A”获得了刀,而线程“B”获得了叉。线程“A”就会进入阻塞状态来等待获得叉,而线程“B”则阻塞来等待“A”所拥有的刀。这只是人为设计的例子,但尽... 阅读全文
posted @ 2013-11-11 08:36 Rosepotato 阅读(409) 评论(0) 推荐(0) 编辑
摘要: Java 内部类 分四种:成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类: 即作为外部类的一个成员存在,与外部类的属性、方法并列。 注意:成员内部类中不能定义静态变量,但可以访问外部类的所有成员。 public class Outer{ private static int i = 1; private int j=10; private int k=20; public static void outer_f1(){ //do more something } public void out_f2(){ //do more something }//成员... 阅读全文
posted @ 2013-11-10 10:40 Rosepotato 阅读(285) 评论(0) 推荐(0) 编辑
摘要: java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。我们内部类的知识在Android手机开发中经常用到。一、常规内部类所谓常规内部类,或者说内部类,指的就是除去后面三种之外的内部类(这算什么解释。。。)先写一个最简单的内部类的例子,大家感觉一下:view sourceprint?1 public class Outer {2 public class Inner{3 }4 }编译一下,我们看到目录中出现了两个class文件,其中有一个文件名叫做Outer$Inner.class,带了一个$符号,这个特点让我们很容 阅读全文
posted @ 2013-11-10 10:14 Rosepotato 阅读(561) 评论(0) 推荐(0) 编辑
摘要: Android横竖屏切换总结(Android资料)Android横竖屏要解决的问题应该就两个:一.布局问题二.重新载入问题1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:"unspecified":默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向. "landscape":横屏显示(宽比高要长) "portrait":竖屏显示 阅读全文
posted @ 2013-11-10 09:44 Rosepotato 阅读(608) 评论(0) 推荐(1) 编辑
摘要: 快速排序的基本思想: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。 先看一下这幅图:把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比,比它小不交换,比他大交换。这样循环往复,一趟排序完成,左边就是比中轴小的,右边就是比中轴大的,然后再用分治法,分别对这两个独立的数组进行排序。 阅读全文
posted @ 2013-11-06 15:19 Rosepotato 阅读(174) 评论(0) 推荐(0) 编辑