- 博客(13)
- 资源 (17)
- 收藏
- 关注
原创 Java设计模式:抽象工厂模式
1. 定义 抽象工厂模式,即Abstract Factory Pattern,提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类;具体的工厂负责实现具体的产品实例。 抽象工厂模式与工厂方法模式最大的区别:抽象工厂中每个工厂可以创建多种类的产品;而工厂方法每个工厂只能创建一类。 2. 角色 抽象工厂模式的角色与工厂方法模式一样,有如下几种: 2.1 抽象产品(Product...
2019-07-29 21:33:17 188
原创 Java设计模式:工厂方法模式
1. 定义 工厂方法模式(Factory Method Pattern)又称为工厂模式。定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问...
2019-07-29 21:32:14 188
原创 Java设计模式:简单工厂模式
1. 定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 2. 角色 2.1 Factory:工厂角色 工厂角色负责实现创建所有实例的内部逻辑。 2.2 Pr...
2019-07-29 21:30:30 279
原创 Java设计模式:观察者模式
1. 定义 观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主题是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。(百度百科) 2. 角色 观察者模式所涉及的角色有: 2.1 抽象主题(Subject) 它把所有观察者对象的引用保存到一个聚集...
2019-07-29 16:08:27 117
原创 Java设计模式:单例模式
1. 定义 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。” 2. 特点 单例模式有 3 个特点: a.单例类只有一个实例对象; b.该单例对象必须由单例类自行创建; c.单例类对外提供...
2019-07-28 16:49:27 154
原创 Java类加载机制
目前正在读《深入理解Java虚拟机》这本书,此篇是根据这本书的内容进行整理。 1. 类加载机制定义 虚拟机把描述类的的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会另类加载时稍微增加一点开销,但是会为Jav...
2019-07-20 15:43:53 123
原创 Java虚拟机垃圾回收
目前正在读《深入理解Java虚拟机》这本书,此篇是根据这本书的内容进行整理。 Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈 3个区域随着线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而执行者出栈和入栈的操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结...
2019-07-20 06:02:14 115
原创 Java对象相关知识
目前正在读《深入理解Java虚拟机》这本书,此篇是根据这本书的内容进行整理。 1.对象的创建 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用。 检查这个符号引用代表的类是否已被加载、解析和初始化过;如果没有,那必须先执行相应的类加载过程; 在类加载检查通过后,虚拟机将为新生对象分配内存。 对象所需内存大小在类加载完成后便可完全确定,为对...
2019-07-19 05:51:43 123
原创 Java内存区域
目前正在读《深入理解Java虚拟机》这本书,此篇是根据这本书的内容进行整理。 Java虚拟机在执行Java程序的过程会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域:(此图片来源于百度图片) 1.程序计数...
2019-07-18 06:05:07 117
原创 Java创建线程的三种方式
1. 继承Thread 1.1创建类并且继承Thread类,重写 run() 方法。 package cn.zzw; public class FirstThread extends Thread { @Override public void run() { for (int i = 0; i < 10; i++) { ...
2019-07-15 21:54:05 139
原创 Java线程池
1.概述 在Android开发中,不能在主线程进行耗时操作,运行耗时操作必须创建子线程来运行。在一些频繁的耗时操作做(如ListView中图片下载),如果每次进行耗时操作都创建一个子线程。这样的话如果进行管理所创建的子线程,它们之间相互竞争,很可能由于占用过多资源导致OOM或者死机。而且每次创建线程、销毁线程都会有资源的消耗,而线程池可以很好解决这类的问题。 线程池的优点: 1.减少资源的开...
2019-07-14 15:13:13 122
原创 Activity 、 Window 、 View 之间的关系
先上代码: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView...
2019-07-04 22:18:17 348
原创 AsyncTask的使用及其源码分析
1. AsyncTask 简介 AsyncTask是一个抽象类,它是由Android封装的一个轻量级异步类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI。 2.实例 先看下效果: 代码如下: public class MainActivity extends AppCompatActivity { private TextView...
2019-07-04 22:16:08 261
ComponentDemo.zip
2020-05-22
Messenger示例代码
2019-06-26
AndroidAIDLDemo.zip
2019-06-19
Android Studio使用指南
2014-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人