自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 java 接口(一)

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。首先,我们将学习抽象类,它是普通的类与接口之间的一种中庸之道。尽管在构建具有某些未实现方法的类时,你的第一想法可能是创建接口,但是抽象类仍旧是用于此目的一种重要而必须的工具。因为你不可能总是使用纯接口。1.1 抽象类和抽象方法

2016-10-18 11:12:39 372

原创 java 多态(二)

一、构造器内部的多态方法的行为构造器调用的层次结构带来了一个有趣的两难问题。如果在一个构造器的内部调用正在构造的对象的某个动态绑定方法,那会发生什么情况呢?在一般的方法内部,动态绑定的调用是在运行时才决定的,因为对象无法知道它是属于方法所在的那个类,还是那个类的导出类。如果要调用构造器内部的一个动态绑定方法,就要用到那个方法的被覆盖后的定义。然而,这个调用的效果可能相当难于预料,因为被

2016-09-20 12:22:01 276

原创 java 多态(一)

在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征。多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序---即无论在项目最初创建时还是在需要添加新功能时都可以“生长”的程序。“封装”通过合并特征和行为来创建新的数据类型。“实现隐藏”则通过将细节“私有化”把接口和实现分离开来。这种类型的组织机制对那

2016-09-19 12:19:36 299

原创 java final关键字

根据上下文环境,Java的关键字final的含义存在着细微的区别,但通常它指的是“这是无法改变的”。不想做改变可能处于两种理由:设计或效率。由于这两个原因相差很远,所以关键字final有可能被误用。下面谈论了可能使用final的三种情况:数据、方法和类。1,final数据许多编程语言都有某种方法,来向编译器告知这一块数据是恒定不变得。有时数据的恒定不变是很有用的。比如:1)一个永不

2016-09-18 11:05:00 254

原创 java 向上转型

“为新的类提供方法”并不是继承技术中最重要的方面,其最重要的方面是用来表现新类和基类之间的关系。这种关系可以用“新类是现有类的一种类型”这句话加以概括。这个描述并非只是一种解释继承的华丽的方式,这直接是由语言所支撑的。例如,假设有一个称为Instrument的代表乐器的基类和一个称为Wind的导出类。由于继承可以确保基类中所有的方法在导出类中也同样有效,所以能够向基类发送的所有消息同样也可以向

2016-09-13 16:04:57 628

原创 组合与继承

组合和继承都允许在新的类中放置子对象,组合是显式地这样做,而继承则是隐式地做。那两者的区别在哪?以及怎样在二者之间做出选择。组合技术通常用于想在新类中使用现有类的功能而非它的接口这种情形。即,在新类中嵌入某个对象,让其实现所需要的功能,但新类的用户看到的只是为新类所定义的接口,而非所嵌入对象的接口。为取得此效果,需要在新类中嵌入一个现有类的private对象。有时,允许类的用户直接访问新类

2016-09-13 15:32:29 279

原创 java 复用类

复用代码是Java众多引人注目的功能之一。但是想成为极具革命性的语言,仅仅能够复制代码并对之加以改变时不够的,它还必须能够做更多的事情。上述方法常为c这类过程型语言所使用,但收效并不是很好。正如Java中所有事物一样,问题解决都是围绕着类展开的。可以通过创建新类来复用代码,而不必再从头开始编写。可以使用别人业已开发并调试好的类。此方法的窍门在于使用类而不破坏现有程序代码。有两种可以达到这一

2016-09-02 15:10:39 298

原创 java多线程问题

(1)Java多线程中调用wait()和sleep()方法有什么不同?Java程序中wait和sleep都会造成某种形式的暂停,它们可以满足不同的需要。wait()方法用于线程间通信,如果等待条件为真且其他线程被唤醒时它会释放锁,而sleep()方法仅仅释放cpu资源或者让当前线程停止执行一段时间,但不会释放锁。(2)如何强制启动一个线程这个问题就像是如何强制进行java垃圾回

2016-08-19 11:18:07 225

原创 android MVC MVP MVVM如何区分

MVCMVC, Model  View  Controller,是软件架构中最常见的一种框架,简单地说就是通过controller的控制去操作model层的数据,并且返回给view层展示,具体见下图当用户发出事件的时候,view层会发送指令到controller层,接着controller层去通知model层更新数据,model层更新完数据以后直接显示在view层上,这就是MVC的工作

2016-08-18 16:04:35 322

原创 andriod listview实现原理以及listview的优化

