自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (7)
  • 收藏
  • 关注

原创 Protoype(原型模式)

另外一种高效创建对象的方法浅Clone:JDK支持深Clone:序列化、反序列化序列化:本质是流(byte流),对象流不序列化static、transient 。序列化的目的是搬运对象。反序列化:不调用构造器类图:

2012-05-31 12:20:15 683

原创 Builder(建造者)

分步骤构建一个复杂对象,其中“分步骤”是一个固定的算法。复杂对象的各个“分步骤”部分经常变化,抽象的是建造者和“分步骤”一般由多零件组成的对象(各个零件组合算法不变)的创建会用此模式例如:JDK中的java.lang.StringBuilder的 append();类图:

2012-05-31 12:19:23 487

原创 Abstract Factory(抽象工厂)

产品(多类)、工厂都是变化的,两个都要抽象一般要生成多系列产品时会用此模式类图:

2012-05-31 12:18:08 568

原创 Factory Method(工厂方法)

产品、工厂都是变化的,两个都要抽象类图:

2012-05-31 12:16:29 591

原创 Static Factory(静态工厂、简单工厂)

产品是多样的、变化的,抽象产品。实例化一个对象之前有很多的前期和后期操作例如:JDK中的java包装类的valueOf();JDK中的java.text.DateFormat的getDateInstance();JDK中的java.util.Calendar的getInstance();Android中的PhoneFactory类图:

2012-05-31 12:15:17 791

原创 Singleton(单例模式)

保证一个类仅有一个实例。饱汉式饿汉式静态内部类式单例模式一般应用于系统级别的、资源管理者例如:JDK中的java.lang.Runtime的 getRuntime()JDK中的 java.lang.reflect.ProxyAndroid 的InputMethodManagerAndroid的BluetoothOppManager类图:

2012-05-31 12:12:31 527

原创 关于设计模式

