自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 花式写单例之单例的六种写法

一、前言       单例模式是一种常用的设计模式,其定义是单例对象类只允许一个实例存在,实现的核心原理是构造函数私有化。使用单例可以节省内存开销,也是现实场景中的一种映射,比如一台打印机同时只能运行一个打印任务,一个公司只有一个CEO等场景。二、实现步骤2.1 构造函数私有化; 2.2 提供一个静态方法获取实例(需要注意多线程问题)。三、写法3.1 饿汉式(线程安全)public class S

2017-11-23 14:33:06 423

原创 深入理解JVM的内存结构及GC机制

一、前言       JAVA GC(Garbage Collection,垃圾回收)机制是区别C++的一个重要特征,C++需要开发者自己实现垃圾回收的逻辑,而JAVA开发者则只需要专注于业务开发,因为垃圾回收这件繁琐的事情JVM已经为我们代劳了,从这一点上来说,JAVA还是要做的比较完善一些。但这并不意味着我们不用去理解GC机制的原理,因为如果不了解其原理,可能会引发内存泄漏、频繁GC导致应用卡顿

2017-11-23 02:12:38 43779 6

原创 Dalvik VM (DVM) 与Java VM (JVM)之间的区别

前言       DVM和JVM之间的区别应该算是Android面试的常客了,也是比较深入原理性的东西,今天花了点时间整理了一下,收获良多。区别        1、DVM和JVM最核心的区别是:DVM基于寄存器的架构,而JVM基于栈的架构。基于寄存器的好处是可以更好的做提前优化从而执行速度更快,但是代码长度更长,基于栈的好处是方便移植。         2、另外一个区别是DVM允许存在多个实例运行

2017-11-21 17:35:25 607

原创 Android从上车到漂移之ButterKnife完全解析

一、前言  ButterKnife——通过注解的方式生成View字段、资源绑定和方法绑定的样板代码,是一款老司机书写UI布局的必备神器!自从有了ButterKnife,妈妈再也不用担心我findViewbyid(),find到手抽筋。二、上车  下载Android studio 插件Android ButterKnife Zelezny,一键生成模板代码。更多姿势,请参考官方文档。作为一个老司机,上

2017-07-28 17:22:16 562

原创 Android手摸手实现一个画板功能(一)——View的拖拽

一、概述  从之前项目中抽取出来的一个“画板”功能模块,就是可以在一个空白布局上,添加不同的元素,实现自由组合,暂时没想到啥好名字,姑且叫它“画板”吧。   主要实现了View的拖拽、缩放、旋转、复制、View导出图片、文本编辑、磁力连接线、上一步和下一步状态备忘等功能。该项目主要涉及的知识点:View的事件分发、手势多点触控、View坐标系、备忘录设计模式等。   由于该项目是为特定pad机型

2017-07-25 22:33:44 2456 2

原创 解决RecyclerView嵌套RecyclerView位移问题

一、概述   最近项目中用到了两个RecyclerView嵌套的布局,即RecyclerView的item也是RecyclerView,其中遇到了两个比较典型的问题:1、当item的方向是垂直方向时,父RecyclerView首次加载会出现位移;2、当item的方向是水平方向时,父RecyclerView上下滑动之后,子RecyclerView位置会还原,本文主要解决以上两个问题。我们先来瞄一眼这

2017-07-20 16:29:46 915

原创 细说equals()方法和hashCode()方法

一、前言       对于这两个方法的研究,源于一道比较经典的面试题:“x.equals(y)==true;x,y可有不同的hashcode对吗?”,其实这道题的关键在于考我们对equals()方法和hashCode()方法的理解,网上看了不少文章,有说对的,也有说不对的。在我看来对也不对,具体原因,我们下面慢慢分析。二、equals()方法       equals()方法是Object中定义的方

2017-11-24 18:03:18 291

空空如也

空空如也

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

TA关注的人

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