自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 Android 重构历程(一)

1.今天开始重构的第一步,就发现程序有问题了,原来,android 在5.0以下整个应用的方法数不可以超过65535,解决的方法有两个,一个是动态加载apk,还有一个是分包。(1)首先解决白屏问题,当在android studio设置分包,如下配置在build gradle中:defaultConfig { multiDexEnabled = true}dexOpti

2016-04-05 12:36:09 521

转载 Java并发编程:volatile关键字解析

Java并发编程:volatile关键字解析   volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模

2015-11-10 13:49:32 454

转载 Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

看到这个例子的标题RoundRects,我的第一感觉是介绍RoundRectShape, 打开例子看了代码却是使用GradientDrawable来实现的。GradientDrawable 支持使用渐变色来绘制图形,通常可以用作Button或是背景图形。GradientDrawable允许指定绘制图形的种类:LINE,OVAL,RECTANGLE或是RING ,颜色渐变支持LINEAR

2015-10-12 15:45:49 505

转载 ELF Header 分析

这里先定义数据的表示形式Name         Size    AlignmentELF32_Addr    4B       4BELF32_Half    4B       2BELF32_Off     4B       4BELF32_Sword   4B       4BELF32_Word    4B       4Bunsigned char 1B   

2015-07-09 13:32:18 645

转载 java并发编程-Executor框架

Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执行,Execut

2015-05-18 15:14:15 499

转载 Android studio学习

一,Android Studio主要目录及文件简介build:构建目录,相当于Eclipse中默认Java工程的bin目录。libs:依赖包src:    main        java Java代码        res 资源文件            layout App布局及界面元素配置            menu App菜单配置

2015-04-28 09:45:39 528

转载 Android中Handler引起的内存泄露

