自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (17)
  • 收藏
  • 关注

原创 设计模式-策略模式

在平常的开发过程中经常遇到这样的情况:实现一个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或策略来完成该功能。例如,排序算法有插入排序,归并排序、冒泡排序。定义:策略模式定义了一系列算法,并将每一个算法封装起来,而且它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。使用场景:* 针对同一问题的多种处理方式,仅仅是具体行为有差别时。* 需要安全地封装多种同一类型的操作时。...

2018-04-24 15:26:25 1207

原创 设计模式-抽象工厂模式

定义:为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定它们的具体类。使用场景:一个对象族有相同的约束时可以使用抽象工厂模式。举个例子,Android、iOS、Window Phone下都有短信软件和拨号软件,两者都属于Software软件的范畴,但是它们所在的操作系统平台不一样,即便是同一家公司出品的软件,其代码实现逻辑也是不同的,这时候就可以考虑使用抽象工厂模式来生产Android、...

2018-04-24 15:24:53 301

原创 设计模式-工厂模式

定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景:在任何需要生成复杂对象的地方,都可以使用工厂模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。UML类图主要分为四大模块:1、抽象工厂,其为工厂模式的核心2、具体工厂,其实现了具体的业务逻辑3、抽象产品,是工厂模式所创建产品父类4、具体产品,为实现抽象产品的某个具体产品对象。上述也可以是一个工厂生产多种...

2018-04-24 15:22:58 728

原创 Python爬虫之Ssrapy架构了解

下面是Scrapy架构图,包括组件以及在系统中发生的数据流的概览。组件Scrapy Engine引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。调度器Scheduler调度器从引擎接受request并将它们入队,以便之后引擎请求他们时提供给引擎。下载器Downloader下载器负责获取页面数据并提供给引擎,而后提供给spider。SpidersSpider是用于分析respo...

2018-04-24 15:19:52 611

原创 Python爬虫了解

定义:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。          由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。爬虫的由来 随着网络的发展,万维网成为大量信息的载体,...

2018-04-24 15:18:22 310

原创 Python数据分析基础模块了解

 Python数据分析基础模块numpy  scipy  pandas  matplotlib数值计算 numpy ;数据处理分析 pandas ;可视化 matplotlib/seaborn机器学习 Sklearn/keras  ;交互 pygame ;网络 Selenium etcconda install XXX  或者 pip/pip3 install XXXnumpy提供常用的数值数组,...

2018-04-24 15:13:39 271

原创 Python数据分析之环境Anaconda介绍

操作Python当中的主要的几个科学计算模块,如:NumPy,pandas,Matplotlib等Anaconda介绍:         Anaconda是一个用于科学计算的Python发行版,支持Linux,Mac,Windows系统,提供了包管理与环境管理的功能,可以很方便的解决多版本Python并存、切换以及各种第三方包安装问题。Anaconda利用工具、命令conda来进行package和...

2018-04-24 15:10:47 1431

原创 安卓性能优化之布局优化

从布局的性能、布局层级、布局复用性、测量和绘制时间方向讨论。* 选择耗费性能少的布局耗费性能低的布局有FrameLayout、LinearLayout高的有RelativeLayout;布局过程消耗更多的CPU资源和时间嵌套消耗的性能 > 单个布局本身的性能* 减少布局的嵌套布局层级越少绘制的工作量越少,绘制速度越快,可以选择merge标签,减少布局层级。<merge>作为布局的...

2018-04-24 15:01:38 1043

原创 安卓性能优化之内存泄漏

ANR:Application Not Responding主线程做耗时操作超过5秒无响应就会导致ANR,BroadCastReceiver是10s,4.0之后网络IO不允许在主线程中, 造成ANR的原因应用程序的响应性是由ActivityManager和WindowManager系统服务监视的 主线程做了耗时操作,(下载、IO流的读取、高耗时的计算)Android的哪些操作是在主线程 1、Act...

2018-04-24 14:43:26 175

