- 博客(75)
- 资源 (3)
- 收藏
- 关注
转载 String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常
2015-04-30 19:10:59 305
转载 将输入的阿拉伯数字转换的汉字的大写输出
//题目:将输入的阿拉伯数字转换的汉字的大写输出02 03package test;04 05import java.io.*;06
2015-04-30 19:10:49 2191
转载 Java读写文件的几种方法
1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.FileReader; 4 import java.io.FileWriter; 5 import java.io.IOException; 6 import java.text.SimpleDateFormat;
2015-04-30 18:45:06 440
原创 android 定时器封装
好用的定时器封装工具类,谁用谁知道,代码仅供学习参考。import java.util.HashMap;import java.util.LinkedList;import java.util.Map;import java.util.Queue;import com.tcl.framework.log.NLog;import android.os.Ha
2015-04-29 10:04:07 1972 1
转载 Java实现的二分查找算法
二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。 折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元
2015-04-28 19:29:21 708
转载 模板方法和接口参数的联合使用
在开发中,我们经常要进行网络请求,并且对返回的数据进行处理。但是不同的请求返回的数据不同,因此对数据的处理也不同。如何如何设计解析数据的类型或者方法成了一个难点。下面使用模板方法和接口参数来演示一下 : [java] view plaincopypackage com.umeng.dp.templatemethod;
2015-04-27 22:17:22 498
原创 一种带动画自定义控件方法
主要学习对自定义控件的动画封装,下面代码是范例。public class NineLinearLayout extends LinearLayout { private final AnimatorProxy mProxy; public NineLinearLayout(Context context, AttributeSet attrs) {
2015-04-27 20:24:30 439
原创 iOS中arc的设置
旧工程配置arc方案:1,直接在targets->build phases中修改compiler Flags,是否支持arc。添加:-fobjc-arc,就可以让旧项目支持arc。如果想让原来支持arc的不使用arc则添加-fno-objc-arc2,因为在build phases中可以改变是否支持arc,所以应该在代码中添加判断是否支持arc,这样不管以后.m的arc是否
2015-04-26 23:08:20 356
转载 eclipse里关联查看android源码
一、获取android源码资源。 这里指java源文件,一般十几兆左右,不是网上那种几个G的andorid sdk源码。 有两种途径:1) 、从google或者百度搜索你需要的api版本的源码资源,一般是zip或者jar格式的。 2)、通过eclipse里面升级sdk版本时,会有一个选项下载resources。最后一项,勾选时,就会把java源码
2015-04-25 13:15:50 300
转载 Volley 源码解析
1. 功能介绍1.1. VolleyVolley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。名字由来:a burst or emission of many things or a large amount at once发布演讲时候的配图从名字由来和配图中无数急促的火箭可以
2015-04-23 20:29:05 331
转载 Android Universal Image Loader 源码分析
1. 功能介绍1.1 Android Universal Image LoaderAndroid Universal Image Loader 是一个强大的、可高度定制的图片缓存,本文简称为UIL。简单的说 UIL 就做了一件事——获取图片并显示在相应的控件上。1.2 基本使用1.2.1 初始化添加完依赖后在Application或Activity中初始
2015-04-23 20:28:00 337
转载 ViewPagerindicator 源码解析
1. 功能介绍1.1 ViewPagerIndicatorViewPagerIndicator用于各种基于AndroidSupportLibrary中ViewPager的界面导航。主要特点:使用简单、样式全、易扩展。2. 总体设计该项目总体设计非常简单,一个pageIndicator接口类,具体样式的导航类实现该接口,然后根据具体样式去实现相应的逻辑。 IcsLin
2015-04-23 20:26:07 329
转载 CircularFloatingActionMenu 源码解析
1. 功能介绍一个与著名应用 Path 菜单类似的圆形弹出菜单,可方便的定制菜单以及动画。菜单可能是非完整圆形,本文统称为圆形菜单。1.1 特点可自定义动画、菜单、角度范围、半径等。1.2 概念以上是简单的圆形弹出菜单示例,更详细的示例图见:Screenshot。菜单按钮(Event):点击会弹出圆形菜单的控件,如上图的 + 对应控件,对应代码中
2015-04-23 20:24:06 629
转载 Objective-C中变量采用@property的各个属性值的含义
我们在OC中定义变量,可以自己来定义变量的setter方法来设置变量值,用getter方法来获取变量值。但是当变量数量增多时,还采用手动添加setter/getter方法来操作变量,就会使得程序代码量大大增加。幸好从OC 2.0开始,我们能让系统自动生成设置变量值的方法或获取变量值的方法,即系统会自动为我们生成setter/getter方法。这中功能减少了代码量,让我们有更多的精力放在程序的业务逻
2015-04-23 20:21:25 317
转载 IOS学习之IOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
我们看看NSFileManager如何使用。包括创建文件,目录,删除,遍历目录等。1、在Documents里创建目录创建一个叫test的目录,先找到Documents的目录, NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YE
2015-04-23 20:06:50 417
转载 IOS学习之IOS沙盒(sandbox)机制和文件操作(二)
我们看看如何获取应用程序沙盒目录。包括真机的沙盒的目录。1、获取程序的Home目录 NSString *homeDirectory = NSHomeDirectory(); NSLog(@"path:%@", homeDirectory);打印结果:2012-06-17 14:00:06.098 IosSandb
2015-04-23 19:58:57 369
转载 IOS学习之IOS沙盒(sandbox)机制和文件操作(一)
1、IOS沙盒机制IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。1.1、每个应用程序都有自己的存储空间1.2、应用程序不能翻过自己的围墙去访问别的存储空间的内容1.3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行
2015-04-23 19:46:06 333
转载 iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
Apple官方的文档为生成一个UIImage对象提供了两种方法:1. imageNamed,其参数为图片的名字;2. imageWithContentsOfFile,其参数也是图片文件的路径。那么两种有什么区别吗?肯定是有的。根据Apple的官方文档:imageNamed: 这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话。如果缓
2015-04-23 19:32:30 334
原创 java依赖注入理解
1. 依赖如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖。例如下面类 Human 中用到一个 Father 对象,我们就说类 Human 对类 Father 有一个依赖。public class Human { ... Father father; ... public Human() {
2015-04-23 16:45:08 805
转载 Android中ViewStub组件使用
1. 概述: ViewStub组件和标签的作用类似,主要是为了提高布局的重用性,及布局的模块化。它们之间最大的差别是,ViewStub中的布局不会随着它所在布局的渲染而渲染,而标签中的布局会随着它所在布局的渲染而渲染,ViewStub中的布局只有在你需要的时候才会渲染到主界面中。 2. 效果图: (1)在ButtonOne与Button
2015-04-22 23:12:45 353
原创 一种带动画自定义控件的封装
通常我们有自定义控件的需求,但一般情况下需要有动画的效果,我们可以通过代理的方式将动画效果封装在整个控件里,做到高度内聚。public class NineLinearLayout extends LinearLayout { private final AnimatorProxy mProxy; public NineLinearLayout(Contex
2015-04-22 13:46:45 330
原创 一种适配器设计模式的实现
在动画里有个监听器AnimatorListener 通常我们实现这个接口就要全部实现,而现实中我们其实只需要实现onAnimationEnd这个接口来设置动画结束后的效果,这个时候我们可以用适配下,只需要实现一个接口。具体代码如下: public static interface AnimatorListener { void onAnimationStart
2015-04-22 13:16:32 289
原创 使用Memory Analyzer Tool(MAT)Eclipse插件分析内存泄露
果使用DDMS确实发现了我们程序中存在内存泄露,那如何定位到具体出现问题的代码片段,最终找到问题所在呢?如果从头到尾分析代码逻辑,那肯定会把人逼疯,特别是在维护别人写的代码的时候。这里介绍一个极好的内存分析工具Memory Analyzer Tool(MAT)。1、在Eclipse中安装和使用MAT步骤 MAT是一个Eclipse插件,同时也有单独的RCP客户端。 如果安装E
2015-04-21 15:34:38 590
转载 java 链表模型
首先给出一个链表模型:第一步: 创建空链表 第二步:创建头节点第三部:创建尾节点到此为止 一个比较有完整意义的链表已经构造出 增加节点删除节点:总结:我们
2015-04-21 00:36:16 585
原创 android ANR异常解决方法
ANR(Application Not Responding)定义 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让 用
2015-04-20 15:11:12 559
转载 设计模式-工厂模式
简单工厂模式1.为什么要使用工厂模式直接目的:避免在代码中出现大量的new关键字根本目的:将对象的创建统一起来便于维护和整体把控这一点可以理解,加入你在项目中new了某个对象100次,一年后由于业务逻辑变更,构造方法多了一个参数,你会怎么办?你应该会这么做:找到这100个对象new的地方,用新的构造方法来创建对象,你重复劳动了100次,假如采用工厂模式,你只用改一次
2015-04-17 15:16:51 335
原创 将一个子串反序输出
public class ReverseString { public static String reverseString(String s){ // 反转字符串的方法 String newStr = "" ; // 存储反转后的结果 int len = s.length();
2015-04-16 19:40:27 439
原创 java获取字母出现的次数
public static void main(String[] args) { String str = "ADFGZXCVASDFXCVDF"; str = str.toLowerCase(); HashMap map = new HashMap(); for(int i = 0; i<str.length(); i++){ char c = str.charAt(i);
2015-04-16 19:15:36 588
原创 HashMap和HashSet的区别
HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口。它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它对集合中的对象进行索引,Queue的工作原理是FCFS算法(First Come, First Serve)。首先让我们来看
2015-04-16 19:06:23 461
转载 Java 多线程线程池 - 线程池原理(1)
来看一下线程池的框架图,如下:1、Executor任务提交接口与Executors工具类Executor框架同java.util.concurrent.Executor 接口在Java 5中被引入。Executor框架是一个根据一组执行策略调用,调度,执行和控制的异步任务的框架。Executor存在的目的是提供一种将"任务提交"与"任务如何运行"分离开来的机制。定义如下
2015-04-16 16:50:43 360
转载 Java 多线程线程池 - 线程池原理(2)
线程池能够复用线程,减少线程创建,销毁,恢复等状态切换的开销,提高程序的性能。一个线程池管理了一组工作线程,同时它还包括了一个用于放置等待执行的任务的队列。ThreadPoolExecutor类中定义了一些与线程状态与活动线程数相关的一些变量,如下:[java] view plaincopyprint?private final At
2015-04-16 16:49:47 520
转载 Java 多线程 - CountDownLatch
CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。来看一下这个类的构造方法,如下:[java] view plaincopyprint?public CountDownLatch(int count) { if (count 0) throw new
2015-04-16 15:58:57 337
转载 Java 多线程线程池 - Callable和Future
Callable接口代表一段可以调用并返回结果的代码;Future接口表示异步任务,是还没有完成的任务给出的未来结果。所以说Callable用于产生结果,Future用于获取结果。 Java 5在concurrency包中引入了java.util.concurrent.Callable 接口,它和Runnable接口很相似,但它可以返回一个对象或者抛出一个异常。 C
2015-04-16 15:52:11 416
转载 Java 多线程 - 线程的取消与关闭
Java没有一种安全的抢占式方法来停止线程,只有一些协作式机制。其中一种协作机制能设置某个“已请求取消”标志,而任务将定期查看该标志。如果设置了这个标志,那么任务将提前结束。举例如下:[java] view plaincopyprint?public class PrimeGenerator implements Runnable {
2015-04-16 15:32:24 2416
转载 java数组与集合
1、拷贝之java.lang.System.arraycopy和java.util.Arrays.copyOf方法Java数组的复制操作可以分为深复制和浅复制。一般对于引用类型的数组来说,需要在某些时候进行深复制。 首先来看一下两个方法实现的源代码,如下:[java] view plaincopyprint?
2015-04-16 14:46:36 403
转载 Java 基础 - 强引用、弱引用、软引用、虚引用
转载请注明出处:http://blog.csdn.net/mazhimazh/article/details/197524751、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:[java] view plaincopyprint?
2015-04-16 14:38:26 219
原创 Andriod Service 基本概念
1、Service的种类按运行地点分类:应用本地服务(Local)远程服务(Remote)应用本地服务(Local)1) 区别:该服务依附在主进程上,2) 优点:服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。3) 缺点:
2015-04-16 11:23:10 343
转载 CountDownLatch用法
正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点:目录CountDownLatch是什么
2015-04-15 19:26:48 502
原创 android Home键监听封装
public class HomeWatcher { static final String TAG = "HomeWatcher"; private Context mContext; private IntentFilter mFilter; private OnHomePressedListener mListener;
2015-04-15 14:10:02 386
原创 android sharedpreferences封装简单实用
public final class PrefsUtils{// private static final String PREFS = "qt_prefs";private static SharedPreferencespref = null;private static SharedPreferences.Editoreditor = null;p
2015-04-15 11:17:15 410
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人