自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java设计模式之创建型模式--原型模式

一:简介原型模式用起来很简单,我们只需实现Cloneable接口,重写clone方法即可。使用原型模式的目的,是为了避免初始化是需要消耗很多的资源,new一个对象时需要进行繁琐的数据准备。二:例子假设,创造一个人,设置他的性别,国籍,种类(黑人还是白人还是黄种人)。等等之类,比方说现在就这三个属性。

2017-06-17 14:48:52 267

原创 Java设计模式之创建型模式--建造者模式

一:简介建造者模式可以将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以有不同的表示。二:角色Product:表示被构造的复杂对象。Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示

2017-06-14 22:53:41 336

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

单例模式它确保了某个类只有一个实例对象。对于单例模式,一般来说由一个私有的属性(对自己的引用),一个私有的构造,加上一个提供给外部使用的静态方法构成。下面介绍一下单例的几种写法

2017-06-13 13:57:55 257

原创 Java设计模式之创建型模式--工厂方法及抽象工厂模式

Java设计模式之创建型模式–工厂方法模式一:工厂方法1.我们先看类图2.工厂方法是针对每一种产品提供一个工厂类,比如我是生产A类产品的,但是A类产品又分为google旗下和华为旗下,这是我需要提供两个工厂,每个工厂生产属于自己的产品A。3.关于工厂,还有一个简单工厂就不介绍了,它只是在创建产品A的时候,传入不同的参数加以识别,从而创建相应的产品。在这里就不演示了。

2017-06-12 19:00:08 288

原创 Lambda表达式的使用

用Lambda表达式开启线程我们知道,开启一个子线程。可以这么写:new Thread(new Runnable() {            @Override            public void run() {                buffer.append("普通的开启一个子线程\n");            }        }).star

2017-06-06 13:01:45 4087

原创 沉浸式状态栏

在这篇末尾也提到过沉浸式状态,不过那时是借助了Design Support库,嵌套了好多布局,实在是太麻烦了。。。文章传送门下面介绍一种更简单的方式。.... @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);

2017-06-05 18:18:37 290 1

原创 android中软键盘弹出,将布局顶上去

将需要顶上去的内容添加一个ScrollView布局    android:layout_width="match_parent"    android:layout_height="match_parent"    android:scrollbars="none"     >    …… 需要被顶上去的内容 ……先说下关于ScrollView,ScrollView

2017-05-26 14:40:40 2071

原创 MaterialDesign的使用

一.Toolbar如果要使用Toolbar,一般我们需要隐藏ActionBar。一般的做法,                @color/colorPrimary        @color/colorPrimaryDark        @color/colorAccent        关于这三个属性代表的是什么,一张图你就清楚了。xml

2017-05-18 15:56:47 453

原创 Dagger2基本使用与原理

上一篇介绍了Dagger2的一些注解点击打开链接一、Dagger2的一些简单配置1.在build.gradle(project..)中添加apt插件classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'2.在build.gradle(Module:app)中添加如下代码,应用apt插件apply plugin: 'c

2017-05-12 13:44:47 8856

原创 Dagger2简介

一、简介Dagger2起源于Dagger,是一款基于Java注解来实现的完全在编译阶段完成依赖注入的开源库,主要用于模块间解耦、提高代码的健壮性和可维护性。Dagger2在编译阶段通过apt利用Java注解自动生成Java代码,然后结合手写的代码来自动帮我们完成依赖注入的工作。二、依赖注入(Dependency Injection简称DI)public class Person {

2017-05-12 12:39:17 803

原创 java回调机制

现在有以下场景:我遇到一个问题,比如1+1=?,我不会怎么办,那么我就去找别人,这里别人比如就是小明。好,那么我要问问题,我打电话给小明问他1+1=几,但是我打电过去的时候,小明刚好在做一件很急的事情,那么我先把我的问题告诉他了,等他忙完了一定要告诉我答案。好了。过了1个小时他忙完了,打电话给我告诉我是2。好了这就是整个回调的过程。那么首先,我们先定义一个回调函数的接口,回调函数callMe

2017-05-08 10:58:30 194

原创 android中四种更新UI的方法

1.activity的 runOnUiThread源码如下:public final void runOnUiThread(Runnable action) {        if (Thread.currentThread() != mUiThread) {            mHandler.post(action);        } else {       

2017-05-08 10:38:40 337

原创 Handler机制

一、handler中用到的一些类。1. Message     消息,理解为线程间通讯的数据单元。例如后台线程在处理数据完毕后需要更新UI,则可发送一条包含更新信息的Message给UI线程。    2. Message Queue     消息队列,用来存放通过Handler发布的消息,按照先进先出执行。    3. Handler     Han

2017-05-03 19:09:23 165

原创 序列化与反序列化

话不多说,直接开工1.我们有一个User类,实现了Serializable接口public class User implements Serializable { private static final long serialVersionUID = -1L; public int id; public String name; public S

2017-04-25 15:03:48 226

原创 Reader与Writer的IO操作

Reader与Writer:用来处理“字符流”(文本文件),与字节输入输出流类似,Reader和Writer建立了一条通往字符文件的通道,提供了相应的读写方法。下面介绍两种集成了Reader和Writer的输入输出字符流,Reader提供的一些方法:public int read();读取单个字符public int read(char[] cbuf);从流中读取字符并

2017-04-20 18:08:20 816

原创 InputStream与OutputStream文件操作

一:InputStream与OutputStream提供了输入输出流来对文件进行操作,可以用来处理二进制文件,也可以用来处理文本文件。但是这两类是抽象类,所以我们使用时,需使用实现它们的子类。FileInputStream:文件输入流,它表示一个文件字节输入流,从中可读取一个字节或一批字节;FileOutputStream:文件输出流,它表示一个文件字节输出流,可向流中写入一个字节或一

2017-04-19 19:12:56 950

原创 RXjava实现计时按钮

1.首先导入Rxjava所需的依赖compile 'io.reactivex:rxandroid:1.2.1'compile 'io.reactivex:rxjava:1.1.6'2.当点击按钮后,执行代码  final int count = 59;        Observable.interval(0, 1, TimeUnit.SECONDS)//设置0延迟,每隔

2017-04-18 14:45:44 1562

原创 ButterKnife插件的使用

1.安装ButterKnife插件1).file--->settings--->Plugins2).搜索Zel,点击Browse3).搜索Zel,然后选择Install,然后重启AS即可。这样插件就装好了。2.使用ButterKnifecompile 'com.jakewharton:butterknife:7.0.1'1).鼠标一定要选中layou

2017-04-06 14:22:32 465

原创 RxJava的基本使用

网上也看了很多关于rxjava的使用,万变不离其中。首先都很好奇rxjava是什么,讲真的我也不清楚,感觉挺迷的,但是关于rxjava就知道两点就能轻松使用。1.观察者模式2.异步操作1)什么是观察者模式上篇文章,也介绍过,讲白了就是观察者去观察被观察者,当被观察者发生动静的时候,观察者有响应,响应之后的事情,视具体情而定了。2)什么是异步操作,网络请求大家应该并不陌生,网

2016-11-22 19:34:18 406

原创 观察者模式

这是我的首篇博客,对于大神来说,博客既是一段积累知识的学习过程,又是一种分享自己收获的精神所在。而对与我这个菜鸟级的人来说,这首先肯定是我的积累过程,其次我觉得作为自己学习的知识,不可能全部记住,是时候去把一些东西整理出来,自己找起来也比较方便。所以。。。不喜勿喷。

2016-11-22 18:45:06 257

空空如也

空空如也

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

TA关注的人

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