8 三眼卡夫卡

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 5w+

C-Lang手写HashMap,感受散列表的魅力

1  哈希Map 今天要聊的,是一个在Java/Android面试中被问烂了的类: Hashmap.这个类如此的被看重,上至阿里 高P面试,下到 数据结构入门教材。  甚至刚上门取件的快递小哥都能跟你用背课文的语气侃侃而谈,hashmap的底层是数组加链表。 但是今天要聊的又有点不太一样。你真的知道啥是hashmap,为啥要数组加链表吗? 2    散列表 ...

2018-11-28 17:25:23

请使用arraymap代替hashmap

先说结论吧。在Android上建议使用ArrayMap代替hashmap.在一般的使用场景下,它可以在不影响读写效率的情况下,节省大约30%的内存空间。 就是想加张图,没别的意思。why?往下看:首先,我们要明白:hashmap是Java util包下的类.ArrayMap是google 在Android平台上作出优化后的类。很多人可能会觉得对ArrayMa...

2018-09-03 17:42:12

当二维码在跑步的时候,ZXing在想些什么。

我与二维码的故事,是从一张扫不出来的二维码开始的。如下图: 这是一张我们的app,无法识别的二维码 上面的这张二维码,我们的Android APP很难扫描出来。  我试了 微信、华为浏览器、ios 客户端等大厂app,不管是正着扫,歪着扫、躺着扫,跪着扫。。。。不管怎么扫基本都能一次成功。我们二维码解析使用的是ZXing。我试了demo也是一样的情况。看来如果想要解...

2018-09-03 17:41:34

Weex APP 路由方案调研

一 背景对用户端app进行weex框架更改 二 解决方案目前主流的解决方案有三种1 使用vue-router实现跳转只有一个Activity容器,页面跳转逻辑都通过 vue-router 来实现。使用weex构建整个app应用,很多阿里系的大厂,以及官方的demoweex-hackernew 都是基于这个来做。这样做业务的耦合性比较低,但是weex版本的tab bar组件效率较低。如果有技术实力做...

2018-04-11 10:35:44

【阿里面试题】BroadcastReceiver 不能执行耗时操作

