<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[奔跑的乌龟的专栏]]></title><description><![CDATA[不积跬步，无以成千里。]]></description><link>https://blog.youkuaiyun.com/WHT_LOVE</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WHT_LOVE]]></copyright><item><title><![CDATA[synchronized(object)中object作用，线程]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/39157173</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/39157173</guid><author>WHT_LOVE</author><pubDate>Tue, 09 Sep 2014 15:56:53 +0800</pubDate><description><![CDATA[synchronized(object){...}中object起什么作用?
object是监视器要监视的对象.当一个对象被监视器监视的时候,同一时刻只能有一个线程
访问它,其它要访问它的线程必须在等待队列中等待.

synchronized,未修饰的

结果：
输出的数字交错在一起。说明不是同步的，两个方法在不同的线程中是异步调用的。

 


Java代码  

]]></description><category></category></item><item><title><![CDATA[AsyncTask]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/38233163</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/38233163</guid><author>WHT_LOVE</author><pubDate>Mon, 28 Jul 2014 17:06:26 +0800</pubDate><description><![CDATA[在Android中实现异步任务机制有两种方式，Handler和AsyncTask。

Handler模式需要为每一个任务创建一个新的线程，任务完成后通过Handler实例向UI线程发送消息，完成界面的更新，这种方式对于整个过程的控制比较精细，但也是有缺点的，例如代码相对臃肿，在多个任务同时执行时，不易对线程进行精确的控制。关于Handler的相关知识，前面也有所介绍，不清楚的朋友们可以参照一下]]></description><category></category></item><item><title><![CDATA[android 操作命令]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/22199379</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/22199379</guid><author>WHT_LOVE</author><pubDate>Wed, 26 Mar 2014 18:04:19 +0800</pubDate><description><![CDATA[ADB (Android Debug Bridge)
说明：下面一些命令需要有root权限才能执行成功
快速启动dos窗口执行adb：
1. adb.exe所在路径添加到系统环境变量中
2. 配置快捷键启动dos
进入C:\WINDOWS\system32目录下，找到cmd.exe.
右击菜单 "发送到" -> 桌面快捷方式。
在桌面上右击"快捷方式 到 cmd.exe" -> "属性" -> "]]></description><category></category></item><item><title><![CDATA[Android:用Handler实现异步处理功能]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14525517</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14525517</guid><author>WHT_LOVE</author><pubDate>Fri, 08 Nov 2013 18:14:25 +0800</pubDate><description><![CDATA[一.一个问题

有这样一个问题值得我们思考，若把一些类似于下载的功能（既耗时且不一定有结果）写在Activity(主线程)里，会导致Activity阻塞，长时间无响应，直至页面假死(如果5秒钟还没有完成的话，会收到Android系统的一个错误提示 "强制关闭")。因此，我们需要把这些耗时的操作放在单独的子线程中操作。这就是Handler的使命。Handler提供异步处理的功能，发送和接收不是同]]></description><category></category></item><item><title><![CDATA[java中的修饰符static与静态方法及final的用法]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14519819</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14519819</guid><author>WHT_LOVE</author><pubDate>Fri, 08 Nov 2013 11:55:58 +0800</pubDate><description><![CDATA[一、static
  修饰属性，方法，代码块
1、静态方法：
   使这个方法成为整个类所公有的方法，可以用   类名.方法名  直接访问   
   
   注意：static修饰的方法，不能直接访问（可以通过组合方式访问）本类中的非静态(static)成员（包括方法和属性）
         本类的非静态（static）方法可以访问本类的静态成员（包括方法和属性），可以调用静态方法]]></description><category></category></item><item><title><![CDATA[android 内存优化详解]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14110507</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14110507</guid><author>WHT_LOVE</author><pubDate>Sun, 03 Nov 2013 22:27:29 +0800</pubDate><description><![CDATA[android因其系统的特殊性,安装的软件默认都安装到内存中,所以随着用户安装的软件越来越多,可供运行的程序使用的内存越来越小,这就要求我们在开发android程序时,尽可能的少占用内存。根据我个人的开发经验总结了如下几点优化内存的方法:


创建或其他方式获得的对象如不再使用,则主动将其置为null。
尽量在程序中少使用对图片的放大或缩小或翻转.在对图片进行操作时占用的内存可能比图片本身]]></description><category></category></item><item><title><![CDATA[Java 容器 List Set Map ArrayList HashMap 的区别]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14056329</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14056329</guid><author>WHT_LOVE</author><pubDate>Sat, 02 Nov 2013 16:16:55 +0800</pubDate><description><![CDATA[ArrayList 和Vector是采用数组方式存储数据，此数组元素数大于实际存储的数据以便增加和插入元素，都允许直接序号索引元素，但是插入数据要设计到数组元素移动等内存操作，所以索引数据快插入数据慢，Vector由于使用了synchronized方法（线程安全）所以性能上比ArrayList要差，LinkedList使用双向链表实现存储，按序号索引数据需要进行向前或向后遍历，但是插入数据时只需要]]></description><category></category></item><item><title><![CDATA[Java 引用]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14005231</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/14005231</guid><author>WHT_LOVE</author><pubDate>Fri, 01 Nov 2013 18:13:50 +0800</pubDate><description><![CDATA[本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。

1．对象的强、软、弱和虚引用
   在JDK 1.2以前的版本中，若一个对象不被任何变量引用，那么程序就无法再使用这个对象。也就是说，只有对象处于可触及（reachable）状态，程序才能使用它。从JDK 1.2版本开始，把对象的引用分为4种级别，从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为：强引用、]]></description><category></category></item><item><title><![CDATA[Java 类加载机制]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/13998165</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/13998165</guid><author>WHT_LOVE</author><pubDate>Fri, 01 Nov 2013 11:30:41 +0800</pubDate><description><![CDATA[类加载是Java程序运行的第一步，研究类的加载有助于了解JVM执行过程，并指导开发者采取更有效的措施配合程序执行。

研究类加载机制的第二个目的是让程序能动态的控制类加载，比如热部署等，提高程序的灵活性和适应性。

一、简单过程

Java程序运行的场所是内存，当在命令行下执行：

java HelloWorld

命令的时候，JVM会将HelloWorld.class加载到内]]></description><category></category></item><item><title><![CDATA[面试题]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/13002993</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/13002993</guid><author>WHT_LOVE</author><pubDate>Thu, 24 Oct 2013 18:10:13 +0800</pubDate><description><![CDATA[昨天看到了一个面试题 ：  打靶10次，获得80环的概率  。  编程实现，  没有思路，求解]]></description><category></category></item><item><title><![CDATA[Guava 之eventbus 二]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/11011973</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/11011973</guid><author>WHT_LOVE</author><pubDate>Tue, 03 Sep 2013 18:13:30 +0800</pubDate><description><![CDATA[EventBus是Guava的事件处理机制，是设计模式中的观察者模式（生产/消费者编程模型）的优雅实现。对于事件监听和发布订阅模式，EventBus是一个非常优雅和简单解决方案，我们不用创建复杂的类和接口层次结构。

　　Observer模式是比较常用的设计模式之一，虽然有时候在具体代码里，它不一定叫这个名字，比如改头换面叫个Listener，但模式就是这个模式。手工实现一个Observer也]]></description><category></category></item><item><title><![CDATA[Guava之eventbus]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/11011623</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/11011623</guid><author>WHT_LOVE</author><pubDate>Tue, 03 Sep 2013 18:07:06 +0800</pubDate><description><![CDATA[Guava简介

如同boost之于c++，guava也几乎成为了java编程中不可或缺的一部分。guava中涵盖了很多有意思的东西，比如在java中使用函数式编程；新的数据结构，如bimap等等。总之，guava让写java程序成为一件更美好的事情。guava中还有很多很多有意思的东西，可以去guava的官方网站上探个究竟。guava

本文试图通过分析guava的eventbus的源代]]></description><category></category></item><item><title><![CDATA[Android之Service与IntentService的比较 .]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/10750461</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/10750461</guid><author>WHT_LOVE</author><pubDate>Sat, 31 Aug 2013 17:19:23 +0800</pubDate><description><![CDATA[不知道大家有没有和我一样，以前做项目或者练习的时候一直都是用Service来处理后台耗时操作，却很少注意到还有个IntentService，前段时间准备面试的时候看到了一篇关于IntentService的解释，发现了它相对于Service来说有很多更加方便之处，今天在这里稍微来总结下我的心得。
    首先IntentService是继承自Service的，那我们先看看Service的官方介绍，]]></description><category></category></item><item><title><![CDATA[android中连续点击，Toast短暂弹出]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/10627497</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/10627497</guid><author>WHT_LOVE</author><pubDate>Fri, 30 Aug 2013 18:08:49 +0800</pubDate><description><![CDATA[前段时间做项目，有个搜索功能，点击搜索按钮时，如果为空会有Toast提示， 但是测试人员疯狂的连续点击按钮，Toast提示框长时间存在后才失去（点击几次，就会出现几次），唉 ！ 测试的伤不起啊！！！
  现在说下怎样在连续点击情况下：Toast能够快速的失去


public class ToastUtil {
  
    private static Handler handler]]></description><category></category></item><item><title><![CDATA[基于XMPP协议的即时聊天工具之发送文件]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/10235331</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/10235331</guid><author>WHT_LOVE</author><pubDate>Fri, 23 Aug 2013 17:58:00 +0800</pubDate><description><![CDATA[最初还是在学校时接触的XMPP， 当时是做的一个简单的基于XMPP协议的聊天工具，功能不是很全，只是实现了收、发消息、表情功能。
最近不是很忙，就补充了一些功能， 这里说一下文件的发送。
     public void sendFile(File file){

    // 这段代码有些人说必须带，我试了试，在我的工程中发文件是带不带没啥区别
//     ServiceDiscov]]></description><category></category></item><item><title><![CDATA[关于ListView滑动混乱问题]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/10149337</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/10149337</guid><author>WHT_LOVE</author><pubDate>Wed, 21 Aug 2013 16:19:02 +0800</pubDate><description><![CDATA[在说listView混乱问题前，先说下listView的工作原理。以前只是知道ListView+convertView+ViewHolder 可以大大的提高效率，但是不明白为什么会是这样。
  ListView根据每一条Item会要求adapter返回一个视图（getView），在listView开始绘制的时候，会先调用getCount()函数得到listView的长度，根据长度绘制每一条ite]]></description><category></category></item><item><title><![CDATA[加载大图片，内存溢出问题]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/9840039</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/9840039</guid><author>WHT_LOVE</author><pubDate>Thu, 08 Aug 2013 18:16:56 +0800</pubDate><description><![CDATA[尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图，
因为这些函数在完成decode后，最终都是通过java层的createBitmap来完成的，需要消耗更多内存。

因此，改用先通过BitmapFactory.decodeStream方法，创建出一个bitmap，再将其设为ImageView的 ]]></description><category></category></item><item><title><![CDATA[android中Service与Thread 的区别]]></title><link>https://blog.youkuaiyun.com/WHT_LOVE/article/details/9421627</link><guid>https://blog.youkuaiyun.com/WHT_LOVE/article/details/9421627</guid><author>WHT_LOVE</author><pubDate>Tue, 23 Jul 2013 14:20:48 +0800</pubDate><description><![CDATA[servie是系统的组件，它由系统进程托管（servicemanager）；它们之间的通信类似于client和server，是一种轻量级的ipc通信，这种通信的载体是binder，它是在linux层交换信息的一种ipc。而thread是由本应用程序托管。

 

1). Thread：Thread 是程序执行的最小单元，它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。]]></description><category></category></item></channel></rss>