自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

vanpersie_9987的博客

我可以接受失败,但不能接受放弃——MJ

  • 博客(105)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android知识点及资料汇总(不断更新中)

/////////////////////// //版本:0.1 //主要内容:根据思维导图的知识点,对之前收藏夹的内容进行分类。 ///////////////////////之前转载过一篇题目为《一张思维导图,告诉你Android新手如何快速入门》的文章,这篇文章是从stormzhang的公众号里看到的,关于Android的知识点总结,大家有兴趣可以看看。本篇文章就是根据上面的知识点,归

2016-11-05 18:32:40 2287 3

原创 生产者、消费者程序练手

写一段生产者、消费者的程序://资源class Meal { private final int orderNum; public Meal(int orderNum) { this.orderNum = orderNum; } @Override public String toString() { return "Mea

2017-08-14 11:39:44 402

原创 Android设计模式-代理模式

介绍代理模式(Proxy Patter)也称委托模式,属于结构型设计模式。这是一个相当重要的设计模式,Android源码中随处可见。何为代理模式呢?比如每天吃饭时赶进度是常事,就叫公司的同时帮忙买饭,这就是一种代理;如果碰到辞职时老板不给发工资,还得委托个律师 帮你打官司,这也是代理。总之,即便在现实生活中,代理也是无处不在。定义为其他对象提供一种代理以控制这个对象的访问。使用场景当无法或者不想直接

2017-05-05 19:18:50 1224

原创 Android设计模式-迭代器模式

介绍迭代器模式(Iterator Pattern)又称游标模式(Cursor)模式,是行为型模式之一。迭代器模式源于对容器的访问,如Java中的List、Map、数组等,由于对容器的访问必然会涉及遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法。如果我们将遍历的方法封装到容器中,那么对于容器来说就承担了过多的功能,容器类不仅要维护自身内部的数据元素而且还要对外部提供遍历的接口方法,因为

2017-05-04 17:58:34 728

原创 Android设计模式-备忘录模式

介绍备忘录模式是一种行为模式,该模式用于保存对象的当前状态,并且可以在之后再次恢复到此状态,这有点像我们平常所说的“后悔药”。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露。定义在不被破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可以将该对象恢复到原先保存的状态

2017-05-04 12:13:34 796

原创 Android设计模式-观察者模式

观察者模式是一个使用概率很高的模式,它最常用的地方时GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们的依赖变小、甚至毫无依赖。在Android开发中,UI具有易变性,但是业务逻辑变化不大,此时GUI系统就需要一套机制在应对这种情况,使得UI层与具体的业务逻辑解耦,观察者模式在此就可以派上用场。定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状

2017-05-02 17:34:48 524

原创 Android设计模式-责任链模式

介绍责任链模式(Iterator Pattern),是行为型设计模式之一。什么是“链”? 我们将多个首尾相连所构成的模型称为链。对于链式结构,每个节点都可以被拆开再连接,因此具有很好的灵活性。将这样一种结构应用于编程领域,将每个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首端出发,沿着链的路径依次传递给每一个对象,直至有对象处理这个请求为止,这样的模式称为责任链模式。在上代码

2017-04-28 11:51:50 382

原创 Android设计模式-状态模式

状态模式介绍状态模式中的行为由状态决定,不同的状态下有不同的行为。状态模式和策略模式的结构几乎完全一样,但它们的目的和本质完全不同。状态模式是平行的、不可替换的。用一句话表述,策略模式是彼此独立、可替换的。一句话描述就是,状态模式把对象的行为包装在不同状态的对象中,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象再其内部状态改变的时候,其行为也随之改变。状态模式定义当一个对象的内

2017-04-27 17:36:13 1072

原创 Android设计模式-策略模式

策略模式介绍考虑这样一种情况:实现某个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或者策略来完成该功能。如,排序算法,可以使用插入排序、归并排序、冒泡排序等。针对这样的情况,一种常规方法是将多种算法写在一个类中。如,需要提供多种排序算法,可以将这些算法写到一个类中,每一个方法对应一个具体的方法;当然,也可以将这些排序算法封装到一个统一的方法中,通过if…else 或者case等条件判断

2017-04-27 14:14:00 341

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

抽象工厂模式介绍抽象工厂模式(Abstract Factory Pattern),也是创建型设计模式之一。大家联想一下,在现实生活中的工厂肯定都是具体的,也就是说每个工厂都会产生某一种具体的产品,也就是每一个工厂都会产生某种具体的产品,那么抽象工厂意味着生产出来的产品是不确定的。那这岂不是很奇怪?抽象工厂模式起源于以前对不同操作系统的图形化解决方案,如,不同操作系统中的按钮和文本框控件其实现不同,展

2017-04-26 14:30:01 399

