Author Archives: sunny

Java类加载器二

有关类加载的内容前面已经介绍了两篇博文,但是仍然没有介绍到类加载的在平常开发中的使用场景,包括如何自定义类加载器。本篇文章继续介绍类加载器的相关内容,包括如何自定义类加载器,并通过简单示例介绍一下类加载器的应用。最后在介绍一下线程上下文类加载器以及类加载器在Web容器和OSGi中的应用。 Class.forName Class.forName()是一个静态方法,同样可以加载类。Class.forN […]

阅读更多 »

Java类加载器一

类加载器介绍 在前面已经有一篇笔记简单介绍了Java类加载机制,但是限于篇幅所以将类加载器单独新启一篇继续介绍。Java类加载器处于类加载机制的第一个阶段,如果在这个阶段对类文件做任何更改都将会对运行产生重大影响。由于类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。 本文所有示例都是基于JDK1.8.0_111,虚拟机版本Ja […]

阅读更多 »

Java设计模式-构建者Builder模式

构建者Builder模式是Java中十分常见的一种设计模式,先看一下GOF设计模式一书中给它的定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 构造者Builder模式类图如下: 一般而言,Builder模式有四个组成部分: Builder为创建一个Product对象的各个部件指定抽象接口。 ConcreteBuilder实现Builder的接口以构造和装配该产品的 […]

阅读更多 »

Java类加载机制

所谓的类加载机制就是JVM使用类加载器将编译生成的Class文件动态加载到JVM的内存空间中,最终形成可以被JVM使用的Java类型。一般情况下,Java应用开发人员不需要直接同类加载器进行交互,Java虚拟机提供的默认类加载器就已经能够满足大多数情况了。但是,如果想要往更深方向延伸,如热修复或者热部署,了解Java类加载机制则是必经之路。本文所有示例都是基于JDK1.8.0_111,虚拟机版本J […]

阅读更多 »

Android跨进程IPC通信AIDL

简介 AIDL:Android Interface Definition Language,即Android接口定义语言,用于生成Android不同进程间进行进程通信(IPC)的代码,一般情况下一个进程是无法访问另一个进程的内存的。如果某些情况下仍然需要跨进程访问内存数据,这时候Android系统就要将其对象分解成能够识别的原数据,编写这一组操作的代码是一项繁琐的工作,但是AIDL对底层进行了抽象 […]

阅读更多 »

Android跨进程IPC通信Messenger

简介 Messenger可以翻译为信使,Android官方API解释如下: 它持有一个Handler的引用,以便其它Messenger发送消息给它。该类允许不同进程之间通过消息进行通信,在一个进程中服务端使用Handler创建一个Messenger,在另一个进程中客户端持有这个Messenger就可以与服务端通信了。这个类的底层是对Binder的一个简单封装,Binder是用来执行通信的。 Mes […]

阅读更多 »

Android 浅谈Fragment懒加载

在Android开发中一旦涉及到和ViewPager使用,有时候ViewPager的预加载功能很好用,可是在某些情况下我们需要这种交互,只有跳转到当前页面时才进行数据加载。在以前版本中有些实现就是将ViewPager源码copy一份出来,把预加载的常量设置为0,这样就可以屏蔽预加载功能了,随着Android版本SDK的升级,现在这种实现方式在新SDK版本已经不再起作用了。那么我们只有再找其它方式了 […]

阅读更多 »

Java并发编程:线程池的简单介绍

前言 Java从JDK1.5引入了java.uitl.concurrent包,在这个包中包含了一个Executor Framework,有关线程池的操作就位于该框架中。在没有引入线程池之前,在实际开发中为了提高系统性能会为每一个任务分配一个线程,实际上这种处理方式存在很大缺陷,尤其是在需要创建大量线程时。 线程生命周期的开销非常高。每一个线程在创建的时候都需要时间,并且需要JVM和操作系统提供一些 […]

阅读更多 »

Java并发编程:显式锁Lock

Lock显式锁是在JDK1.5引入的,在JDK1.5之前处理多线程并发使用的是synchronized和volatile关键字。在JDK1.5之后增加了一种新的机制Lock,虽然与synchronized类似都是提供加锁机制,但是Lock锁并不是提供了一种替代内置锁synchronized的方式,而是当内置锁机制不适用时,提供了一种可选择的更高级的功能。 synchronized的局限性 sync […]

阅读更多 »

Java并发编程:阻塞队列BlockingQueue

阻塞队列BlockingQueue简介 阻塞队列BlockingQueue是JDK1.5并发新特性中的内容,阻塞队列首先是一个队列,同样实现了Collection接口。阻塞队列提供了可阻塞的put和take方法,以及支持定时的poll和offer方法。 阻塞队列跟普通队列相比,首页它是线程安全的,另外还提供了两个附加操作:当队列为空时,从队列中获取元素的操作将被阻塞;当队列填满是,向队列添加元素将 […]

阅读更多 »
1 2 3 4 11