自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 笔记-劳动法理解

原文: http://www.sohu.com/a/131352973_698296 理解: 1. 3种用工合同 1)固定期限劳动合同 2)无固定期限劳动合同 3)以完成一定工作任务为期限的劳动合同 2. 关于签订劳动合同 1)一月内不签订合同,赔偿劳动者2倍工资; 2)用人单位自用工之日起即与劳动者建立劳动关系,并且应当在一个月内订立书面

2017-12-18 23:58:02 558

原创 Android进阶系列之3:IntentService

1 IntentService有什么优势和限制?考虑一个场景:在 Android中点击一个按钮下载一个文件。 常规实现一般都是如此:启动一个Activity,Activity中放置一个按钮,点击按钮,启动一个Service来下载文件。由于UI线程不能进行耗时操作。而Service默认运行在UI线程,所以Service中必须启动一个Thread来下载文件。文件下载完毕以后,我们还需要在手动或者自动的

2017-08-13 15:49:05 319

原创 Android进阶系列之2:HandlerThread详解

1 HandlerThread介绍HandlerThread的本质其实就是Thread封装了Looper。默认情况下,开启一个新的线程时,不会有Looper循环。HandlerThread带个我们的功能是:当开启一个新的线程时,默认帮我们建立好消息循环。方便我们的使用。2 HandlerThread使用例子public class MyActivity extends Activity {

2017-08-13 14:38:03 249

原创 注解:编译注解

待写

2017-08-08 19:30:22 245

原创 Java 容器与并发

List ArrayList LinkedList CopyOnWriteArrayListMap HashMap LinkedHashMap WeakHashMap IdentityHashMap ConcurrentHashMap ConcurrentSkipListMap NavigableMap Tree

2017-08-08 19:25:25 304

原创 Java多线程系列10(CAS)

1 CAS原理CAS(Compare And Swap)翻译过来就是:比较和交换。 CAS操作涉及三个操作数: 内存值V,旧的预期值A,要修改的新值B。只有当旧的预期值A和内存值V相等的时,将内存值修改为B,否则一直尝试,直到条件满足。 CAS由硬件特性实现,这些指令允许执行读-修改-写操作。即便有其他线程在同时修改变量,也不用担心。因为如果其他线程改变变量,CAS会检测到改变,重新从内存中读取

2017-08-01 23:23:44 260

原创 Android进阶系列之1:数据库加密

待写

2017-08-01 22:49:43 216

原创 Java多线程系列9(CountDownLatch)

1 CounDownLatch介绍CountDownLatch是java 1.5新引入的一个同步工具类,常用场景为:一个(或者多个)线程等待另外N个线程完成某个事情之后才能执行。是一个非常有用的线程同步类。 其API有://递减锁存器的计数值,如果计数达到0,就释放所有等待的线程。如果计数大于0,计数减1 public void countDown() //等待锁存器的计数值减为0 public

2017-07-31 00:28:31 328

原创 Java多线程系列8(Atomic)

待写

2017-07-31 00:26:49 230

原创 Java多线程系列7(Condition)

待写

2017-07-31 00:25:14 191

原创 Java多线程系列6(Lock)

待写

2017-07-31 00:24:05 243

原创 Java多线程系列5(synchronized)

待写

2017-07-31 00:23:02 210

原创 源码分析:SharedPreferences实现

startLoadFromDisk启动一个线程,线程调用loadFromDiskLocked(),这个方法首先检测.bak文件是否存在,如果存在就更名为非.bak结尾的文件。然后检测这个文件是否可读:如果可读,读取XML文件的键值对,并保存到Map中。读取完毕以后,调用notifyAll,看到这个,我们马上就会想到wait。看看wait在哪里?

2017-07-30 12:03:26 462

原创 Java多线程系列4(wait/notify/notifyAll)

waitnotifynotifyAll 实现生产者消费者模型1 wait/notify/notifyAll这三个方法是在java.lang.Object类提供的,使用的时候需要注意: (1)这三个方法需要在synchronized方法或者同步快中调用; (2)调用wait/notify/notifyAll的对象必须和synchronized对应的对象一致。也即如果synchronized(var

2017-07-30 11:09:14 377

原创 Java多线程系列3(线程同步)

1 为什么要线程同步竞态条件:如果计算的结果取决于多个线程的执行顺序,那么就会发生金态条件。常见的竞态条件是:先检测后执行,执行依赖于检测的结果。检测的结果又依赖于线程实际的执行顺序,这样,就可能出现顺序不一样时,检测的结果不一样,从而导致执行结果不一样。 多线程访问同一个资源,如果出现竞态条件,结果就不是确定的,此时就需要考虑线程同步。2 多线程出错例子看一下下面这个例子:多个线程对同一个变量执

2017-07-29 22:39:13 285

原创 xUtils源码分析系列1

待分析

2017-07-29 21:57:52 176

原创 Java多线程系列2(守护线程)

1 用户线程和守护线程  Java虚拟机中,有两种线程:用户线程(User Thread)和守护线程(Daemon Thread)。  平时我们编写代码中的main函数所在的线程一般就是用户线程。  守护线程是相对于用户线程而言的。守护线程的优先级低于用户线程。  用户线程和守护线程的区别是:  (1)守护线程在调用start()运行之前,要调用setDaemon(true)才可以设置为

2017-07-29 21:37:07 207

原创 Java多线程系列1(线程基本常识)

1 线程的生命周期线程声明周期,经典图示意如下: 线程的几个状态解释如下: 1)当调用 new Thread()时候,线程处于新建状态。此时JVM为线程分配内存空间,执行必要的初始化; 2)调用start(),此时线程会进入到线程等待队列,等待CPU的调度。此时线程处于Runnable状态; 3)线程抢占到CPU的执行权,此时CPU开始执行线程。

2017-07-29 09:31:33 439

原创 源码分析:ConcurrentHashMap实现分析

需要分析的代码。

2016-08-18 18:57:41 240

原创 源码分析:MultiDex实现原理分析

需要解析的代码。

2016-08-16 22:11:26 248

原创 源码分析:SparseArray分析

需要解析的代码。

2016-08-16 21:56:24 197

原创 源码分析1:Android的LruCache类分析

目前Android缓存实现方案大多会用到LruCache和DiskLruCache,这两个类的使用非常简单,但是如果深入底层去问大家几个问题: 1)LruCache的底层实现是怎样的? 2)  LruCache是否线程安全? 3)  LRU算法具体是一个什么算法? 4)  实际使用的时候为什么必须重写sizeOf方法? 这几个问题,相信会难倒很多人。要回答这些问题,还是必须深入代码层去分

2016-08-15 19:13:39 268

空空如也

空空如也

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

TA关注的人

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