<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[EnjoyAndroid的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/anjoyandroid</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; anjoyandroid]]></copyright><item><title><![CDATA[细说equals（）方法和hashCode（）方法]]></title><link>https://blog.youkuaiyun.com/anjoyandroid/article/details/78627079</link><guid>https://blog.youkuaiyun.com/anjoyandroid/article/details/78627079</guid><author>anjoyandroid</author><pubDate>Fri, 24 Nov 2017 18:03:18 +0800</pubDate><description><![CDATA[一、前言       对于这两个方法的研究，源于一道比较经典的面试题：“x.equals(y)==true;x,y可有不同的hashcode对吗？”，其实这道题的关键在于考我们对equals()方法和hashCode()方法的理解，网上看了不少文章，有说对的，也有说不对的。在我看来对也不对，具体原因，我们下面慢慢分析。二、equals()方法       equals()方法是Object中定义的方]]></description><category></category></item><item><title><![CDATA[花式写单例之单例的六种写法]]></title><link>https://blog.youkuaiyun.com/anjoyandroid/article/details/78614538</link><guid>https://blog.youkuaiyun.com/anjoyandroid/article/details/78614538</guid><author>anjoyandroid</author><pubDate>Thu, 23 Nov 2017 14:33:06 +0800</pubDate><description><![CDATA[一、前言       单例模式是一种常用的设计模式，其定义是单例对象类只允许一个实例存在，实现的核心原理是构造函数私有化。使用单例可以节省内存开销，也是现实场景中的一种映射，比如一台打印机同时只能运行一个打印任务，一个公司只有一个CEO等场景。二、实现步骤2.1 构造函数私有化； 
2.2 提供一个静态方法获取实例（需要注意多线程问题）。三、写法3.1 饿汉式（线程安全）public class S]]></description><category></category></item><item><title><![CDATA[深入理解JVM的内存结构及GC机制]]></title><link>https://blog.youkuaiyun.com/anjoyandroid/article/details/78609971</link><guid>https://blog.youkuaiyun.com/anjoyandroid/article/details/78609971</guid><author>anjoyandroid</author><pubDate>Thu, 23 Nov 2017 02:12:38 +0800</pubDate><description><![CDATA[一、前言       JAVA GC（Garbage Collection，垃圾回收）机制是区别C++的一个重要特征，C++需要开发者自己实现垃圾回收的逻辑，而JAVA开发者则只需要专注于业务开发，因为垃圾回收这件繁琐的事情JVM已经为我们代劳了，从这一点上来说，JAVA还是要做的比较完善一些。但这并不意味着我们不用去理解GC机制的原理，因为如果不了解其原理，可能会引发内存泄漏、频繁GC导致应用卡顿]]></description><category></category></item><item><title><![CDATA[Dalvik VM (DVM) 与Java VM (JVM)之间的区别]]></title><link>https://blog.youkuaiyun.com/anjoyandroid/article/details/78594997</link><guid>https://blog.youkuaiyun.com/anjoyandroid/article/details/78594997</guid><author>anjoyandroid</author><pubDate>Tue, 21 Nov 2017 17:35:25 +0800</pubDate><description><![CDATA[前言       DVM和JVM之间的区别应该算是Android面试的常客了，也是比较深入原理性的东西，今天花了点时间整理了一下，收获良多。区别        1、DVM和JVM最核心的区别是：DVM基于寄存器的架构，而JVM基于栈的架构。基于寄存器的好处是可以更好的做提前优化从而执行速度更快，但是代码长度更长，基于栈的好处是方便移植。 
        2、另外一个区别是DVM允许存在多个实例运行]]></description><category></category></item><item><title><![CDATA[Android从上车到漂移之ButterKnife完全解析]]></title><link>https://blog.youkuaiyun.com/anjoyandroid/article/details/76270867</link><guid>https://blog.youkuaiyun.com/anjoyandroid/article/details/76270867</guid><author>anjoyandroid</author><pubDate>Fri, 28 Jul 2017 17:22:16 +0800</pubDate><description><![CDATA[一、前言  ButterKnife——通过注解的方式生成View字段、资源绑定和方法绑定的样板代码，是一款老司机书写UI布局的必备神器！自从有了ButterKnife,妈妈再也不用担心我findViewbyid()，find到手抽筋。二、上车  下载Android studio 插件Android ButterKnife Zelezny，一键生成模板代码。更多姿势，请参考官方文档。作为一个老司机，上]]></description><category></category></item><item><title><![CDATA[Android手摸手实现一个画板功能（一）——View的拖拽]]></title><link>https://blog.youkuaiyun.com/anjoyandroid/article/details/76099759</link><guid>https://blog.youkuaiyun.com/anjoyandroid/article/details/76099759</guid><author>anjoyandroid</author><pubDate>Tue, 25 Jul 2017 22:33:44 +0800</pubDate><description><![CDATA[一、概述  从之前项目中抽取出来的一个“画板”功能模块，就是可以在一个空白布局上，添加不同的元素，实现自由组合，暂时没想到啥好名字，姑且叫它“画板”吧。 
  主要实现了View的拖拽、缩放、旋转、复制、View导出图片、文本编辑、磁力连接线、上一步和下一步状态备忘等功能。该项目主要涉及的知识点：View的事件分发、手势多点触控、View坐标系、备忘录设计模式等。 
  由于该项目是为特定pad机型]]></description><category></category></item><item><title><![CDATA[解决RecyclerView嵌套RecyclerView位移问题]]></title><link>https://blog.youkuaiyun.com/anjoyandroid/article/details/75544381</link><guid>https://blog.youkuaiyun.com/anjoyandroid/article/details/75544381</guid><author>anjoyandroid</author><pubDate>Thu, 20 Jul 2017 16:29:46 +0800</pubDate><description><![CDATA[一、概述 
  最近项目中用到了两个RecyclerView嵌套的布局，即RecyclerView的item也是RecyclerView，其中遇到了两个比较典型的问题：1、当item的方向是垂直方向时，父RecyclerView首次加载会出现位移；2、当item的方向是水平方向时，父RecyclerView上下滑动之后，子RecyclerView位置会还原，本文主要解决以上两个问题。我们先来瞄一眼这]]></description><category></category></item></channel></rss>