摘要:
android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次被googler的设计震撼了,特与大家分享。android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类。下面一一介绍:线程的魔法师 LooperL 阅读全文
posted @ 2014-04-13 01:57
brave-sailor
阅读(247)
评论(0)
推荐(0)
摘要:
我们在Java程序中使用日志功能(JDK Log或者Log4J)的时候,会发现Log系统会自动帮我们打印出丰富的信息,格式一般如下:为了免去解析StackTrace字符串的麻烦,JDK1.4引入了一个新的类,StackTraceElement。 一、问题的引入 我们在Java程序中使用日志功能(JDK Log或者Log4J)的时候,会发现Log系统会自动帮我们打印出丰富的信息,格式一般如下: [运行时间] [当前类名] [方法名] INFO: [用户信息] 具体例子如Tomcat启动信息: Jul 9, 2004 11:22:41 AM org.Apache.coyote.http... 阅读全文
posted @ 2014-04-13 01:46
brave-sailor
阅读(10973)
评论(0)
推荐(0)
摘要:
Java中的守护线程 & 非守护线程守护线程 (Daemon Thread)非守护线程,又称用户线程(User Thread)用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。守护线程最典型的应用就是 GC (垃圾回收器)守护线程通常是由虚拟机自行创建使用,不过通过编码同样可以创建守护线程,而且 very easy:Thread daemonTread = new Thread(); // 设定 daemonThread 为 阅读全文
posted @ 2014-04-13 01:31
brave-sailor
阅读(500)
评论(0)
推荐(0)