原创 Android开发之MVP架构详解

Android开发之MVP架构详解一、MVP和MVC的一点感悟  MVP模式估计每个人都了解一点,是从MVC演变而来,随着项目的逐渐变大考虑到产品的维护以及扩展性,MVC的短处逐渐暴露出来,从而让耦合性更低的MVP就得到了人们的青睐。  对于两则的优缺点以及特性介绍网上有一大堆的博客,此处我也不想再去重复,只是简单记录一下自己的感觉和认识。  我们在用MVC写项目的时候,随着项目的

2016-12-02 23:42:01 4653 2

原创 RxAndroid响应式开发(三)

RxAndroid响应式开发(三)  这篇博客第二遍写了,真是好无奈,上次本来一上午已经完成,奈何不知怎么的一下点了舍弃,本来想保存的这可好啥都没有了。重写呗,就当复习了,在此也告诫所有写博客的同僚,点击了舍弃就是彻底删除,注意注意注意。  这篇从源码和原理上来分析一下RxJava的使用和实现,主要包括Observable(被观察者),Observer/Subscriber(观察者),

2016-11-05 14:38:11 3079

原创 Xutils3网络框架的二次封装

Xutils3网络框架的二次封装  Android的网络请求框架真是太多了,不管使用哪个,我感觉做个二次封装比较好,不管需求用哪个改起来方便。这是Xutils3的封装,下次出个OkHttp3的,道理都是一样的。代码亲测了异步get获取数据是OK的,文件上传没有亲测,如有问题咱们一起沟通交流,谢谢。OkHttp的配置1、在gradle中添加compile 'org.xut

2016-11-01 14:30:04 5002 5

原创 RxAndroid响应式开发(二)

RxAndroid响应式开发(二)RxJava观察者模式RxJava 有四个基本概念:1、Observable (可观察者,即被观察者);2、Observer (观察者);3、 subscribe (订阅);4、事件。Observable 和 Observer 通过subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知

2016-11-01 11:57:35 689

原创 RxAndroid响应式开发(一)

RxAndroid响应式开发(一)     学习:给 Android 开发者的 RxJava 详解     http://www.jianshu.com/p/51a8d2ff8697  Rx含义是响应式编程,其本质就是观察者模式,以观察者(Observer)和订阅者(Subscriber)为基础的异步响应方式。   Observables发出一系列事件,Subscribers处理这

2016-10-31 17:56:57 1835

原创 Material Design设计之Tinting(着色)和Clipping(裁剪)

Material Design设计之Tinting(着色)和Clipping(裁剪)Tinting(着色)Tinting特点是可以给图片定义遮罩,让图片有你需要的着色效果。使用的时候只需要在XML中配置tint和tintMode属性就可以了,给个效果提示如下:代码如下:xml version="1.0" encoding="utf-8"?>xmlns:andro

2016-10-29 13:07:14 837

原创 Material Design设计之Palette调色板