1 ListView的实现原理1.1 Adapter的作用顾名思义,Adapter是适配器的意思,它在listview和数据源之间起到了一个桥梁的作用,ListView并不会直接和数据源打交道,而是会借助Adapter这个桥梁去访问真正的数据源,与之前不同的是,Adapter的接口是统一的,因此,Listview不用担心适配方面的问题,而Adapter又是一个接口,它可以去实现各种各样的子

2016-08-18 15:02:33 247

原创 android绘图原理

1 先了解Android UI框架基本概念其关系图如下:Activity :基本的页面单元,Activity包含一个Window,window上可以绘制各种View.View: 最基本的UI组件,表示屏幕上的一个矩形区域。Window:表示顶层窗口,管理界面的显示和事件的响应;每个Activity均会创建一个PhoneWindow对象,是Activvity和整个View系统交互

2016-08-18 12:09:32 289

原创 设计模式 行为模式之策略模式

1 基础知识1.1 标准定义策略模式标准定义:定义一系列的算法,把它们一个个封装起来并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。1.2 分析和说明策略(Strategy)模式属于对象的行为模式,通过分析Strategy模式可以发现:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得他们可以相互替换。策略模式使得算法可以在不影响到客户端的情况

2016-08-17 14:47:50 193

原创 设计模式 行为模式之状态模式

1 基础知识1.1 标准定义状态模式标准定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。1.2 分析和说明状态模式属于对象行为型模式。状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。可理解为在不同的上下文中,相同的动作导致的结果不同。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象

2016-08-17 12:45:30 178

原创 设计模式 行为模式之观察者模式

1 基础知识1.1 标准定义观察者模式标准定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。1.2 分析和说明观察者模式属于对象行为型模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。这一模式中主要针对两个对象o

2016-08-17 10:54:28 217

原创 设计模式 行为模式之迭代子模式

1 基础知识1.1 标准定义迭代子模式标准定义:提供一种方法顺序访问一个聚合对象 中各个元素,而又不需暴露该对象的内部表示。1.2 分析和说明迭代子模式 称迭代器模式,属于对象行为型模式。迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。迭代子模式将迭代逻辑封装到一个独立的子对象中,从而与聚集

2016-08-16 17:24:42 528

原创 设计模式 行为模式之模板模式

1 基础知识1.1 标准定义模板方法(Template Method)模式标准定义:定义一个操作中的算法的骨架,而将一个步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。1.2 分析和说明模板方法模式属于行为型设计模式。模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造的形式实现,然后声明一些抽象方法来迫使子类

2016-08-16 16:17:39 157

原创 设计模式 结构型设计模式之门面模式

1 基础知识1.1 标准定义门面模式标准定义:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。1.2 分析和说明门面模式也叫外观模式,属于结构型设计模式。外部与一个子系统的通信必须通过一个统一的门面对象进行 。门面模式提供一个高层析的接口,使得子系统更易于使用。每一个子系统只有一个门面类,而且此门面类只有一个实例,也就

2016-08-16 14:12:01 196

原创 设计模式 结构型设计模式之装饰模式

1 基础知识1.1 标准定义装饰(Decorator)模式标准定义:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。1.2 分析和说明装饰模式属于结构型设计模式。装饰模式用于动态地为对象附加额外的职责,以达到扩展其功能,是继承关系的一个替代方案,提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤销。增加由一些基本功

2016-08-15 17:51:00 180

原创 设计模式 结构型设计模式之代理模式

1 基础知识1.1 标准定义代理模式标准定义:为其他对象提供一种代理以控制对这个对象的访问。1.2 分析和说明代理模式属于结构型设计模式。代理就是一个人或一个机构代表另一个人或者机构采取行动。某些情况下,客户不能或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对象,而仅仅持有一个被

2016-08-15 15:35:08 245

原创 设计模式 结构型设计模式之桥梁模式