原因有二: 第一  BroadcastReceiver 一般处于主线程。  耗时操作会导致 ANR 第二 BroadcastReceiver 启动时间较短。 如果一个进程里面只存在一个 br组件。并且在其中开启子线程执行耗时任务。  系统会认为该进程是优先级最低的 空进程。很容易将其杀死。 测试代码: /** * 时间:2017/12/19 14:05 * @author duqingquan...

2018-04-11 10:34:54

Recyclerview 复用之headview优化

版本:support-v7 25.3.1发现问题在对 性能优化-首页CPU占用优化 调研时发现,首页的OnCreateViewHolder存在高频次调用的情况,而常见的开源列表组件不存在此问题。遂针对此问题,对recyclerview的复用机制进行分析。缓存集合1 mChangedScrap 表示数据已经改变的ViewHolder集合2 mAttachedScrap 与RecyclerView尚未...

2018-02-23 16:01:13

程序员中国制造--2017

程序员中国制造--2017  一开始  对于杜宇来说,2017年是一个特别的年份。 在此之前,他的长达20年的学生生活,做任何选择的时,总会有家长、老师站出来告诉他该往哪走,必须往哪走。但是从今年开始,他要必须学会自己走路。   杜宇是我的表弟,小我三岁。他是一名湖南普通大专应届毕业生,专业是时下最热门的计算机。从2017年初开始,学

2017-12-17 21:33:49

使用ScheduledThreadPoolExecutor 替代 Timer

Java1.5之后提供了新的APIScheduledThreadPoolExecutor,这个组件大部分场景下是可以取代Timer的。 优点有三: 1  Timer管理延时任务的缺陷    Timer是存在一些缺陷的,因为Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,超过了两个任务的间隔时间,会发生一些缺陷:下面看例子:Timer

2017-11-28 09:42:07

Android 保活技巧

原创内容,可以参考这里:http://www.dqqdo.com/article/61 最阳光的方式。    想要避免被杀死就要知道为什么被杀死。    根据android的 low memery killer 原则进行反逻辑。    low memery killer 原则会对每个进程根据各种因素,计算一个 OMM-ADJ数值。    这个数值

2017-11-20 17:28:05

Java 生成随机数

1   java 1.0 中就存在的方法  Random优点:  最老的API,兼容旧系统,易用。缺点:  可预测,会被破解。 随着Java版本迭代,在很多场景下有更合适的方案。2   java 1.7 新增的随机类 ThreadLocalRandom根据源码的解释,这个类是依附于线程本身的。所以在多线程的情况下,其效率要优于Random。

2017-11-13 15:32:47

策略模式在Android中的应用

一 什么是策略模式设计模式是人们在解决软件开发过程中总结出来的智慧结晶。策略模式也是一种解决实际问题的技巧。在讲策略模式之前,我们先来研究一下三国时期 一个励志小军阀的故事。公元2世纪,你来到了三国乱世,作为一名割据了一个县城的初级军阀,正面对着与隔壁军阀老王的一场艰难决战。双方的作战人数都达到了上千人,而你作为军事首领,十分紧张的策划着战争的各个细节:粮草

2017-08-19 22:24:30

User's Guide Of Dagger2

dagger2 官方文档。  因为最近看了一下dagger2 感觉非常不错。原文地址:  https://google.github.io/dagger/users-guide.htmlcsdn 文章排版比较乱,也可以参看这里。http://note.youdao.com/noteshare?id=c16171f524e5a1efc8a3ddee0d2ea6f6&sub=7

2017-08-14 17:07:33

代理模式在Android中的应用

一 什么是代理模式关于 设计模式 设计模式是人们在解决软件开发过程中总结出来的智慧结晶。代理模式也是一种解决实际问题的技巧。在讲概念之前,我们来讲讲明代的首辅制度。因为首辅制度也是一种解决实际问题的技巧。我们现在来到明朝的嘉靖年间。假设你是帝国的皇帝,面对着整个大明帝国四千万户,接近两亿的人口。两万多名职业官僚。无数 边防卫戍,治安管理,经济发展,粮

2017-07-13 16:57:57

一天一天,一年一年。

一:         这两天在驾校练车,倒车入库的时候我特疑惑,问教练:"现实中存车取车,也这么操作啊,不太现实吧?"        教练的回答中闪烁着兰尼斯特般的骄傲:“那是,平时哪有这些点啊。”        “那~~~?”        “那得人车合一。”  教练一脸孤傲的如是说。                    对不起,教练,你晃到了我的眼。二

2017-03-19 10:18:56

Android优化——和讯财道内存优化实践

本文以 和讯财道 实例,介绍android studio 自带内存调试工具用法。 以及android内存优化思路和技巧。分为三个部分。1 android内存管理简述2 android studio 内存优化工具用法3 和讯财道内存优化实例

2017-03-01 13:32:41

Linux 各目录的作用

/binbin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。/boot这里存放的是启动Linux时使用的一些核心文件。/devdev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/

2016-10-08 11:42:43

花花世界,不必当真

念高中那年,我住校。睡我邻床的那哥们,叫朝阳。他的手机里经年不变的播放着两首歌。 一首是林志颖的《十七岁那年的雨季》,另外一首歌名我不记得了,只记得其中高潮部分的歌词:“我爱得多认真,你却说花花世界不必当真。”最早,不必当真的是读书。临汾是四线城市,我们学校是四线城市里的四线高中。每年的高考二本上线率极其稳定, 基本都能维持到个位数水平,就这我们学校还是我们区的

2016-09-05 17:07:58

从0开始,搭建SSM服务器框架

一 什么是SSMSSM框架,顾名思义,就是Spring+SpringMVC+mybatis。通过Spring来将各层进行整合,通过spring来管理持久层(mybatis),通过spring来管理handler。总之,spring是将各层进行整合。前些年比较流行的服务器开发框架是SSH(Struts、Spring、Hibernate) 现在因为框架过重,逐步被springmvc 和myb

2016-08-12 10:13:10

AndroidScreen 说明文档

AndroidScreen 说明文档1 说明android screen是一个基于Java 开发的工具,目的是帮助android开发者生成多屏幕适配的配置文件,减少开发难度。2 原理原理:利用 android的自动匹配机制,将相同的 数值,比如@dimen_dimen100dp. 解释为在不同设备平台上不同数值。 但是当前程序可以通过换算,可以保证,你所设置的绝对值,相对于你的效果图,和解析

2016-06-14 10:00:17

深夜睡不着

深夜睡不着,想到哪写到哪吧。一。2014年6月,当时我还在深圳。租住在深圳大学西门的荟芳园小区。那天晚上包括我在内,满满一电梯人坐电梯的时候,电梯突然出现了故障。先是电梯的门合不上了,留了一个大约二十公分的缝隙。第一次从这样的角度看到电梯井。黑洞洞里映射进来的灯光和呼呼灌进的冷风,难免让电梯里面的人有点害怕,但是还没等害怕完。突然电梯就晃了一下。咣当一声就往下掉

2015-08-10 15:33:03

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取