在Android常用编程中,Handler在进行异步操作并处理返回结果时经常被使用。通常我们的代码会这样实现。?123456789public class SampleActivity extendsActivity {   privatefinal Handler mLeakyHandler

2015-04-03 09:26:13 360

转载 Android 5.0 API新增和改进

API 级别:21Android 5.0 (LOLLIPOP) 为用户和应用开发者提供了新的功能。本文档介绍了最值得注意的新 API。有关新平台功能的扼要介绍,另请参阅 Android Lollipop 集锦。开始开发要构建 Android 5.0 版应用,您必须先下载 Android SDK,然后使用 SDK 管理器下载 Android 5.0 SDK 平台和

2015-04-01 16:04:51 718

转载 Future与FutureTask

API:Java代码  public interface Executor {          void execute(Runnable command);    }     public interface ExecutorService extends Executor {             Future submit(Callable task);     

2015-03-31 14:57:41 380

转载 Callable与Future的介绍

Callable与Future 两功能是Java在后续版本中为了适应多并法才加入的,Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其他线程执行的任务。Callable的接口定义如下;public interface Callable {       V   call()   throws Exception; } 

2015-03-31 14:33:05 306

转载 Java-Collections Framework学习与总结-LinkedHashMap

前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。        先读了一下源码的注释,首先LinkedHashMap中所有的Entry组成了一个双向链表,该链表定义了内部数据的迭代顺序,通常是按key插入的

2015-03-31 12:06:30 351

转载 Java-Collections Framework学习与总结-LinkedList

ArrayList的插入和删除元素的操作会花费线性时间,那么有没有插入和删除元素比较省时的集合呢,看下LinkedList这个实现。        老样子,先看看它实现了那些接口。Java代码  public class LinkedList      extends AbstractSequentialList      implements List, Deque,

2015-03-31 11:55:37 358

转载 Java-Collections Framework学习与总结-ArrayList

工作中经常会用到Java的集合类,最近不忙了,把相关知识总结一下,便于理解记忆。        打开java.util.ArrayList的源代码,首先映入眼帘的是@author  Josh Bloch(相对于源码,本人更喜欢看故事 ,每次看到一份源码,先看看作者是谁。然后搜索一下作者的百科以及一些八卦。。。以及与作者相关的人的百科和一些八卦。。。以及。。。一上午就过去了 ),这家伙是谁?

2015-03-31 11:53:57 697

转载 Java-Collections Framework学习与总结-IdentityHashMap

这篇总结一下java.util.IdentityHashMap。从类名上可以猜到,这个类本质应该还是一个散列表,只是前面有Identity修饰,是一种特殊的HashMap。        简单的说,IdentityHashMap和HashMap的区别在于对key的比较。        HashMap中会调用key的hashCode方法,hashCode方法可能会根据具体情况进行重写。在比较

2015-03-31 11:53:10 352

转载 Java-Collections Framework学习与总结-HashSet和LinkedHashSet

本篇总结一下两个常用的集合类HashSet和LinkedHashSet。        它们都实现了相同接口java.util.Set。Set表示一种元素无序且不可重复的集合;之前总结过的java.util.List表示一种元素可重复且有序的集合。它们都扩展自java.util.Collection。Java代码  public interface Set extend

2015-03-31 11:52:33 375

转载 Java-Collections Framework学习与总结-WeakHashMap

总结这个类之前,首先看一下Java引用的相关知识。Java的引用分为四种:强引用、软引用、弱引用和虚引用。        强引用:就是常见的代码中的引用,如Object o = new Object();存在强引用的对象不会被垃圾收集器回收。所以我们会在一些代码中看到显示切断强引用,以便回收相关对象的情况。Java代码  public void clear() { 

2015-03-31 11:51:32 356

转载 Java-Collections Framework学习与总结-EnumMap

看这个类之前,先看一下Java的枚举——Enum。        枚举是啥?编码时我们经常需要写int型常量,在某些情况下(不是全部),用枚举更合适。举个例子,在程序中需要两个常量表示性别(男、女)。可能刚开始(JDK1.5之前)我们会这样写:Java代码  /**  * 男  */  public static final int MALE = 1;    /**  

2015-03-31 11:49:07 528

转载 Java-Collections Framework学习与总结-PriorityQueue

开发中有时会遇到这样的情况。要求某个调度器去调度一些任务,这些任务放在队列里。任务本身有优先级,调度器要按照优先级去调度队列里的任务,当然也会有新任务不断加入到队列中。        可以类比操作系统调度程序,操作系统要调度某个进程,简单的说会根据某种优先级进行调度(比如某些情况下,先执行时间较短的任务,保证短任务尽快结束。)        所以期望有这样一种数据结构,首先它是一个队列,可

2015-03-31 11:49:05 404

转载 Java-Collections Framework学习与总结-HashMap

开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。        一个Map中会包含多个K-V对儿,Key不能重复。一个Key最多只能映射到一个Value

2015-03-31 11:46:50 441

转载 Java-Collections Framework学习与总结-ArrayDeque

表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。        这篇要看一下java.util.ArrayDeque。从命名上看,它是一个由数组实现的双端队列。还是先看一下它实现了哪些接口。Java代码  public class ArrayDeque ext

2015-03-31 11:44:13 351

转载 设计模式6大原则

设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使

2015-02-28 15:29:23 718 1

转载 Java对象的强、软、弱和虚引用原理+结合ReferenceQueue对象构造Java对象的高速缓存器

1.Java对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。     但

2014-12-08 13:24:25 319 1

转载 Android 内存溢出解决方案(OOM) 整理总结

在最近做的工程中发现加载的图片太多或图片过大时经常出现OOM问题,找网上资料也提供了很多方法,但自己感觉有点乱,特此,今天在不同型号的三款安卓手机上做了测试,因为有效果也有结果,今天小马就做个详细的总结,以供朋友们共同交流学习,也供自己以后在解决OOM问题上有所提高,提前讲下,片幅有点长,涉及的东西太多,大家耐心看,肯定有收获的,里面的很多东西小马也是学习参考网络资料使用的,先来简单讲下下: 

2014-12-05 14:23:21 303 1

转载 深入理解ReferenceQueue GC finalize Reference

概述 1 先看一个对象finalize的顺序问题。 2 对象再生及finalize只能执行一次 3 SoftReference WeakReference 4 PhantomReference 5 ReferenceQueue Q&A 概述 先说一些基本的东西,GC只负责对象内存相关的清理,其他资源如文件句柄,db连接需要手动清理,以防止系统资源不足崩溃。System.gc(

2014-12-05 14:05:57 496 1

转载 Android消息队列模型——Thread,Handler,Looper,Massage Queue

Android系统的消息队列和消息循环都是针对具体线程的,一个线程可以存在(当然也可以不存在)一个消息队列(Message Queue)和一个消息循环(Looper)。Android中除了UI线程(主线程),创建的工作线程默认是没有消息循环和消息队列的。如果想让该线程具有消息队列和消息循环,并具有消息处理机制,就需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Loope

2014-12-05 11:48:00 363 1

转载 static class 静态类(Java)

一般情况下是不可以用static修饰类的。如果一定要用static修饰类的话,通常static修饰的是匿名内部类。在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。由于静态的内部类在定义、使用的时候会有种种的限制。所以在实际工作中用到的并不多。在开发过程中,内部类中使用的最多的还是非静态地成员内部类。不过在特定的情况下,静态内部类也

2014-12-04 15:16:11 299 1

转载 ThreadLocal-分析-总结

ThreadLocal类在Spring,Hibernate等框架中起到了很大的作用,对于其工作原理,很多网上的文章分析的不够彻底,甚至有些误解。 首先,为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类(内部类)1.ThreadLocalMap2.Thread可能有人会觉得Thread与ThreadLocal有什么关系,其实真正的奥秘就在Thr

2014-12-04 11:29:03 269 1

转载 PriorityBlockingQueue优先级规则

PriorityBlockingQueue里面存储的对象必须是实现Comparable接口。队列通过这个接口的compare方法确定对象的priority。 规则是:当前和其他对象比较,如果compare方法返回负数,那么在队列里面的优先级就比较搞。下面的测试可以说明这个断言:查看打印结果,比较take出来的Entity和left的entity,比较他们的priority

2014-12-04 11:11:01 543 1

转载 ThreadPoolExecutor使用例子

public class Test1 {     private ThreadPoolExecutor threadpool;         /**     * Param:      * corePoolSize - 池中所保存的线程数,包括空闲线程。      * maximumPoolSize - 池中允许的最大线程数(采用LinkedBlockingQueue

2014-12-04 10:13:00 692 1

转载 Concurrent包常用方法简介

Table of Contents1 Executor接口2 ExecutorService接口3 ScheduledExecutorService接口4 Executors类5 结束1 Executor接口留给开发者自己实现的接口,一般情况下不需要再去实现。它只有一个方法void execute(Runnable command)

2014-12-04 09:17:27 472 1

转载 Android 4.0 Http缓存机制

Android早已经在4.0版本添加了缓存支持,以下内容是对Android官方文档的一个总结。(一)  HttpResponseCache 类在Android 4.0 版本添加支持,支持 HttpURLConnection和 HttpsURLConnection,但不支持DefaultHttpClient和AndroidHttpClient。HttpResponseCache的好处

2014-12-03 17:11:22 695 1

转载 Android中StatFs获取系统/sdcard存储(剩余空间)大小

package com.orgcent.util;import java.io.File;import android.os.Environment;import android.os.StatFs;public class MemoryStatus { static final int ERROR = -1; /** * 外部存储是否可用 *

2014-12-03 15:47:16 661 1

转载 Java NIO 学习demo

我们都知道TCP是面向连接的传输层协议,一个socket必定会有绑定一个连接,在普通的BIO(阻塞式IO)中,需要有三次握手,然后一般的socket编程就是这样的形式。Socket服务器端流程如下:加载套接字->创建监听的套接字->绑定套接字->监听套接字->处理客户端相关请求。 Socket客户端同样需要先加载套接字,然后创建套接字,不过之后不用绑定和监听了,而是直接连接服务器,发送相关

2014-09-09 13:47:28 444 1

转载 Java NIO学习图文分析

最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(动态代理可以参考博客:http://weixiao

2014-09-09 11:24:18 397 1

转载 Java NIO 学习(四)

在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户请求。这种模式带来的一个问题就

2014-09-09 11:17:01 479 1

转载 Java NIO 学习(三)

在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。缓冲区的分配在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象时,会调用静态方法allocate()来指定缓冲区的容量,其实调用 allocate()相当于创建了一个指定大小的数组,并把它包装为缓冲

2014-09-09 11:11:11 409 1

转载 Java NIO 学习(二)

在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。本文为NIO使用及原理分析的第二篇,将会分析NIO中的Buffer对象。在缓冲区中,最重要

2014-09-09 11:08:19 395 1

转载 Java NIO 学习(一)

最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习 Java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统

2014-09-09 11:01:04 441 1

转载 静态内部类的使用

本讲内容:内部类Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。我们内部类的知识在Android手机开发中经常用到。一、常规内部类所谓常规内部类,或者说内部类,指的就是除去后面三种之外的内部类(这算什么解释。。。)先写一个最简单的内部类的例子,大家感觉一下:1pub

2014-09-05 09:35:48 580 1

转载 QQ SDK使用笔记(二)

1. 创建实例Tencent是SDK的功能入口,所有的接口调用都得通过Tencent进行调用。因此,调用SDK,首先需要创建一个Tencent实例,其代码如下:123456789101112131415161718192021@Override publi

2014-09-03 11:23:30 584

空空如也

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

TA关注的人

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