原创 Android设计模式-工厂方法模式

工厂方法模式介绍工厂方法模式(Factory Pattern),是创建型模式之一。它结构简单,应用广泛。下面看看它的定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。工厂方法模式的通用模式代码//抽象产品类public abstract class Prod

2017-04-25 17:59:00 863

原创 Android设计模式-Builder模式

Builder模式介绍Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户再不知道内部构建细节的情况下,更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。因为一个复杂的对象有很多大量组成的部分,如汽车,有车轮、方向盘、发动机,还有各种小零件等。如何将这些部件装配成一辆汽车,这个过程很复杂,对于这种情况,为了在构建过

2017-04-25 10:17:45 347

原创 Android设计模式-单例模式

单例模式介绍单例模式是应用最广的模式之一。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需一个全局对象,这样有利于协调系统的整体行为。如在一个应用中,应当只有一个ImageLoader实例,这个ImageLoader中又含有线程池、缓存系统、网络请求等,很消耗资源,所以,没有理由让它构造多个实例。这种不能自由构造对象的情况,就是单例模式的使用场景。单例模式定义确保某一个类

2017-04-21 14:48:01 452

转载 40个Java多线程问题总结

前言这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。40个问题汇总1、多线程有什么用?一个可能在很多人看来很扯淡

2017-04-17 10:16:03 551

转载 Android性能优化-内存泄漏的8个Case

为什么要做性能优化?手机性能越来越好,不用纠结这些细微的性能?Android每一个应用都是运行的独立的Dalivk虚拟机,根据不同的手机分配的可用内存可能只有(32M、64M等),所谓的4GB、6GB运行内存其实对于我们的应用不是可以任意索取。优秀的算法与效率低下的算法之间的运行效率要远远超过计算机硬件的的发展,虽然手机单核、双核到4核、8核的发展,但性能优化任然不可忽略。手机应用一般使用的周期比较

2017-04-14 11:06:31 664

原创 Java编程思想-并发(6)

