- 博客(8)
- 收藏
- 关注
原创 面试刷题之-ArrayList的源码阅读
数组存储数据的位置和方式1、寻址操作次数链表要多一些。数组只需对 [基地址+元素大小*k] 就能找到第k个元素的地址,对其取地址就能获得该元素。链表要获得第k个元素,首先要在其第k-1个元素寻找到其next指针偏移,再将next指针作为地址获得值,这样就要从第一个元素找起,多了多步寻址操作,当数据量大且其它操作较少时,这就有差距了。该回答源自:http://tieba.baidu.com/p/50691204372、CPU缓存会把一片连续的内存空间读入,因为数组结构是连续的内存地址,所以数组全部或
2021-08-17 20:35:31
108
原创 面试刷题之-Hashmap源码阅读
HashMap底层原理是什么?HashMap在产生哈希冲突的时候,是用的头插法还是尾差法?哈希冲突有哪几种解决冲突的办法?HashMap是一个用来存储Key-Value键值对的集合,每一个键值对也叫Enery。这些键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组的每一个元素的初始值都是Null。当调用put方法的时候,这个时候我们需要利用一个哈希函数来确定Entry的插入位置index:看了很多文章,发现每篇文章说的都不一样,所以还是分版
2021-08-17 20:28:45
91
原创 自定义侧边字母导航
最近公司的电商项目要做一个地址选择的侧边导航功能,然后在网上找了找,大多数都是要第三方库,但是这么一个简单的功能,引入第三方库对于我的项目重了点,还是动手自己写吧。第一步:需求分析1.可以动态的更改首字母数据源2.可以动态调整字体大小和自己间距3.手指拖动的时候,字体颜色可以变化4.选择的当前字体可以回调出去,去显示在界面中心第二步:代码实现1.我们定义几个方法供外部传入数据源,字体大小,字体间距,我比较懒,字体大小直接写死,大家可以根据自己需求写。private Lis
2021-06-23 18:17:39
237
原创 Android自定义控件-地图之放大镜的实现
最近半年一直在忙公司的GISSDK,底层是公司的C++大佬来实现,我负责实现framework层,这不,大佬觉得C++实现的放大镜控件扩展性太差,就让我用Android自定义一个放大镜控件,方便后期扩展,要求嘛,和C++实现的要一模一样,手指触摸地图,放大触摸点的图像。1.需求分析需求:手指拖拽节点的时候,放大镜出现,放大触摸点的图像,放大镜可以随着手指移动,放大镜不允许出现移出屏幕外的操作,放大镜需要有拟物效果。实现方案:去网上找了一下,大致为:加载整个界面的Bitmap,然后手指移动,然..
2020-06-11 18:17:23
2049
6
原创 关于线程和线程池的个人理解
进程是什么?进程是资源分配的最小单位线程是什么?线程是操作系统能够运行调度的最小单位,它被包含在进程之中,是进程中的实际操作单位。线程和进程与堆栈的关系?与线程绑定的是栈,用于存储自动变量。每一个线程建立的时候,都有新建一个默认栈与之配合。堆则是与进程有关,用于存储全局性的变量。进程建立的时候,会建立默认的堆。于是每个线程都有自己的栈,然后访问共同的堆。线程和进程的...
2019-12-16 15:18:19
349
原创 ArrayList和linkedList底层实现原理以及区别?
ArrayList先说说Arraylist,Arraylist是基于动态数组实现的,所以查找速度快,但是增删操作的速度会比较慢,但是为什么会这样?我解释一下动态数组,基本就可以明白这个问题了。先说说静态数组是怎么来存储数据的,当我们使用new来创建一个数组,实际上是在堆上申请了一段连续的大内存,我们知道我们在java中创建数组的时候,会给他一个固定的大小,不能适应数据的动态增删,那么这个时...
2018-07-18 22:03:39
11796
5
原创 RecyclerView监听器的自定义
RecyclerView这个控件,也算是万能类的,比起ListView来说的话,更加表明的低耦合的概念,但是尼玛的,没有监听器,要自己手动写,没办法只能自己动手了,看代码,需要别的监听方式的可以根据的需要来按照这个思路自定义监听器代码:public class RecyclerViewOnClickListener implements RecyclerView.OnItemTouchListen...
2018-06-11 17:22:22
362
原创 android7.0调用相机拍照,相册选择以及剪切功能
最近开发新项目,头像上传问题因为一些问题浪费了一些时间,因为这个功能基本所有的APP都有,所以决定写个工具类,并说明一下我在写这个功能的时候遇到的问题,这也是我的第一篇个人博客话不多说,步入正题关键是Android7.0以后,获取Uri权限发生了变化,过去是Uri uri=Uri.fromfile(file), 现在是FileProvider.getUriForFile()先来说一些解决步骤 1...
2018-06-11 10:55:30
400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人