自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 IntentFilter

当Intent在组件间传递时,组件如果想告知Android系统自己能够响应和处理哪些Intent,那么就需要用到IntentFilter对象。    顾名思义,IntentFilter对象负责过滤掉组件无法响应和处理的Intent,只将自己关心的Intent接收进来进行处理。 IntentFilter实行“白名单”管理,即只列出组件乐意接受的Intent,但IntentFilter只会过滤

2016-01-21 10:31:00 278

转载 常用的Java文件操作

//1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if (!myFolderPath.exists()) { myFolderPath.mkdir(); } } catch (Exception

2016-01-06 17:33:52 351

原创 java内部类总结

内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。 内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出

2016-01-05 13:44:02 270

原创 利用Canvas saveLayer手动绘制圆角View

项目中包含了一个腾讯地图,由于该mapView 不支持圆角背景,so决定自己画四个圆角view,覆盖在mapView上以实现圆角矩形的效果。public class CornerView extends View { public static final int TYPE_LEFT_TOP = 1; public static final int TYPE_RIGHT_TOP = 2

2015-12-29 18:54:09 2472

翻译 高效加载Bitmap(Displaying Bitmaps Efficiently)

注:看英文版的Api Guide总觉得蛋疼,现在翻译一篇比较重要的内容:Bitmap的高效加载,希望翻译过后能真正理解该篇文章的核心思想。一般来说,我们在网络上加载的图片的的尺寸都要大于手机屏幕的分辨率,而手机的内存又极其有限,所以,在安卓开发中,对图片进行高效的处理是一块很重要的环节。在安卓开发中有条不成文的规矩:遇到图片,一定要狠狠处理。高效加载BitmapBitmapFatory类提供了许多解

2015-12-29 15:06:44 434

原创 常用的GitHub UI框架

很好的下拉刷新实现 https://github.com/chrisbanes/Android-PullToRefreshTab指示器 https://github.com/astuetz/PagerSlidingTabStrip

2015-12-25 09:45:54 618

原创 Android View的事件分发机制浅析

View的事件分发机制:View的事件分发机制分为两种,一种是View内部的事件分发,一种是ViewGroup中的事件分发ViewGroup的事件是以自顶向下的方式传递,即从Root ViewGroup依次传递到各个子View。首先,事件传递到Root ViewGroup的时候,一定会调用他的dispatchTouchEvent方法来进行事件分发,dispatchTouchEvent首先会

2015-12-10 14:48:58 310

原创 Android handler机制浅析

在安卓中,Handler负责消息的传递,它提供了一套在线程间传递消息的机制。Handler与looper、message、messageQueue一起,共同构成了安卓的消息发送框架。初学安卓的朋友可能对安卓的线程模型感到疑惑,也会感到有很多限制,UI线程既不能等待,又不能做耗时操作,非UI线程又不能改变UI,但这些问题却可以通过handler轻松解决。那么handler内部是怎么实现的呢?它的实现原

2015-12-10 14:47:40 328

原创 Activity launchmode和Intent flag详解

学习安卓,首先就要接触和学习Activity,想必大家在学习activity的过程中一定对activity的launchmode有过困惑。好在网络上关于activity launchmode的博客、解释一大堆,可以方便我们去理解和使用activity launchmode模式,但我强烈建议大家还是要自己动手实践做一些例子,这样才能真正理解activity的launchmode,而且经过实践后你会发现

2015-12-03 14:52:43 1318

原创 LayoutInflater.inflate方法浅析

在Android中,LayoutInflater.inflate()方法一般用于加载布局,相信很多朋友对它已经很熟悉了,但inflate()方法是如何实现的可能有些朋友还不是很清楚,inflater()在使用的时候都有哪些注意事项呢?让我们来简单分析下:首先不妨来看看Fragment的onCreateView方法,它包含了几个参数,一个LayoutInflater,一个ViewGroup,和一个传递

2015-11-30 13:19:59 426

原创 Activity onNewIntent方法浅析

onNewIntent方法一般用于lanchmode为singleTop,singleTask,singleInstance等可复用的activity中,当这些已实例化的activity重新被复用时,就会调用onNewIntent方法。正如字面上的意思,onNewIntent负责处理activity收到的新的intent。Activity中onNewIntent源码如下:/** * Thi

2015-11-20 12:30:46 755

原创 Date和String.format常见用法

目前的java版本Date类主要通过SimpleDateFormat和Calendar类进行处理。SimpleDateFormat按照一定的格式对Date和String进行转换,Calendar类根据国际化标准,构造Date.举例两个常见用法: 计算两个日期的天数/** * 计算两个日期间的天数 */ public static long getDayNum(Strin

2015-11-17 19:26:33 629

原创 LinearLayout和RelativeLayout的特殊属性

Relativelayout属性: 属性名称 描述 android:layout_centerHorizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全 居中 android:layout_alignParentBottom 贴紧父元素的下边缘

2015-11-17 13:03:52 1614

原创 AsyncTask原理详解

在Android中,Handler和AsyncTask都是与异步执行相关的类,Handler主要负责各线程间接收、传递消息,而AsyncTask则主要负责异步操作的处理,其中,doInBackGround()方法负责异步任务的处理、onProgressUpdate()方法则在异步执行过程中调用publishProgress()时回调,以随时更新UI。onPostExecute()方法则是当异步执行

2015-11-12 23:03:56 1309 1

转载 好博客要记录:Activity的launchMode分析 及 Intent.FLAG_NEW_TASK详解

Activity的启动模式共有四种,分别如下:1、standard2、singleTop3、singleTask4、singleInstance这里我们分两种情况讨论上述四种启动模式:app内和app之间首先讨论app内standard:不论当前任务栈中是否存在该Activity,都会新建一个Activity,如 任务栈为A B,要启动B 那么任务栈为 A B Bs

2015-11-12 23:03:54 372

原创 基于LinkedBlockingQueue源码自我实现阻塞队列

LinkedBlockingQueue是一个阻塞的、线程安全的、由链表实现的双向队列,和ArrayBlockingQueue一样,是最普通也是最常用的阻塞队列。现基于LinkedBlockingQueue源码自我实现一个单向的、简化版的LinkedBlockingQueue.package com.lzq.newInterview;import java.util.concurre

2015-11-12 23:03:35 375 1

转载 好博客要记录:HTTP中Get与Post的区别

原文地址:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html  Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资

2015-11-12 23:03:32 278

转载 当你输入一个网址的时候,实际会发生什么?

当你输入一个网址的时候,实际会发生什么? 原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/  作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文

2015-11-12 23:03:27 367

原创 Future、FutureTask浅析

Futurer多用于耗时线程的计算,主线程可以在完成自己的任务后,再去查询该Future是否执行完毕并获取结果。他有一个回调函数protected void done(),当任务结束时,该回调函数会被触发。因此,只需重载该函数,即可实现在线程刚结束时就做一些事情。Future可对具体的调度任务的执行结果进行查看,最为关键的是它可以检查对应的任务是否已经完成(isDone),也可以阻塞在get方

2015-11-12 23:03:20 352 1

原创 ThreadLocal源码浅析

首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的

2015-11-12 23:03:17 325

原创 经典问题之生产者-消费者问题——Lock实现

经典问题之生产者-消费者问题——Lock实现。package com.lzq.newInterview;import java.util.LinkedList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;

2015-11-12 23:03:12 651

转载 好博客要记录:ConcurrentHashMap之实现细节

ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲突,我说必须要加锁,我和面试官也因此发生了冲突,结果可想而知。还是闲话少说,通过仔细阅读源代码

2015-11-12 23:03:07 264

转载 好博客要记录:java中关键字volatile的作用

在Java内存模型中,有main memory,每个线程也有自己的memory (例如寄存器)。为了性能,一个线程会在自己的memory中保持要访问的变量的副本。这样就会出现同一个变量在某个瞬间,在一个线程的memory中的值可能与另外一个线程memory中的值,或者main memory中的值不一致的情况。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的

2015-11-12 23:03:04 245

转载 好博客要记录:对象的强、软、弱和虚引用

对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 ⑴强引用(StrongReference)强引用是使用

2015-11-12 23:03:02 232

转载 好博客要记录:JVM基础概念总结:数据类型、堆与栈、基本类型与引用类型

JVM基础概念总结:数据类型、堆与栈、基本类型与引用类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型包括:byte, short, int, long, char, float, d

2015-11-12 23:02:59 1131 2

转载 好博客要记录:JVM分代垃圾回收策略的基础概念

JVM分代垃圾回收策略的基础概念由于不同对象的生命周期不一样,因此在JVM的垃圾回收策略中有分代这一策略。本文介绍了分代策略的目标,如何分代,以及垃圾回收的触发因素。文章总结了JVM垃圾回收策略为什么要分代,如何分代,以及垃圾回收的触发因素。为什么要分代分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集

2015-11-12 23:02:57 272

原创 自我实现ArrayList

面试者经常遇到集合类源码的问题。我们不求将所有的细节都记住,但ArrayList与LinkedList比较、add、get、remove、扩容、及相关时间复杂度等核心思想要说得一清二楚。ArrayList底层用数组实现,可以快速访问某一节点的值,但插入删除会调用System.arraycopy方法,数组容量不够时需进行扩容,扩容采用新的大数组取代旧的数组。 public class

2015-11-12 23:02:54 401 1

原创 自我实现HashMap

面试官要你自己实现HashMap,无非就是考查对JDK中HashMap的理解。Thinking in JAVA中的 SlowHashMap就不要记了,直接参考JDK写代码吧。HashMap以键值对的方式存储数据,数据结构可理解为“链表的数组”。通过插入元素key值的hashcode和自带的hash算法决定元素的存储位置,发生hash冲突则在此节点下拉一个二元组链表,依次比较链表中的key是否与

2015-11-12 23:02:52 318

原创 浅析Android View的Layout过程

Layout过程是View的三大过程之一,它负责确定一个View和它的子元素的最终位置。与measure过程类似,layout过程也分为layout()和onLayout()两个核心方法。layout负责确定view本身的位置,而layout主要负责确定所有子元素的位置。首先让我们来看看layout方法:public void layout(int l, int t, int r, int b)

2015-11-12 22:05:27 352

原创 Date、String.format常见用法

Date类常见用法:获取当天日期: SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); //获取simpleformat Calendar calendar = Calendar.getInstance();// 通过getInstance方法获取Calendar实例

2015-11-12 11:11:10 406

原创 浅析Android View的Measure过程

我们知道,View从创建到展示给用户包含了三大过程:measure过程、layout过程、draw过程,即测量、布局、绘制。而measure过程则是其中之首,它测量并确定了view的宽高。现总结下view的measure过程。View的measure过程包含了两个核心方法:onMeasure() 方法:protected void onMeasure(i

2015-11-07 16:47:20 340

原创 搬迁学习笔记2——The specified child already has a parent的解决方法

Activity通过setContentView()方法来设定它的布局文件,而布局文件一般都是一个viewGroup,ViewGroup是个view的容器,可以放置很多个View 常见的有LinearLayout RelativeLayout等等。View的继承关系如下:View -> ViewGroup -> 各种Layout。我们有时需要改变一个Activity的布局文

2015-11-06 15:43:01 328

原创 搬迁学习笔记1——Handler的基本使用、子线程更新UI的方式

Handler是Android消息传递的一种机制,可用于在子线程做更新UI(实际上还是在UI线程中更新),与Handler相关联的类有Looper,Message等。Handler的方法有post() sendmessage()等。子线程更新UI的方式:    1)  handler.post(new Runnable())方法。 注意:这个Handler必须为主线程的

2015-11-06 15:33:21 344

空空如也

空空如也

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

TA关注的人

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