1 基础知识1.1 标准定义桥梁模式标准定义:将抽象部分与它的实现部分分离,使它们都可以独立的变化。1.2 分析和说明桥梁模式属于结构型设计模式。它将抽象化与实现化脱藕,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化。Bridge角色包括抽象化(Abstracti

2016-08-15 14:09:23 298

原创 设计模式 结构型设计模式之适配器模式

1 基础知识1.1 标准定义适配器模式标准定义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。1.2 分析和说明适配器模式属于结构型设计模。把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一个工作。适配器模式也叫变压器模式,也叫包装器(Wrapper)模式。

2016-08-09 11:16:24 227

原创 设计模式 创建型模式之单例模式

1 基础知识1.1 标准定义单例模式标准定义:保证一个类仅有一个实例, 并提供一个访问它的全局访问点。1.2 分析和说明单例模式属于创建型 模式,单例模式确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且其他类可以通过某种 方法访问该实例。单例模式只应在有真正的“单一实例”的需求时才可

2016-08-08 17:45:48 302

原创 Android的事件分发机制

一、Android分发机制概述要充分理解android的分发机制,需要先对以下几个知识点有所了解:(1)View和ViewGroup的关系(2)事件(3)View的事件分发机制(4)VIewGroup事件的分发机制二、View和ViewGroupAndroid的UI界面都是由VIew和VIewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而View

2016-08-08 13:28:06 150

原创 Android性能优化之多线程

本文主要介绍了AsyncTask, HandlerThread, IntentService与ThreadPool分别适合的场景以及各自的使用注意事项。一,线程性能在程序开发的实践当中,为了让程序表现得更加流畅,我们肯定会需要使用到多线程来提升程序的并发执行性能。但是编写多线程并发的代码一直以来是一个相对棘手的问题。为主线程减轻负担的多线程方案有哪些?这些方案分别适合在什么场景下使用?

2016-08-05 15:46:54 611

原创 Android中handler的实现原理

一、Handler的作用                   在android开发中,我们经常会遇到这样一种情况:在UI界面上进行某项操作后要执行一段很耗时的代码,比如我们在界面上点击了一下“下载”按钮,我们需要 执行网络请求,这是一个耗时的操作,因为不知道什么时候才能完成。为了保证不影响UI线程,所以我们会创建一个新的线程去执行我们耗时的代码。当我们的耗时操作完成时,我们需要更新UI界面

2016-08-05 13:54:22 270

原创 设计模式 创建性模式之原型模式

1 基础知识1.1 标准定义原型模式标准定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。1.2 分析和说明原型模式是指用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种创建性模式。当一个系统应该独立于它的产品创建、构成和表示,以及当要实例化的类在运行时刻指定时,可使用原型模式。原型模式的缺点是每一个类都必须配备一个克隆方法。Pr

2016-08-01 11:56:33 242

原创 设计模式 创建模式之建造模式

1 基础知识1.1 标准定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。1.2 分析和说明建造模式属于创建性模式,它就是讲产品的内部表象和产品的生成过程分割开来,从而使一个创建过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式是解决这类问题的一种思想方法--将一个复杂对象的构建与它的表

2016-07-29 16:09:18 273

原创 设计模式 创建模式之抽象工厂模式

1 基础知识1.1  标准定义抽象工厂模式标准定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。1.2  分析和说明抽象工厂模式是一个创建性的模式。与工厂方法模式一样,它要求工厂类和产品类分开。但是核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应该被实例化这种

2016-07-29 10:53:41 191

原创 设计模式 创建模式之工厂模式

1.1 标准定义工厂模式标准定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。1.2 分析和说明工厂模式是一个创建性的模式。它要求工厂类和产品类分开。由一个工厂类可以根据传入的参量决定创建出哪一种产品类的实例,但这些不同的实例有共同的父类。FactoryMethod把创建这些实例的具体过程封装起来了。当一个类无法预料将

2016-07-28 16:46:15 216

原创 在方法和作用域内的内部类

可以在一个方法里面或者在任意的作用域内定义内部类。这么做有两个理由。        1)你实现了某类型的接口,于是可以创建并返回对其的引用。        2)你要解决一个复杂的问题,想创建一个类来辅助你的方案,但是又不希望这个类是公共可用的。        第一个例子展示了在方法的作用域内(而不是其他类的作用域内)创建一个完整的类。这被称作局部内部类: //:Nesting a cl

2016-07-27 14:56:23 421

原创 java 内部类

一、内部类的定义 可以将一个类的定义放在另一个类的定义的内部,这就是类。  内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并且控制位于内部的类的可视性。 在最初,内部类看起来就像是一种代码隐藏机制:将类置于其他类的内部。但是,你将会了解到,内部类远不止这些,它了解外围类,并能与之通信;而且你用内部类写出的代码更优雅而清晰,尽管并不总是这样。 1.1 创建内部类 创建内部类的

2016-07-27 10:55:40 235

空空如也

空空如也

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

TA关注的人

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