Material Design设计之Palette调色板  Palette的作用是从图像中提取突出的颜色,这样我们可以根据提取到的色值把它赋给Toolbar,标题,状态栏等,可以使我们的整个界面色调统一,效果非常好看。Palette介绍可以提取的颜色有如下几种:Vibrant (有活力的)Vibrant dark(有活力的 暗色)Vibrant light(有活

2016-10-28 14:02:01 2602

原创 图片加载框架之Glide详解记录

图片加载框架之Glide详解记录学习:http://blog.csdn.net/xx326664162/article/details/50373676           http://blog.csdn.net/fandong12388/article/details/46372255           http://www.cnblogs.com/whoislcj/

2016-10-28 11:02:47 479

原创 IPC通信基础介绍之Serializable和Parcelable详解

IPC通信基础介绍之Serializable和Parcelable详解都是用来序列化的,什么时候用到序列化呢?1、把对象持久化到存储设备上,保存对象的字节序列到本地文件中。2、通过网络传输给其他客户端。3、通过Intent和Binder传输数据。Serializable接口  serializable是java提供的一个序列化接口,它是一个空接口,使用特别简单,只需

2016-10-18 23:42:40 698

原创 Material Design设计之NavigationView+DrawerLayout主流侧滑实现

Material Design设计之NavigationView+DrawerLayout主流侧滑实现  NavigationView+DrawerLayout主流侧滑实现很早就出来了,网上也有相当多的学习资源,我今天也是闲来无事写了个Demo,无聊记录一下。  NavigationView也是一个简单的View控件,使用起来也比较容易,但是要结合DrawerLayout一起使用。

2016-10-11 15:00:55 935

原创 LayoutInflater.inflater()方法及参数源码分析

LayoutInflater.inflater()方法及参数源码分析  inflate加载布局的时候有四个方法提供,分别如下平常主要用到的还是前两个。下面从源码角度分析一下这四个方法的区别和用法。1、方法1public View inflate(@LayoutResint resource, @Nullable ViewGroup root) {    retu

2016-10-10 16:49:50 653

原创 Android应用坐标系统全面详解

Android应用坐标系统全面详解转载1、背景  自定义控件有一个核心知识点--坐标系。  很多人不屑一顾Android的坐标系,但是如果你想彻底学会自定义控件,我想说了解Android各种坐标系及一些API的坐标含义绝对算一个小而不可忽视的技能,所谓Android自定义view那几大主要onXXX()方法的重写实质其实大多数都是在处理坐标逻辑运算,所以我们就来重点谈一下And

2016-02-26 10:00:44 557 1

转载 service介绍之IntentService与Notification前台通知

service介绍之IntentService与Notification前台通知  注明转载  前面介绍了service的一般使用,在文章最后提到一般要在service里面启动线程去执行具体操作,这种情况下我们要调用stopService方法才能关闭Service,或者在线程中调用stopSelf()方法,但是程序员往往会忘了做这两件事情,从而导致service没有关闭或者主线程阻塞a

2015-12-05 23:36:20 1872

转载 service介绍之service的使用与本地通信

service介绍之service的使用与本地通信  注明转载   这篇文章主要介绍android中的service.  首先我们要弄清楚service到底是什么东西,它是android用于提供后台服务的,注意service(IntentService)不是进程,也不是线程,是依赖于应用程序的主线程的。Android的后台就是指,它的运行是完全不依赖UI的。即使Activity被销毁,

2015-12-05 23:22:35 858

原创 防止多次快速点击打开多个activity的问题

防止多次快速点击打开多个activity的问题  在Android开发中存在这样一个问题,如果一个按钮是打开一个activity界面的,如果用户在1秒钟之内快速点击这个按钮,那么就会打开多个相同的activity,这个是相当浪费资源的,下面介绍一种解决方法。  /** 判断是否是快速点击 */ private static long lastClickTime; public st

2015-11-27 09:09:06 8385

原创 一个让TextView的文本中制定关键字高亮显示的工具类

一个让TextView的文本中制定关键字高亮显示的工具类  在项目开发中很多地方需要让文本中某些关键字高亮显示,这样来说写个工具类是不是很好呢,嘿嘿是的。package com.example.textkeyword;import java.util.regex.Matcher;import java.util.regex.Pattern;import android.text.

2015-11-25 20:36:10 851

原创 为什么要配置Java环境变量

为什么要配置Java环境变量  转载  学java时间也不短了,上班第一天要做的事情无非就是搭建开发环境,配置java环境变量。但是有个问题,环境变量配置的次数也不少了,至于为什么要配置环境变量真的是没有想过。今天就来说说到底为什么要配置java环境变量。  Java开发需要配置三个环境变量:  1、JAVA_HOME环境变量,它的变量的值就是jdk的安装目录,Eclipse/to

2015-11-10 10:30:36 766

原创 进制转换之原理实现(Java)

进制转换之原理实现(Java)1、将整数字符串转换为整数  整数字符串是由符号+数字组成,radix进制的范围是0 ~ radix-1。  原理:先识别符号,再通过radix进制幂的展开式获得整数字符串的整数值(如果将进制radix提取公因数会更明显,这里就不提取了,嘿嘿)。例如:  代码如下:/** * @param s * 将s按十进制

2015-10-20 18:43:52 1319

原创 选择排序之直接选择排序

选择排序之直接选择排序  直接选择排序思想:第一趟从n个元素的数据序列中选出最小/大的元素放到最前/后的位置,下一趟从n-1个元素中选出最小/大的元素并放到次前/后的位置,如此循环,经过n-1趟完成排序。序列{38,97,26,19,38*,15}的直接选择排序过程如下图:直接选择排序算法代码如下:import java.util.Scanner;public clas

2015-10-08 22:06:32 1407

原创 交换排序之冒泡排序

交换排序之冒泡排序  冒泡排序:比较相邻两个元素大小,如果反序,则交换。若按升序排序,每趟排序把最大的数交换到最后的位置,就像气泡从水里冒出一样。序列{32,26,87,72,26*,17}的冒泡排序过程如下:冒泡排序算法代码如下:import java.util.Scanner;public class BubbleSort { public static

2015-10-08 20:24:31 757

原创 插入排序之希尔排序

插入排序之希尔排序  希尔排序的基本思想是分组的直接插入排序。由直接插入排序可知,若序列越接近有序,时间效率越高;再者,当n较小时,时间效率也较高。希尔排序正是基于这两点对直接插入排序算法进行改进。  算法描述:(1)分组,将序列分成若干组,每组由相隔一定增量的元素组成,在一个组内采用直接插入排序进行排序。(2)增量,初值是长度的一半,以后每趟增量减半,直至为1。增量减少,从而组数也减少,

2015-10-08 20:06:33 435

原创 插入排序之直接插入排序

插入排序之直接插入排序  插入排序思想:每趟将一个元素,按其关键字的大小插入到它前面已排序的子序列中,依次重复,直至插入全部元素。  例子:描绘{32,26,87,72,26*,17}直接插入排序过程,"*"区别两个关键字相同的元素。代码如下:public class InsertSort { /** * 直接插入排序 */ public static voi

2015-10-08 18:46:45 587

原创 不用任何比较判断找出两个数中较大的数

不用任何比较判断找出两个数中较大的数【题目】  给定两个32位整数a和b,返回a和b中较大的。【要求】  不用任何比较判断。【解答】  这里有两种方法进行解决,两种方法原理都一样的,只是第二种是第一种的优化。  sign函数的功能是返回整数n的符号,正数和0返回1,负数返回0.flip函数的功能是做n的异或运算,n是1返回0,n是0返回1。方法一:  我们不能直

2015-10-07 21:00:51 3037

原创 Java版双向链表实现

Java版双向链表实现  双向链表是每个结点有两个地址域的线性链表,两个地址域分别指向前结点和后结点,结果如下:  双链表结点(prev 前驱结点地址域;data 数据域;next 后继结点地址域)1、双链表结点类public class DoubleNode { public T data;//数据域 public DoubleNode prev;//前驱结点 publi

2015-10-07 18:28:46 1589

原创 Java版顺序表的浅拷贝与深拷贝(二)

Java版顺序表的浅拷贝与深拷贝(二)Java版顺序表的浅拷贝与深拷贝(一)

2015-10-07 10:35:52 1323

原创 Java版顺序表的浅拷贝与深拷贝(一)

Java版顺序表的浅拷贝与深拷贝(一)  Java的类采用拷贝构造方法实现复制对象功能,声明格式如下:类(类  对象){  this.成员变量 = 参数对象.成员变量;//逐域赋值,以参数的实例值初始化当前实例}  一个类的拷贝构造方法通常实现为成员变量逐域赋值,即将当前对象的各成员变量赋值为实例参数对应的各成员变量的值,称为浅拷贝。  在Java中的类采用引用模型,当一个

2015-10-06 21:01:58 1663

原创 单链表逆转

单链表逆转  单链表逆转,将单链表中各结点的next域改为指向其前驱结点。原先第一个结点的next域为空,head改为指向原先的最后一个结点。逆转刚才如下图所示:链表类SinglyListpublic class SinglyList { public Node head; /** * 构造空单链表 */ public SinglyLi

2015-10-06 17:54:35 2644

原创 Java版线性表的链式存储和实现

Java版本线性表的链式存储和实现  线性表的链式存储结构是用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据在物理上不一定相邻,因此,必须采用附加信息表示数据元素之间的顺序关系,一个数据元素的存储单元称为结点(Node),一个结点包含两个部分:结点(数据域,地址域);  每个结点只有一个地址域的线性表叫单链表,单链表结点(data 数据域;next 地址域,指向后继结点)

2015-10-06 15:39:45 1123 1

原创 求子串的KMP算法

求子串的KMP算法【题目】  给定两个字符串str和match,长度分别为N和M,实现一个算法,如果字符串str中含有子串match,则返回match在str中的开始位置,不含有则返回-1;【举例】  str = "acbc" ,match = "bc", 返回2。  str = "acbc", match = "bcc", 返回-1。【要求】  如果match的长度大

2015-10-05 12:14:32 4657

原创 不用额外变量交换两个整数的值

不用额外变量交换两个整数的值【题目】  如何不用任何额外变量交换两个整数的值?【解答】  使用位运算的异或运算,或者使用加法运算  a异或b的结果是c,那么c就是a整数位信息和b整数位信息的所有不同信息。a = a^b,当前a=c;b = a^b相当于b = c^b 当前b=a;a = a^b 相当于a = c^a 当前a=b,完成交换;如果是加法交换的话,假设a +

2015-10-04 23:01:59 3184

原创 MD5信息摘要算法

MD5信息摘要算法  MD5即Message-Digest Algorithm 5(信息摘要算法5),是计算机广泛使用的散列算法之一(又译摘要算法、哈希算法)。经MD2、MD3和MD4发展而来,诞生于20世纪90年代初。用于确保信息传输完整一致。虽然已被破解,但仍然具有较好的安全性,加之可以免费使用,所以仍广泛运用于数字签名、文件完整性验证以及口令加密等领域。  大家都知道,地球上

2015-10-03 21:37:07 1715

百度定位demo

百度定位

2016-01-14

底部导航学习demo

底部导航学习demo.rar

2015-12-31

百度地图demo

百度地图

2015-12-07

悬浮按钮Demo

悬浮按钮

2015-12-01

ButterKnifeDemo及jar包

ButterKnifeDemo及jar包

2015-11-30

磁性悬浮按钮

磁性悬浮按钮

2015-11-30

百度地图画直线

百度地图画直线

2015-11-30

百度地图学习

百度地图

2015-11-27

上拉刷新下拉加载Demo

上拉刷新.下拉加载,还有滑动删除的Demo,保存下来,不错的demo

2015-11-27

Android上课时间提醒

Android上课时间提醒demo,定时提醒

2015-11-17

android圆形加载进度条

android圆形加载进度条demo,拿来直接用

2015-11-17

Android雷达扫描效果demo

Android雷达扫描效果demo,效果不错

2015-11-17

抖动效果的dialog

自定义抖动效果的dialog,还有其他翻转效果自选

2015-11-17

底部导航demo

Android,fragment底部导航模板,

2015-11-17

android网络开发Volley.jar包下载

android网络编程高效、快捷、方便的volley包

2015-09-05

模拟声波波纹效果

一个模拟声波发出波纹的效果,也是学习的其他人的做的

2015-04-18

c语言 链表的综合操作

数据结构 c语言 链表的综合操作,增删改查,倒数第k个

2014-11-29

空空如也

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

TA关注的人

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