自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

转载 java设计模式--观察者模式

观察者模式定义了对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖者都会收到通知并且自动更新。生活中很多地方用到这种模式,比如说天气预报订阅系统,报纸订阅系统等。下面一个实例模拟以下发布—-订阅过程/** * 观察者 * @author wangzl * */public class Coder implements Observer { public

2017-12-18 11:10:28 253

转载 Java设计模式--工厂模式

工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类。工厂模式的形态 工厂模式主要用一下几种形态: 1:简单工厂(Simple Factory):不利于产生系列产品 2:工厂方法(Factory Method):又称为多形性工厂 3:抽象工厂(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品一:简单工厂模式

2017-12-18 11:03:34 249

转载 TCP和UDP概念和区别

概念:TCP:是面向连接的, 可靠的流协议 可以提供面向连接的、可靠的、点到点的通信。UDP:是不具有可靠性的数据报协议. 细微的处理它会交给上层应用去完成.UDP的特点:1、每一次发送数据都需要绑定IP和端口号。相当于发送邮件,只管是否发送成功,不保证对方是否接收到数据,所以UDP是不安全的,有可能会丢失数据包。2、UDP:类似于HTTP,也属于短连接。

2017-12-18 11:02:03 630

转载 HTTP与HTTPS的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安

2017-12-18 11:00:29 266

转载 二分查找

二分查找算法(JAVA) 1.二分查找又称折半查找,它是一种效率较高的查找方法。2.二分查找要求:(1)必须采用顺序存储结构 (2).必须按关键字大小有序排列3.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前 面找,若大于中值则在中值后面找,等于中值时直接返回。然后依次是一个递归过

2017-12-18 10:59:15 263

转载 Java中HashMap,LinkedHashMap,TreeMap的区别

java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历

2017-12-18 10:58:38 218

转载 Java不可变对象

一、不可变类简介不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。可变类:相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。下面的理解可能会易懂一些:概念:不可变类的意思是创建该类的实例后,该实例的属性是不可改变的。Java

2017-12-18 10:57:55 258

转载 图片加载之Glide使用总结

概述作为Glide是谷歌推荐的图片加载库,Glide又着 支持video,Gif,SVG格式,同时有着很好的生命周期管理,支持Volley,OkHttp,更好的内存管理策略等优点。相关方法with():指定了声明周期load():加载资源,String/Uri/File/Integer/URL/byte[]/T,或者 loadFromMediaStore(U

2017-12-18 10:57:34 558

转载 Android开发中线程和线程池的使用

说到线程,我想大家都不陌生,因为在开发时候或多或少都会用到线程,而通常创建线程有两种方式:1、继承Thread类 2、实现Runnable接口12虽说这两种方式都可以创建出一个线程,不过它们之间还是有一点区别的,主要区别在于在多线程访问同一资源的情况下,用Runnable接口创建的线程可以处理同一资源,而用Thread类创建的线程则各自独立处理,各自拥有自己的资源。 所以,在Ja

2017-12-18 10:57:14 269

转载 Android的Handler消息传递机制

能简单说得我们尽量不复杂:为了避免ANR,我们会通常把 耗时操作放在子线程里面去执行,因为子线程不能更新UI,所以当子线程需要更新的UI的时候就需要借助到安卓的消息机制,也就是Handler机制了。一个程序的运行,就是一个进程的在执行,一个进程里面可以拥有很多个线程。主线程:也叫UI线程,或称ActivityThread,用于运行四大组件和处理他们用户的交互。 Activi

2017-12-18 10:55:55 313

转载 Android性能优化方案总结

Android的性能优化主要是从,布局优化,绘制优化,内存泄漏优化,响应速度优化,listview优化,bitmap优化,线程优化进行优化处理的。1.布局优化和绘制优化:减少视图层级可以有效的减少内存消耗,因为视图是一个树形结构,每次刷新和渲染都会遍历一次。 布局优化的思想就是减少布局的层级,主要是采用include标签、merge标签、ViewStub标签,其中include

2017-12-15 10:28:47 245

转载 OKHttp介绍

OkHttp是一个高效的HTTP库:会从很多常用的连接问题中自动恢复。如果服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP。OkHttp还处理了代理服务器问题和SSL握手失败问题。OKHttp支持 SPDY ,共享同一个Socket来处理同一个服务器的所有请求如果SPDY不可用,则通过连接池来减少请求延迟。总体设计:上 面是OK

2017-12-15 10:27:32 371

转载 Retrofit原理浅析

Retrofit是Square组织开发维护的一款网络框架。Retrofit非常适合处理RESTful风格的网络接口。Retrofit通过注解和动态代理简化了网络请求的代码工作量,与OKHttp为同一组织开发,能够很好的结合使用。Retrofit和okhttp配合使用的优点Retrofit其实是在okhttp的基础之上进行了封装。把网络请求都交给给了Okhttp,我们只需要通过简单的

2017-12-15 10:26:30 215

转载 MVC, MVP, MVVM比较以及区别

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

2017-12-15 10:25:41 568

转载 常用的图片加载库的区别(Gilde,Picasso,Image-loader,Fresco)

Gilde,Picasso,Image-loader,Fresco图片加载库的使区别GlideGlide是一个非常成熟的图片加载库,他可以从多个源加载图片,如:网路,本地,Uri等,更重要的是他内部封装了非常好的缓存机制并且在处理图片的时候能保持一个低的内存消耗。 当我们调整imageview的大小时,Picasso会不管imageview大小是什么,总是直接缓存整张图片,而G

2017-12-15 10:25:23 362

转载 String,StringBuffer,StringBuilder的区别

java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。    private final char value[

2017-12-15 10:24:49 162

转载 java作用域public protected private,以及不写时的区别

下面我简单的画一张表来说明问题:modifiers作用域(可见)当前类同包子孙类其他包public√ √ √  √protected √ √ √×default(friendly) √ √××

2017-12-15 10:24:21 340

转载 java实现冒泡排序

一、基本概念:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一

2017-12-15 10:23:26 218

原创 Android中常出现内存泄漏的情况

1. 有“static”变量引用待释放类实例示例代码:public class StaticReferenceActivity extends AppCompatActivity { private static final String NAME = StaticReferenceActivity.class.getSimpleName(); private s

2017-12-15 10:21:09 223

转载 Android中动画的介绍以及使用

1 背景不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今天来一发Android应用的各种Animation大集合。英文厉害的请直接移步参考Android Developer。Android系统提供了很多丰富的API去实现UI的2D与3D动画,最主要的划分可以分为如下几类:View Animation: 视图

2017-12-14 14:15:19 1198

转载 EventBus 源码解析

概述EventBus是一款针对Android优化的发布/订阅(publish/subscribe)事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅。以及将发送者和接收者解耦。比如请求网络,等网络返回时通过Handler或B

2017-12-14 13:51:54 233

转载 Android中的内存管理机制以及正确的使用方式

概述从操作系统的角度来说,内存就是一块数据存储区域,属于可被操作系统调度的资源。现代多任务(进程)的操作系统中,内存管理尤为重要,操作系统需要为每一个进程合理的分配内存资源,所以可以从两方面来理解操作系统的内存管理机制。第一:分配机制。为每一个进程分配一个合理的内存大小,保证每一个进程能够正常的运行,不至于内存不够使用或者每个进程占用太多的内存。第二:回收机制。在系统内存不

2017-12-14 11:28:28 641

转载 Java类加载器概述

1.类的加载过程  JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始

2017-12-14 11:20:25 238

转载 android触摸事件分发与处理简述

android触摸事件分发与处理android的分发机制:由父控件判断是否拦截,如果不拦截事件,则继续分发到子控件,然后一直分发下去。处理:与分发相反,由子控件先处理事件,如果子控件不处理,则交给父控件处理,一直向上传递,直到那个控件处理了触摸事件相关方法:Boolean dispatchTouchEvent(MotionEvent ev)接收到触摸事件时,是否分发

2017-12-14 11:17:04 359

转载 Listview 和RecycleView的异同

在我的一篇介绍Android新控件RecyclerView的博客( Android L新控件RecyclerView简介 )中,一个读者留言说RecyclerView跟ListView之间好像没有什么不同,我觉得这是一个好问题,应该明确地区分一下两者的睯,所以我就研究了一下它俩之间的区别,然后也对两者的使用有了更加深入的了解。Android是一个不断进化的平台,Android 5.0的

2017-12-14 11:12:34 310

转载 Java中HashMap的实现原理

一、Java中的hashCode和equals1、关于hashCodehashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的 如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同 如果对象的equals方法被重写

2017-12-14 11:11:35 196

转载 Java中抽象类和接口的区别

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final (这里需要说一点,既然一个变量被final修饰了,那么这个变量就是一个常量!!!!!变量必须初始化成常量!!!!!)接口和抽象类的区别接口和抽象类还是有一定区别的,接口可以看

2017-12-14 11:05:39 162

转载 java中面向对象思想和三大特性的理解

java是一门纯粹的面向对象的语言。面向对象这种程序设计模式它将现实世界中的一切事物都看作是对象,例如,一个人是一个对象,汽车、飞机、小鸟等等,都是对象;它强调从对象出发,以对象为中心用人类的思维方式来认识和思考问题。每个对象都具有各自的状态特征(也可以称为属性)及行为特征(方法),java就是通过对象之间行为的交互来解决问题的。面向对象:1、面向对象面向对象是一种程序设计

2017-12-14 11:02:04 606

转载 Java Socket编程和TCP/IP协议

Socket编程一、网络基础知识1、两台计算机间进行通讯需要以下三个条件: IP地址、协议、端口号2、TCP/IP协议: 是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合,也成TCP/IP协议族、或TCP/IP协议栈 TCP:Transmission Control Protocol 传输控制协议 IP:Internet Pr

2017-12-14 11:01:15 306

转载 Java算法给定一个整数数组,找出其中两个数相加等于目标值

给定一个整数数组,找出其中两个数相加等于目标值 例如:给定数组及目标值 nums = [2,7,11,15] ,target = 9 因为nums[0] + nums[1] = 2 + 7 = 9 返回[0,1]/** * 使用辅助空间(使用哈希表,时间复杂度是O(n),空间复杂度:O(n),n是数组大小) * @param nums * @param

2017-12-13 16:43:44 7643 1

转载 Android四大组件之Service

一、Service简介Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,

2017-12-13 16:41:49 306

转载 网络编程之TCP协议为啥是三次握手和四次挥手?

1.在学习TCP协议的时候,总是在强调三次握手,那么为什么是三次?而不是两次或者四次?(强迫症表示黑人问号????)今天我们就来分析一下为什么是三次,下图是一次TCP通讯的时序在这个例子中,首先客户端主动发起连接、发送请求,然后服务器端响应请求,然后客户端主动关闭连接。两条竖线表示通讯的两端,从上到下表⽰示时间的先后顺序,注意:数据从一端传到

2017-12-13 10:28:03 191

转载 排序算法总结

排序算法总结 梦工厂 已关注2015.08.31 17:50* 字数 2109 阅读 25972评论 28喜欢 688赞赏 2排序算法平均时间复杂度冒泡排序O(n2)选择排序O(n2)插入排序O(n2)希尔排序O(n1.5)

2017-12-13 10:06:01 207

转载 在java中,OOA是什么?OOD是什么?OOP是什么?

Object-Oriented Analysis:面向对象分析方法  是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。  OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层

2017-12-12 15:40:52 839

转载 Java垃圾回收机制

一.如何确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?以及通过什么方法判断一个对象可以被回收了?在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。 1. 引用计数算法给对象中添加一个引用

2017-12-12 14:11:10 233

转载 Java中==和equal有什么区别

先来看一段代码:String str1 = new String("str"); String str2 = new String("str"); System.out.println("==比较 :" + (str1 == str2)); System.out.println("equal比较:" + str1.equals(str2));

2017-12-12 13:11:50 242

转载 Java中静态变量和实例变量的区别?&和&&

静态变量和实例变量的区别?在语法定义上的区别:静态变量前要加static关键字,而实例变量前不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码文件,不用创建任何实例象,静态变量就会被分配空间,静态变量就可以被使用了。总

2017-12-12 11:26:40 383

转载 Android中的缓存策略--LruCache

一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存。因此LRU(Least Recently Used)缓存算法便应运而生,LRU是近期最少使用的

2017-12-12 11:16:22 228

转载 Android中的缓存策略--DiskLruCache

LruCache是一种内存缓存策略,但是当存在大量图片的时候,我们指定的缓存内存空间可能很快就会用完,这个时候,LruCache就会频繁的进行trimToSize()操作,不断的将最近最少使用的数据移除,当再次需要该数据时,又得从网络上重新加载。为此,Google提供了一种磁盘缓存的解决方案——DiskLruCache1 DiskLruCache实现原理使用了DiskLruCa

2017-12-12 11:03:54 421

转载 Window、Activity、DecorView以及ViewRoot之间的关系

ActivityActivity并不负责视图控制,它只是控制生命周期和处理事件。真正控制视图的是Window。一个Activity包含了一个Window,Window才是真正代表一个窗口。Activity就像一个控制器,统筹视图的添加与显示,以及通过其他回调方法,来与Window、以及View进行交互。WindowWindow是视图的承载器,内部持有一个 DecorView

2017-12-12 10:43:24 328

Android身份证校验工具类

使用我的工具类可以轻松实现身份证号码是否有效的校验

2017-08-11

svn_1.9.5.27581_x64.zip

压缩包内有安装包和汉化包 都是同一个版本,先把安装包装上,在安装汉化包

2017-07-11

空空如也

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

TA关注的人

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