自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LayoutInflater.inflate方法浅析

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

2015-11-30 13:19:59 427

原创 Activity onNewIntent方法浅析

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

2015-11-20 12:30:46 757

原创 Date和String.format常见用法

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

2015-11-17 19:26:33 630

原创 LinearLayout和RelativeLayout的特殊属性

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

2015-11-17 13:03:52 1618

原创 AsyncTask原理详解

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

2015-11-12 23:03:56 1311 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 374

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

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

2015-11-12 23:03:35 377 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 279

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

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

2015-11-12 23:03:27 369

原创 Future、FutureTask浅析

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

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

原创 ThreadLocal源码浅析

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

2015-11-12 23:03:17 326

原创 经典问题之生产者-消费者问题——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 652

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

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

2015-11-12 23:03:07 265

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

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

2015-11-12 23:03:04 246

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

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

2015-11-12 23:03:02 234

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

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

2015-11-12 23:02:59 1132 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 319

原创 浅析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 355

原创 Date、String.format常见用法

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

2015-11-12 11:11:10 412

原创 浅析Android View的Measure过程

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

2015-11-07 16:47:20 342

原创 搬迁学习笔记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 330

原创 搬迁学习笔记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 345

空空如也

空空如也

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

TA关注的人

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