OOD(面向对象设计)的原则(solid):单一职责原则(SingleResponsibility Principle):一个类,一个功能开放闭合原则(Open ClosedPrinciple):对修改关闭,堆扩展开发Liscov替换原则(Liscov Substitution Principle):子类功能不能退化接口隔离原则(Interface Segregation Prin

2012-05-31 12:09:18 515

原创 UML(图形化的语言表示)

一些概念OO(Object-Orientation)面向对象,一种系统建模技术OOP(Object-OrientationProgramming)面向对象编程,按照OO的方法来开发程序的过程OOAD(Object-OrientationAnalysis and Design)面向对象的分析与设计UML图分类:静态模型(static model)用例图(use c

2012-05-31 12:06:42 1014

原创 Eclipse

官网:http://www.eclipse.org界面设置:编辑器字体:Preference > general > appearance> colors and fonts > basic > text font代码风格:Preference > java > code style >formatter内容帮助:Preference > java > editor >

2012-05-31 12:03:10 555

原创 像素的结构

颜色(一个像素用一个int表示,32位真彩色)如图:alpha通道:透明度,0~255 共256级透明度一张图片所占内存 = wide * hight * 4 byte

2012-05-31 12:01:30 763

原创 URI(uniformresource identifier)和URL(universal resource Loactor)的区别

URI(uniformresource identifier)和URL(universal resource Loactor)的区别:一个URI定义了一种资源,它是一个定位符。一个URI由两部分组成: scheme (URI协议名):scheme-specific-part(URI协议对应的内容) 一个URL由三部分组成:scheme(协议):// 主机IP地址  / 资源具体地址

2012-05-31 12:00:27 901

原创 数据结构

分类线性数据结构文件线性表顺序表一维数组链表单向链表双向链表循环链表栈队列串数组非线性数据结构树图查找线性查找(全部遍历)for循环非线性查找二分查找(内容有序)排序(二分查找的前提)递归(自己调用自己)

2012-05-31 11:59:44 517

原创 程序的优化

程序优化一般原则:使类、成员可访问性最小化接口优于抽象类合成优于继承for-each 优于 for通过接口引用对象命名规范:类用名词、方法用动词每个方法只做一件事,方法参数个数不大于3对于string 、包装类。用直接量来引用。不用new的方式创建。减少内存占用。String s = “abc”;速度问题for循环优化优化前:for(int i = 0

2012-05-31 11:59:02 508

原创 java内存模型

(一)逻辑模型:方法区存放类信息、常量池、静态数据堆存放new出的对象成员变量存放在堆中栈局部变量存放在栈中Java中的栈:每当启动一个线程时JVM就为他分配一个java栈,栈是以帧为单位保存当前线程的运行状态。每当调用一个java方法时,JVM会在该线程对应的栈中压入一个帧。执行这个方法时,它使用这个帧来存储参数、局部变量、this等信息。方法执行完栈中会

2012-05-31 11:57:58 23767

原创 注释

单行注释  以//开头 多行注释  以/*开头, 以*/结尾用于产生帮助文档的多行注释 /**    */

2012-05-31 11:31:41 509

原创 多线程

运行流程如图:sleep() 睡眠join() 加入启动它的线程,让异步变同步yield()让出,让给相同优先级的其他线程执行sleep和wait的区别:sleep不释放对象锁(占着cup资源的茅坑不拉屎,睡觉去了)wait 释放对象锁(交出cup资源,进入等待池)

2012-05-31 10:53:55 506

原创 枚举类型

枚举每个元素都是该类的实例枚举元素必须位于枚举类最开始枚举只有一个成员时,可以作为一种单例实现形式

2012-05-31 10:52:13 455

原创 I/O系统

缓冲流速度快的原因: 不用每次都频繁的和硬件设备(扇区)进行读写。和硬件设备读写最影响速度File类Memory类如图:InputStream 提供两种read方法:(都是将流读入byte[]中)无参Read(),byte[0] & 0xff 由于我们需要的是2进制内容,而不是补码,所以要进行高位清零,&0xff可以实现清零功能。返回in

2012-05-31 10:41:16 535

原创 String字符串

String的本质是char数组private final char value[];默认数组长度是0StringBuilder线程不安全本质是char数组char[]value默认数组长度是16增长时int newCapacity =value.length * 2 + 2;StringBuffer线程安全char[]value默认数组长度是16

2012-05-31 10:37:59 566

原创 异常处理

ErrorExceptionRunTimeExceptionjava.lang.NoClassDefFoundError:例如:Android导入第三方包error(pinyin4j)解决办法:新建源文件夹lib。包复制进去。然后build pathW/InputManagerService(53):Window already focused, ignoring fo

2012-05-30 11:50:15 625

原创 容器(容器中只能存放对象)

Collection(集合)对应的工具类Collections,包含排序、洗牌等操作ListArrayList本质是Object数组private transient Object[] elementData默认数组的长度为10add时超过10则数组长度增加原来长度的一半list变数组:(T[])list.toArray(newT[list.size()]);

2012-05-30 11:48:39 1262

原创 内部类(4种)

静态内部类(Static Inner Class)static 修饰的内部类只能访问外部类的静态成员变量与静态方法Outerclass.InnerClass inner = newOuterClass.InnerClass();静态内部类和非静态内部类的唯一区别是:静态内部类没有了指向外部类的引用如果内部类不会引用到外部类的东西的话,强烈建议使用静态内部类,因为这样更节省资

2012-05-30 11:44:07 521

原创 重载和重写

重载overLoard重新载入。重载的是参数名字相同参数列表不同返回值无要求(一般相同)权限无要求重写overwrite重写父类方法。重写的是方法体中的内容所有东西都相同(名字、参数列表、返回值).方法体中的内容不同权限不能萎缩

2012-05-30 11:43:34 651

原创 多态与接口

多态概念:同一操作,不同结果(体现在方法上)本质:实现了动态绑定(又叫运行时绑定、后期绑定)体现:主要体现在方法重写上特点:父类引用指向子类对象接口interface标识接口:serializable、cloneable普通接口

2012-05-30 11:43:04 480

原创 复用类

继承通过继承其他类来复用组合通过包含其他引用来复用克隆浅clone:适用于clone只含有基本类型成员的对象深clone:适用于clone 包含有引用类型成员的对象

2012-05-30 11:41:59 531

原创 访问权限控制

private:私有权限default(friendly,什么也不写):包权限protected:继承权限public:公共权限

2012-05-30 11:41:26 443

原创 对象初始化与清理

成员变量可以不初始化,在堆中创建时会赋上默认值局部变量必须初始化引用赋空值的时候,JVM会自动回收new出的空间

2012-05-30 11:41:01 460

原创 类与对象

类具体事物的抽象体现了很好的封装由数据(成员变量)和方法构成命名约定:类名首字母大写,类中成员名首字母小写(成员变量、方法)单词间驼峰原则抽象类:有abstract方法的类对象人认识世界中事物的基本单位用引用操纵对象,相当于遥控器操纵电视生成对象的方法:1.    反射法:Class.forName(”Foo”).newInstance();此方法动

2012-05-30 11:40:23 463

原创 关键字

static表示静态的,内存中有唯一的一份,其他成员公用的资源。放在静态区生命周期和JVM一致,不会被回收static不可以修饰局部变量,局部变量放在栈中会频繁的生死static方法必须使用static变量也和生命周期有关。区域A能使用区域B的原则是:区域B的生命周期 >=区域A的生命周期thisthis只存在于方法中编译器暗中传递的操作此方法的对象的引用。谁调用了这个

2012-05-30 11:39:03 459

原创 数组Array

对应的工具类Arrays包含了sort、copy、binarySearch、asList(不可改变大小的List)等方法数组时效率最高的容器。在固定尺寸的情况下,一定要用数组数组的拷贝System.lang.arrayCopy();效率最高。用的事拷贝整块内存的方式数组的内存模型(二维数组):int[][] scores = new int[3][2];如图:多

2012-05-30 11:38:22 455

原创 流程控制

循环控制For:在知道循环次数的条件下使用While:在不知道循环次数的条件下使用增强的For:速度更快的循环丢失下标的循环遍历集合和数组时,如果需要访问下标,则最好用旧的方式每次循环的控制跳出循环用 break;跳出本次循环用continue;条件控制if elseswitch(变量)变量类型为:byte,short,int,char,

2012-05-30 11:36:41 503

原创 关于补码

补码在计算机系统中,数值一律用补码来表示(存储)。 补码的好处:使用补码可以将符号位和其他位统一处理(可以符号位运算)减法可以按照加法来处理补码的原理:利用溢出来实现减法变加法如:10进制:计算9 9– 44 = ?-44的反码是55(10机制的最大值是9减去4得到)-44的补码是45+1 = 46上式的计算可以变成:9 9+ 46(-44的反码)=

2012-05-30 11:35:50 668

原创 操作符

分类:一元操作符(有一个变量参与的操作符)如:  ! , > , 二元操作符(有两个变量参与的操作符)+ , - , * , / 元,表示变量取模运算余数的作用,可以实现循环取连续的值。如for (a = 0 ; a      System.out.println( a % 5);}7 % 3的意义是7中有2个3,余下1.7 % 20 的意义是,7中有0个2

2012-05-30 11:35:07 528

原创 变量

命名规范以下划线、字母、$开头都可以。唯独不能用数字开头。首字母小写,单词间驼峰标示常量全部大写,单词间用“_”连接分类静态变量(内存低地址区域,静态区)Static关键字的变量成员变量(存放在Heap堆中)New中存放的变量局部变量(local variables内存高地址区域,存放在Stack栈中)方法中的变量包括基本变量、对象地址方法参数属于局

2012-05-30 11:32:14 504

原创 数据类型

基本数据类型(4类8种,能自动装箱)整形byte(8 bit,1个字节 -128~127)存储和传输容量的计量单位,字节。最早的PC机数据总线宽度是8(8根线)用8位表示一个字(c中char是一个字节)表示方法1:byte b = 1; 注意:默认类型是int型,所以当b在[-128,127]之间时编译器不会报错。例如:byte a = 1;byte b = 2;byte

2012-05-30 11:29:49 995

原创 编码知识

Bit(binary  digit二进制数,比特)电脑数据量的最小单位,二进制系统中每个1或0就是一个位(bit)1 Byte = 8 bit1 KB = 1024 Byte1 MB = 1024 KB1 GB = 1024 MB1 TB = 1024 GB (10TB大约等于一个人脑的存储量)ASCII原始  7位二进制表示字符现代  8位二进制表示字符中

2012-05-30 11:28:06 537

转载 一些重要概念

什么是专业的程序员:能编出好程序的人就是专业程序员如何编出好的程序:良师读好的源码、书实践编程的功力基本功:API、术语概念内功:操作系统、编译原理、数据结构、算法好的程序的标准代码符合规范(命名、注释等等)逻辑清晰严谨(设计模式)执行高效(好的算法)程序健壮(异常处理等)

2012-05-30 11:23:05 489

转载 人生的关键

人生的关键在于积累。如何积累?Pressure内力:内心喜欢,自身努力外力:外部帮助,良师益友Time健康:生活规律、劳逸结合

2012-05-30 11:22:24 456

转载 学习的方法论

基础的重要性有好的基础,学习东西会更快,寻找问题的根源,万变不离其中实践的重要性多看好代码,多写代码是编程的诀窍实践之后,才不会忘记敲代码是有感觉的总结的重要性好记性不如烂笔头充分利用CSDN,JavaEye,BlogJava快速学习的重要性持续的突击学习会吸收的更好英文的重要性英语能力是程序员的基本能力多看英文文档,习惯看英文才能进步快

2012-05-30 11:15:05 449

charles-proxy-3.10.1破解包

charles-proxy-3.10.1破解包 jar 包 文件

2015-04-28

sqlite3文件

sqlite3 文件 用于真机中调试数据库。

2014-03-14

test exception

测试 android exception 在android中 try catch 的作用 : 只可以捕获checkException。如果是Error或者是 RuntimeException, 即使catch住了,则程序仍然会崩溃。

2014-03-04

exception 测试

exception 测试 1. 虚拟机级别的错误: Error 2. 程序级别的错误:RuntimeException 3. API级别的错误:CheckException

2014-03-03

TestAddView

addView 源码中。为什么在addViewInner(); 前要使用requestLayout(); addViewInner里面会调用requestLayout(); 这样逻辑上是不是重复了。

2014-01-20

android 不同activity切换时它们的回调函数调用逻辑的研究

android 不同activity切换时它们的回调函数调用逻辑的研究

2014-01-16

SplashActivity

android SplashActivity

2014-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除