自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

转载 JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括

2013-03-25 20:55:42 599

原创 Activity 启动模式

Android中的Activity的启动方式主要有:Standard,SingleTop,SingleTask,SingleInstance;   Task: 与用户交互的一系列Activity组成的集合;一般而言,一个应用对应一个task;可以同时存在多个task,task可以从后台被调动到前台;当用户按下home键时,task会被转入后台,当再次启动application时,对应的task

2012-10-29 22:36:40 512

原创 Java 免锁容器

1.CopyOnWriteArrayList  ArrayList 的一个线程安全的变体,其中所有可变操作(add、set 等等)都是通过对底层数组进行一次新的复制来实现的;在CopyOnWriteArrayList中,写入将导致创建整个底层数组的副本,而源数组将保留在原地,使得复制的数组在被修改时,读取操作可以安全的执行。当修改完成时,一个原子性的操作将把新的数组换入,使得新的读取操作可以看

2012-09-25 01:13:42 1535

原创 Java多线程类库中的组件(二)

1.Semaphore  一个计数信号量,允许N个任务同时访问一个资源,而concurrent.locks或内建的synchronized锁,任何时候只允许一个任务访问一项资源;信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。Semaphore(int per

2012-09-25 00:38:03 1197

转载 Java集合框架类图

2012-09-22 00:40:58 817

原创 Java多线程BlockingQueue

BlockingQueue接口是Queue的子接口,但它的主要用途不是作为容器,而是作为线程同步的工具。BlockingQueue具有一个特征:当生产者线程试图向BlockingQueue中放入元素时,如果该队列已满,则该线程被阻塞;当消费者线程试图从BlockingQueue中取出元素时,如果该队列已空,则该线程被阻塞。BlockingQueue提供如下两个支持阻塞的方法:void

2012-09-20 01:18:58 781

原创 Java多线程 类库中的构件(一)

1.CountDownLatch  同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数初始化CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请考虑使

2012-09-19 22:56:27 845

原创 Java多线程(二)

1.多线程的状态转换        当线程处于就绪、运行、阻塞这三种的状态之一时,调用isAlive()方法将返回true;    sleep()方法、yield()方法调用不会释放所占用的对象锁,wait()方法调用会释放锁,被唤醒后需要重新获取锁才能转到就绪状态;    sleep()方法、join()方法和wait()方法阻塞时,若当前线程被中断,则抛出Interrupted

2012-09-19 17:05:56 694

原创 Java多线程

1.Runnable接口与Callable接口的区别    Runnable接口中的方法签名为:public void run();该方法不能声明抛出受检查的异常,但在方法体内可以捕获并处理异常;    Callable接口中的方法签名:public V call() throws Exception;该方法能够抛出受检查的异常,能够返回一个V类型的值;    实现这两个接口的对象都可

2012-09-19 00:10:57 912

原创 JVM 垃圾回收算法

1.根搜索算法    JVM使用根搜索算法判断一个对象是否可以回收,而不是使用所谓的“引用计数”算法。引用计数算法给每个对象添加一个引用计数器,每当有一个地方引用到该对象,则计数值加1;当引用失效时,计数值减1;任何时候只要对应计数值为0则表明对象不可能再被使用。但Java语言中没有选用该算法来管理内存,主要原因是它很难解决对象之间相互循环引用的问题。    根搜索算法的基本思路是:通过一

2012-09-18 21:42:16 881

原创 Java I/O 序列化机制

对象序列化的目标是将对象保存到磁盘中,或者通过网络进行传输。序列化机制允许把内存中的Java对象转换成平台无关的二进制流,并在需要的时候恢复成原来的Java对象。序列化是保持对象轻量级持久的方式。为了让某个类是可序列化的,该类必须实现以下的两个接口之一:Serializable以及Externalizable。下面分别介绍这两个接口以及对象序列化的相关内容。1.Serializable接口

2012-09-18 19:47:34 922

原创 Java I/O的缓冲器细节

1.Buffer的属性    每个Buffer都有以下的属性:   capacity :容量;表示这个Buffer最多能放多少数据。capacity一般在buffer被创建的时候指定。    limit:界限;在Buffer上进行的读写操作都不能越过这个下标。当写数据到buffer中时,limit一般和capacity相等,当读数据时,limit代表buffer中有效数据的长度

2012-09-16 23:54:45 2544

原创 Java解惑(一)

1.取余操作    当取余操作返回一个非零的结果时,它与左操作数具有相同的正负符号。Java中取余操作的操作数可以是浮点数类型,C中不允许! -3%2=-1; 3%-2=1;2.浮点型数据精确表示 System.out.println(2.00 -1.10);//0.8999999999999999     上面的计算出的结果不是 0.9,而是一连串的小数

2012-09-13 09:03:27 710

原创 Java基础知识整理之异常篇

直接上代码:class ExceptionA extends Exception{ //继承自Exception类,为受检查的异常}class ExceptionB extends RuntimeException{ //继承自RuntimeException,为不受检查的异常,又称为运行时异常}class ExceptionC extends Exception{ //继

2012-08-26 13:03:03 1034 1

原创 Java基础知识整理

1.基本类型    Java中的基本类型种类,大小以及对应的包装类如下表所示:基本类型大小最小值最大值包装器类型boolean-------------Booleanchar16bit\u0000\uffffCharacterbyte8bit-128+127Byte

2012-08-24 17:23:19 713

原创 Android移动存储方案

在Android系统中提供了多种存储技术,下面分别作简要的介绍。1.最简单的存储方式SharedPreferences    SharedPreferences可以将数据保存在应用软件的私有存储区,具体位置是在/data/data//shared_prefs目录中。SharedPreferences处理的是一个个key-value的键值对。使用SharedPreferences保存key-

2012-08-22 15:51:41 957

原创 对象与内存控制

1.Class文件    Java class文件是对Java程序二进制文件格式的精确定义,每一个java class文件都对一个类或者一个接口作出了全面的描述。当每一次使用类时,JVM会检查对应的class文件是否已经加载,如果未加载,则需要通过类加载子系统来加载。类加载的过程如下:    (1)装载-----查找并装载类型的二进制数据,即读取.class文件。    (2)连接--

2012-08-22 00:38:09 587

转载 Properties类

包:java.util       public class Propertities extends Hashtable    Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。以下是常用的方法:    public Properties():创建一个无默认值的空属性列表。    public

2012-08-20 23:31:29 1668

原创 装饰器模式(Decorator)

1.认识装饰器模式    装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类这种方式并不可取。在面向对象的设计中,而我们也应该尽量使用对象组合,而不是对象继承来扩展和复用功能。装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的功能。装

2012-08-19 23:16:40 42578 8

转载 Java IO类图

2012-08-19 00:29:17 1398

原创 Java泛型的类型擦除

一、泛型简介    所谓的泛型,即将类型参数化。主要思想是将算法和数据结构完全分离开,使得一次定义的算法能够提供多种数据结构使用,从而实现高度可重用的开发。在Java中,可以定义泛型类,泛型接口以及泛型方法。     C++和Java都提供了对泛型的支持,但它们各自处理泛型的方式却截然不同。C++的编译器使用Code Specialization的方式——在实例化一个泛型类或泛型方法时都产

2012-08-17 00:30:39 2231

原创 ThreadLocal变量

ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。    ThreadLocal类接口包含以下四个方法:(新版本的

2012-08-14 22:46:52 816

原创 JAVA虚拟机

1.Java虚拟机的生命周期    每个Java程序都运行于某个具体的Java虚拟机实现的实例上。当启动一个Java程序时,一个虚拟机实例就诞生了。当该程序关闭时,虚拟机实例也随之消亡。如果在同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。    每个虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。这个main()方法必须是public,stat

2012-08-10 11:01:54 615

原创 Java数组

1.Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的。2.Java数组的初始化有以下两种方式:    静态初始化:由程序员显式指定每个数组元素的初始值,系统自动决定数组的长度。                  String[] names = new String[]{"ZhangSan","LiSi","WangWu"}; //该数组的长度为3

2012-08-08 17:02:39 426

Java设计模式

份帮助文档主要是为了向读者介绍二十三种设计模式,包括模式的描述,适用性,模式的组成部分,并附带有简单的例子和类图,目的是为了让读者了解二十三种设计模式,并能方便的查阅各种设计模式的用法及注意点。

2012-08-28

空空如也

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

TA关注的人

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