通过普通类实现枚举

平时开发过程中,我们在接受某个参数的时候,该参数是一个对象,并且只能是固定的某几个对象,假如我们定义了一个类Color,我们程序中只有两种Color,WHITE和BLACK,这种情况下我们可能首先想到的是通过关键字enum定义一个枚举类,今天我们不通过enum关键字来实现这种效果。 首先,C...

2019-05-19 16:18:44

阅读数 2

评论数 0

Integer对象的创建方式以及区别

本文主要探讨以下三种方式生成一个Integer对象的区别 1.Integer num= 130; 2.Integer num = new Integer(12); 3.Integer num = Integer.valueOf(12); 方式1:直接将一个int赋值给一个Intege...

2019-05-19 16:07:10

阅读数 9

评论数 0

Android基础之编译打包签名流程

Android编译打包的步骤如下:         1.生成R.java文件         2.将aidl文件生成java文件         3.将java文件编译成class文件         4.将class文件打包成classes.dex文件         5.打包资源文件(res、...

2018-09-20 14:30:56

阅读数 114

评论数 0

Java算法之求二叉树的所有路径

如题,本文主要分享的是如何遍历二叉树所有的叶子节点到根节点的路径,遍历出路径之后自然可以进行查找最长路径和最短路径,接下来我们以一棵二叉树作为案例进行分享 按照上面这个二叉树,我们遍历出来的路径应该有5条(有几个叶子节点就有几条),它们分别是(1,2,4,7) , (1,2,4,8,9)...

2018-09-11 11:31:42

阅读数 1228

评论数 0

线程间通信之CountDownLatch

    之前看一个开源项目,里面用到了CountDownLatch,当时莫名其妙,不知道这个东西是干嘛的,后来查阅源码才知道这个东西这么好用,那么CountDownLatch是干嘛的呢,简单来说就是一个同步辅助工具类,使用它可以实现在某些线程执行完毕之后再执行另外一些线程,即某些线程执行的时候另外...

2018-09-02 22:48:50

阅读数 50

评论数 0

自定义View之圆角View

    最近项目里面遇到了需要实现圆角控件的需求,网上百度发现并没有找到一个特别简单的方法,大都是通过Paint.setXfermode来实现的,如果只想快速实现效果,直接点击https://github.com/ShadowWalkerGIT/RoundView 那么Paint.setXferm...

2018-09-01 23:42:50

阅读数 513

评论数 2

Android 自定义View之getLeft() / getX() / getRawX()的区别

    在自定义View的时候,如果涉及到滑动改变控件的位置或者手动设置控件的位置,那么必然会接触到getLeft()  getX() getRawX()这三个方法,那么这3个方法有什么区别呢。我们先看一张图 我们再看看View.java源码注释   /** * Left po...

2018-08-26 19:26:44

阅读数 459

评论数 0

Glide--解析

    Glide相信大家并不陌生,我项目里面用的也是Glide,但是一直在用,一直也听别人说它好,但是具体哪儿好呢?今天我就来跟大家分享一下Glide的优点。     作为一个图片框架,最核心的就是其缓存机制,这里我们就来分析一下Glide的缓存机制。Glide采用的是二级缓存:        ...

2018-08-20 23:12:49

阅读数 85

评论数 0

AndroidVideoCache解析

前言        之前做短视频项目,需求是需要视频缓存功能,我也觉得比较合理,毕竟一个视频看完之后重复观看的时候还需要从网上加载是很不友好的事情,一方面耗费用户的流量,另一方面直接从本地播放要更流畅,特别是在seek的时候。在github上看到了AndroidVideoCache,使用起来非常方...

2018-08-08 19:50:28

阅读数 1501

评论数 3

数据结构之LinkedHashMap

    Map:Map是一个接口,它定义了一些规则,即get和put操作。Map用于保存具有映射关系的数据,因此Map集合中存的是键值对,并且key不能重复     HashMap:HashMap是Map接口的一个实现类。HashMap提供所有可选的映射操作,并且允许存null键和null值,它不...

2018-05-10 11:15:24

阅读数 399

评论数 0

垃圾回收算法

常用的垃圾回收算法    1.Mark-Sweep(标记-清除算法)    标记-清除算法和它的名字一样,算法分为标记和清除两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收被标记的对象。    特点:1)标记-清除算法不会进行对象的移动,直接回收不存活的对象,因而会造成内存碎片    ...

2018-05-03 17:11:00

阅读数 57

评论数 0

下载工具类(带缓存)

    前言:由于项目里面经常需要用到下载,所以封装了一个下载工具类。    实现方案:1.下载之前查找本地有没有缓存记录                     2.如果有缓存记录,那么判断缓存文件是否存在,如果存在,直接回调下载结束,否则从网络下载                     3....

2018-04-17 17:35:56

阅读数 129

评论数 0

设计模式之适配器模式

    适配器模式:适配器模式也称包装样式或者包装,通常用于现有接口无法满足用户需求的情况,它使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。比如说我们经常做的JavaBean的转换,又或者生活中的电源适配器,转接头等    适配器模式的宗旨:保留现有类所提供的服务,向客户提供接口,以满...

2018-04-15 01:16:18

阅读数 77

评论数 0

Android性能优化

    前言:还记得之前做一个app,服务器在新加坡,国内访问新加坡的网速很慢,再加上测试机又是东南亚的低端机,导致开发的时候经常遇到app卡死的情况,因而开始重视Android性能优化,个人觉得Android性能优化主要有以下几方面:网络优化、内存优化、布局优化、线程控制、精简app大小,下面就...

2018-04-12 23:02:04

阅读数 54

评论数 0

保存文件到本地相册更新相册后删除该文件相册仍然有该文件缩略图的问题

    1.问题:最近做一个保存视频到本地功能,起初视频保存到本地后,相册数据库没有刷新,导致相册里面找不到该视频,这个通过MedisScannerConnection解决,链接https://blog.csdn.net/zhqw_csdn/article/details/79882745 后来,...

2018-04-12 16:26:46

阅读数 399

评论数 0

使用LeakCanary进行内存溢出检测

    1.问题:平时由于工期比较紧,写代码的时候可能想的不是那么周全,大多情况下追求的是功能是否实现,却忽略了性能问题,比如说算法、数据结构、内存消耗等,今天主要分享内存泄漏的分析与解决方案       内存泄漏:所谓内存泄漏就是指本该回收的内存还驻留在内存中           1.1 And...

2018-04-11 18:06:27

阅读数 267

评论数 0

Android视频录制,保存图片,视频到本地后本地相册或者视频库里面没有的解决方案

   1 问题:最近要做一个将服务器视频保存到本地的功能,将视频保存到本地后发现本地相册里面并没有更新该视频,纠其原因是系统的媒体数据库并没有实时的更新   2 解决方案:利用MediaScannerConnection主动去扫描扫描媒体数据库            步骤:1.在Activity ...

2018-04-10 16:18:14

阅读数 1885

评论数 1

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