- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 [Java并发编程实战] 基础知识
什么是线程安全性? 定义线程安全性:当多个线程访问某个类时,这个类始终都能表现正确的行为,那么就称这个类是线程安全的。 单线程:所见及所知(we know it when we see it)
2017-05-14 10:51:32 479
原创 Bitmap的高效加载和 Cache
Bitmap的高效加载和 CacheBitmap 的高效加载如何加载一个图片呢?BitmapFactory 类提供了四类方法:decodeFile 文件decodeResource 资源decodeStream 输入流decodeByteArray 字节数组可以采用 BitmapFactory.Options 来加载所需尺寸的图片
2016-07-01 23:17:12 974
原创 Android 的线程(AsyncTask、HandlerThread、IntentService详解)和线程池
Android 的线程和线程池在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不可能无限制的产生,并且线程的创建和销毁都有一定的开销。
2016-07-01 20:20:40 6304
原创 View 的事件分发机制
View 的事件分发机制点击事件的分发过程由三个重要的方法来完成:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent。
2016-06-27 23:36:22 396
转载 设计模式—观察者模式(Observer)
转载自java_my_life-《JAVA与模式》之观察者模式:观察者模式(Observer)观察者模式是对象的行为模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。
2016-05-14 11:26:14 546
原创 Binder 简介
Binder是Android的一个类,它实现了IBinder接口。从IPC角度来说,Binder是Android中一种跨进程通信方式,还可以理解为是一种物理设备,它的设备驱动是 /dev/binder ;从Android Framework角度来说,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager,等等)和相应Manager
2016-05-08 15:45:51 1983
原创 Android IPC 简介
IPC 是 Inter-Process Communication的缩写,意为进程间通信或者跨进程通信,指两个进程之间进行数据交换的过程。
2016-05-02 10:40:59 398
原创 Activity的启动模式
Acitivity的四种启动模式:standard、singleTop、singleTask和singleInstance
2016-04-26 22:54:28 343
原创 第六条:消除过期的对象引用
这段程序有一个“内存泄漏”问题,如果一个栈先是增长,然后再收缩,那么,从栈中弹出来的对象不会被当做垃圾回收,即使使用栈的程序不再引用这些对象,它们也不会被回收。这是因为,栈内部维护这对这些对象的过期使用(obsolete reference),过期引用指永远也不会被解除的引用。修复的方法很简单:一旦对象引用已经过期,只需要清空这些引用即可。对于上述例子中的Stack类而言,只要一个单元弹出栈,
2016-04-22 09:12:29 960
原创 第五条:避免创建不必要的对象
一般来说,尽可能的重用对象,如果对象是不可变的(immutable),它就始终可以被重用。String s = new String("stringette"); //DON'T DO THIS!该语句每次执行都会创建一个新的String实例,而这都是不必要的。String s = "stringtte";这样就只用了一个String实例。对于同时提供了静态工厂方法和构
2016-04-18 11:25:54 433
原创 第四条:通过私有构造器强化不可实例化的能力
有些时候我们需要编写只包含静态方法和静态域的类,如工具类,我们不希望被实例化,只要让这个类包含私有构造器,它就不能被实例化了//Noninstantiable utility classpublic class UtilityClass{ //Suppress defalut constructor for noninstantiability private Utili
2016-04-14 10:45:29 437
原创 第三条:用私有构造器或者枚举类型强化Singleton属性
Singleton(单例)指仅仅被实例化一次的类,常被用来代表那些本质上唯一的系统组件。
2016-04-13 23:17:46 428
原创 第二条:遇到多个构造器参数时要考虑用构建器
静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数。对于这种情况,习惯采用重叠构造器(telescoping constructor)模式。重叠构造器模式缺点就是当参数很多时代码会很难编写,不易阅读。还可以使用JavaBeans模式代替,调用一个无参构造器来创建对象,然后调用setter方法来设置每个必要的参数。JavaBeans的缺点就是构造过程被分到
2016-04-13 22:57:41 530
原创 第一条:考虑用静态工厂方法代替构造器
获取类的实例,类可以提供一个公有的构造器,还可以提供一个公有的静态工厂方法(static factory method),它只是一个返回类的实例的静态方法。例如:public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE;}注意,这里的静态工厂方法与设计模式中工厂方法模
2016-04-13 13:45:04 738
原创 设计模式—单例模式
单例模式:应用场合:一个类在内存中只存在一个对象,保证整个应用程序中某个实例有且只有一个。类型:饿汉模式,懒汉模式饿汉模式/** * 饿汉模式 * */public class SingleMode { // 1.将构造函数私有化 private SingleMode() { } // 2.创建唯一实例,并初始化 private static SingleMo
2016-02-13 22:04:31 368
原创 android数据存储
在Android中一共提供4种数据存储方式,但是由于存储这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据,就要使用Android提供的Content Provider(数据共享)。Android中4种数据存储方式如下:Shared Preferences:用来存储"key-value paires"格式数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。(主要
2015-03-25 18:09:44 570
原创 Android动画详解
Android平台提供了两类动画,一类是Tween动画,即对通过对场景里的对象不断进行图像变换(平移、缩放、旋转);第二类动画是Frame动画,即顺序播放实现做好的图像,和播放电影类似。1.Tween动画Tween动画通过对VIew的内容完成一系列的图像变换(包括平移、缩放、旋转、改变透明度)来实现动画效果,主要有四种动画效果:(1)Alpha:渐变透明度动画效果。(2)Scale
2015-03-22 09:41:28 1088
原创 Graphics类
1.Paint和Color类 会绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android中的画笔是Paint类,Paint中包含了很多方法对其属性进行设置,主要方法:setAntiAlias:设置画笔的锯齿效果。setColor:设置画笔的颜色。setARGB:设置画笔的a,r,g,b值。setAlpha:设置Alpha值。
2015-03-21 10:43:06 949
原创 笔记:异常、日志、断言和调试
1.处理异常1.1异常分类 在Java程序设计语言中,异常对象都是派生于Throwable类的一个实例,所有的异常都是由Throwable继承而来,下一层立即分解为两个分支:Error和Exception。 Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误。 Exception类层次结构又分为两个分支:一个分支派生于RuntimeException;另一个
2015-03-19 16:16:06 718
原创 笔记:Java 接口与内部类
1.接口 在Java程序设计中,接口(interface)不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。 接口中的所有方法自动地属于public,在接口中申明方法时,不必提供关键字public。 接口中绝不能含有实例域,也不能在接口中实现方法。提供实例域和方法的任务应该由实现接口的那个类来完成。 为了让类实现一个接口,通常需要两个步骤:(1)将
2015-03-18 17:57:02 542
原创 笔记:Java 对象与类
面向对象程序设计如何创建标准Java类库中的类对象如何编写自己的类1.面向对象程序设计概述1.1 类 类(class)是构造对象的模板或蓝图。由类构造(construst)对象的过程称为创建类的实例(instance)。 封装(encapsulation)是与对象有关的一个重要概念。对象中的数据称为实例域(instance fields),操纵数据的工程
2015-03-11 14:55:00 514
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人