性能调优通过前几篇的介绍,我们知道JDK1.5中的java.util.concurrent包中存在大量的辅助并用于提升性能的类。本文将着重讨论并比较这个包中的部分类之间的性能。比较各类互斥技术首先看看老式的同步机制synchronized关键字和JDK1.5中新的Lock和Atomic类之间的性能差异和适用范围:abstract class Incrementable {

2017-04-13 13:25:19 567

原创 Java编程思想-并发(5)

新类库中的构件JDK1.5引入了java.util.concurrent包,它提供了大量的新类,用于安全而高效地解决并发问题。下面将通过例子一一介绍。CountDownLatchCountDownLatch被称为倒数计步器,它是Java内置的同步器的一种(还有信号量、CyclicBarrier等同步器,后续将作介绍)。它的功能是阻塞一个或多个线程,这些阻塞的线程需要等待其他线程中的某一

2017-04-10 17:06:05 619

原创 Java编程思想-并发(4)

死锁通过前几篇的介绍,我们知道一个对象可以用synchronized方法或其他形式的加锁机制来防止别的任务在互斥还锁没有释放的时候就访问这个对象。我们还知道,任务可以变成阻塞状态(wait或是await的阻塞方式,即释放锁),所以就可能出现这种情况:某个任务在等待另一个任务,而后者有等待别的任务,这样一直下去,直到链条上的任务有在等待第一个任务释放锁。这就得到了一个任务之间互相等待的连环套,而没有哪

2017-04-05 00:44:14 479

原创 Java编程思想-并发(3)

生产者消费者队列使用同步队列来解决任务协作的问题比使用wait和notify更加方便,因为后者需要在每次交互时都握手。而同步队列在任何时刻只允许一个任务插入或移除元素。在java.util.concurrent.BlockingQueue接口中提供了这个队列。

2017-04-04 01:00:20 361

原创 Java编程思想-并发(2)

在对象上同步使用synchronized块必须给定一个在其上进行同步的对象。最常见的是synchronized(this),这表示,如果一个线程获得了当前对象的锁,那么该对象其他的synchronized方法和临界区就不能被调用了。下面同步用了两个锁,所以并发访问时,它们相互独立:class DualSynch { private Object syncObject = new Object

2017-04-03 15:39:34 425

原创 Java编程思想-并发(1)

线程的基本机制并发编程使我们可以将程序划分为多个分离、独立运行的程序。一个线程就是在进程中的一个执行路径。在使用线程时,CPU将轮流给每个任务分配其占用时间。每个任务都觉得自己在一直占用CPU,但事实上CPU时间是划分成片段分配给了所有的任务(例外情况是程序却是运行在具有多核CPU的设备上)。而线程的一大好处是可以使你从这个层次抽身出来,即代码不必知道它是运行在具有一个还是多个CPU的机器上。

2017-04-01 11:36:11 1126

转载 Java并发(六):线程本地变量ThreadLocal、再聊线程池

本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/7451464,转载请注明。ThreadLocal首先说明ThreadLocal存放的值是线程内共享的,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递,这样处理后,能够优雅的解决一些实际问题。public class ConnectionManager {

2017-03-28 17:32:50 4882

转载 Java并发(五):Condition-线程通信更高效的方式、CAS

Condition-线程通信更高效的方式上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。那么引入本篇的主角,Condition,Condition 将 Object 监视器方法(wait、notify 和 noti

2017-03-28 16:58:41 358

转载 Java并发(四):Callable和Future、锁对象Lock-完美解决同步方式

Callable和FutureCallable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值,下面来看一个简单的例子:public class CallableAndFuture {

2017-03-28 16:10:06 1926

转载 Java并发(三):Timer和TimerTask、线程池

Timer和TimerTaskTimer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口。Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。一个Timer可

2017-03-28 15:42:32 3164

转载 Java并发(二):线程协作 生产者/消费者、线程中断、线程让步、线程睡眠、线程合并

线程协作-生产者/消费者上一篇讲述了线程的互斥(同步),但是在很多情况下,仅仅同步是不够的,还需要线程与线程协作(通信),生产者/消费者问题是一个经典的线程同步以及通信的案例。该问题描述了两个共享固定大小缓冲区的线程,即所谓的“生产者”和“消费者”在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生

2017-03-28 11:07:25 475

转载 Java并发(一):线程安全与不安全、volatile、synchronized

最近在研究Java并发,发现了一个不错的并发专题,分享给各位。在学习它之前,一直认为Java并发是个很晦涩难以理解的东西。一是因为它的概念多而抽象,如果要真正理解某些原理可能要牵扯到一些底层的东西;二是因为它不好复现错误,每次运行的结果都不一样,可能某个bug(如死锁)在运行多次程序都能正常执行,但程序就是错误的,不知道哪一次运行就错了。所以要更好地理解Java并发,还是应该从基础说起,只有夯实了基

2017-03-28 09:50:06 761

转载 Android工程师技能表

来自:猿哥(微信号:YuanGe200)从437家知名企业Android招聘信息,统计出来:Android工程师技能表。1、基础肯定是要学,特别是大公司,对基础要求更高。比如算法,几乎每个公司面试笔试都会涉及到。2、技能表中,红色表示比较多企业招聘有要求,可以重点关注。另外,出现次数超过30的,都可以考虑学习,同类的,选择其中之一学习。Java 330 Android UI 207 SD

2017-03-24 17:12:21 778

原创 Effective Java读书笔记——第十一章 序列化

本文关注序列化API,他提供了一个框架,用来将对象编码城字节流,并从字节流编码中重新构建对象。将一个对象编码成一个字节流,成为将该对象序列化;反之称为反序列化。一旦对象被序列化后,它的编码就可以从一台正在运行的虚拟机被传递到另一太虚拟机上,或者被存储到硬盘上,供以后反序列化时用。本文第78条有意向特别提及的特新个,就是序列化代理模式,它可以帮助你避免对象序列化的许多缺陷。第74条:谨慎

2017-03-24 17:07:52 448

原创 Effective Java读书笔记——第九章 异常

充分发挥异常的有点,可以提高程序的可读性、可靠性和可维护性。若使用不当它也会带来负面影响。本章提供了一些有关有效使用异常的指导原则。第57条:只针对异常的情况才使用异常考虑下面的代码:try { int i = 0; while(true) { range[i++].climb(); } catch(ArrayIndexOutOfBound

2017-03-24 09:59:17 344

原创 Effective Java读书笔记——第八章 通用程序设计

本章主要讨论:局部变量的处理控制结构类库的用法各种数据类型的用法反射、本地方法优化、命名惯例第45条:将局部变量的作用域最小化将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性。要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明。过早地声明局部变量不仅会使它的作用域过早地扩展,而且结束的过于晚了——如果变量是在“使用

2017-03-23 16:00:03 398

原创 Effective Java读书笔记——第十章 并发

线程机制允许同时进行多个活动。本章阐述的建议可以帮助编写出清晰、正确、文档组织良好的并发程序。第66条:同步访问共享的可变数据关键字synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法,或者某一个代码块。如果没有同步,一个线程的变化就不能被其他线程看到。同步不仅可以阻止一个线程看到对象处于不一致的状态之中。它还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的

2017-03-22 16:32:21 553

原创 Effective Java读书笔记——第七章 方法

本章讨论方法设计的几个方面:1、如何处理参数和返回值?2、如何设计方法签名?3、如何为方法编写文档?第38条:检查参数的有效性很多构造器和方法都会对传进的参数做有效性判断。如索引必须是非负数。对象索引不能为null等。

2017-03-17 17:49:46 382

转载 详解 Android 中的 HandlerThread

转自技术小黑屋的博客原文链接:详解 Android 中的 HandlerThread正文:HandlerThread是Android API提供的一个便捷的类,使用它我们可以快速的创建一个带有Looper的线程,有了Looper这个线程,我们又可以生成Handler,那么HandlerThread是什么,可以做什么呢,有哪些奇技淫巧可以被我们利用呢?实现原理在介绍原理之前,我们先使用普通的Threa

2017-03-16 16:24:20 318

转载 干货分享

转自 启舰 慢跑的乌龟很多小伙伴都在问我《自定义控件三部曲》系列什么时候更新的问题;首先,很抱歉,这么久没更博客,博主并不是不更了,而是真的太忙了,这个月应该会继续更新的,谢谢大家的关注,先给大家上几篇优秀的文章,以表歉意。你真的理解AIDL中的in,out,inout么?Android:学习AIDL,这一篇文章就够了(上) Android:学习AIDL,这一篇文章就够了(下)国内一线互联网

2017-03-16 09:15:25 703

原创 Effective Java读书笔记——第六章 枚举和注解

JDK1.5中加入一种新的类——枚举类型、一种新的接口——注解类型。第30条:用enum代替int枚举类型是指由一组固定的常量组成合法值的类型。例如一年中的季节、太阳系智能柜的行星或一副牌中的花色。在枚举类型出现之前,表示枚举类型的模式是使用一组具名的int常量://JDK1.5之前的老式写法public static final int APPLE_FUJI = 0;public static

2017-03-13 10:45:47 539

转载 Android中数据序列化之Serializable与Parcelable

1、Serializable序列化Serializable是Java的特性之一,是将Java对象转换成字节序列的过程,与之对应的是反序列化。反序列化是将字节序列化转化为Java对象的过程。Serializable通过实现接口进行标志,只要定义的Java对象实现了Serializable接口,Java就会对该对象诸如对如下类进行序列化和反序列化操作:public class SerDemo imple

2017-03-10 11:24:13 282

原创 Effective Java读书笔记——第五章 泛型

JDK1.5引入了泛型,在泛型引入之前,从集合中读取到的每个对象都必须进行转换,如果不小心引入了错误的对象,在运行时就会出错。有了泛型之后,编译器会在编译阶段检查你是否插入了错误的对象。这样是程序更加安全。第23条:请不要在新代码中使用原生态类型所谓的原生态类型,就是不太任何实际类型参数的泛型名称,例如List相对应的原生态类型就是List。 本条说的主要是使用通配符的要点,可

2017-03-10 10:40:20 379

原创 Effective Java读书笔记——第四章 类和接口

第13条:使类和成员的可访问性最小化略。。。第14条:在共有类中使用访问方法而非公有域class Point { public double x; public double y;}上面的类没有对数据域进行封装,导致这些数据是可以被直接访问的,也就无法进行任何的约束条件。反正,应该对其进行封装:class Point { private

2017-03-08 17:58:13 560

原创 Effective Java读书笔记——第三章 对于所有对象都通用的方法

第8条:覆盖equals时请遵守通用的约定设计Object类的目的就是用来覆盖的,它所有的非final方法都是用来被覆盖的(equals、hashcode、clone、finalize)都有通用约定。首先看看equals方法:若满足下面的这些情况中的某一个,您可以直接使用Object类中的equals方法而不用覆盖:类的每个实例本质上是唯一的。对于那些代表实例而不是值的类来说可以不用覆盖equal

2017-03-07 16:43:51 1528

高仿微信5.2.1主界面图标和第三方jar包资源

高仿微信5.2.1主界面图标和第三方jar包资源

2016-09-13

第三方绘图控件jar包 achartengine-1.1.0.jar

第三方绘图控件必须需要的jar包,该控件可绘制多种图形,详见我的博客"第三方绘图控件 AChartEngine 浅析"

2016-01-15

第三方绘图控件_AChartEngine

该Demo示例了AChartEngine的用法 AChartEngine绘制折线图、散点图、柱状图等多种统计图形

2016-01-15

android下载server端流文件工具包

该jar包实现了从server端下载流文件的简易操作

2016-01-10

服务器端解析和封装json格式数据的工具包

json-lib包及其依赖包实现了server端解析及封装json格式数据的操作

2016-01-10

android网络上传框架

该commons-fileload.jar包及其依赖包方便地实现了本地流文件上传服务器的操作

2016-01-10

Demo_PullToRefresh

该控件是由Chris Banes提供的第三方下拉刷新(包含上拉刷新)控件,完美支持AdapterView

2016-01-10

空空如也

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

TA关注的人

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