首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
后撤步三分
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
88
文章 87
沸点 1
赞
88
返回
|
搜索文章
最新
热门
聊聊二分查找与跳表
二分查找也称折半查找, 是一种效率较高的查找方法,但是使用的条件比较苛刻。下面以一个猜数字游戏为例学习二分查找的过程。 游戏的规则:1到10的数字中, A选一个数字,B去猜,B猜数字的时候,A会回答小啦、大啦或者猜对啦, B怎么做才能在最少次数里猜对呢。 B每次猜的时候是取中间…
聊聊散列表以及HashMap内部实现
散列表又叫哈希表,是根据键(Key)而直接访问在内存存储位置的数据结构。它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 在日常生活中,也有类似"散列表", 比如打篮球比赛,每个球…
聊聊数组与链表,栈与队列
数组与链表对于每一门编程语言来说都是重要的数据结构之一。数组是一段内存连续的,有序的元素序列,大小固定,初始化时需要指定可承载的元素个数; 链表是非连续、非顺序的存储结构, 数据元素的顺序是通过指针链接实现的。 开发中选择数组还是链表,这就要结合场景和它们各自优缺点. 数组的内…
聊聊算法的时间复杂度与空间复杂度
算法是一段执行的程序, 可以理解成几行代码,或者一个方法; 算法的时间复杂度是指这段代码需要消耗的时间资源;算法的空间复杂度是指这段代码需要消耗的空间资源(空间资源通常是指占用的内存)。 通常我们在讨论一个算法时会说,这个算法时间复杂度是O(), 那个O()。而这个O()、O(…
Android Jetpack组件之数据库Room详解(三)
只要数据库的数据有变化, 上面代码中onChanged就会回调,但是, 不是什么时候都回调,当activity处理onstop是不会回调,但是activity重新走onstart后,数据库有增删改还是会回调的。这里的效果有点类似安卓里的Loader, 使用过Loader的都知道…
Android Jetpack组件之数据库Room详解(二)
SQLiteOpenHelper是一个抽象类,通常自己实现数据库,需要继承SQLiteOpenHelper, 在OnCreate()里建表,在onUpgrade()处理版本迁移等。SQLiteOpenHelper是个帮助类,里面SQLiteDatabase类才是真正代表一个数据…
Android Jetpack组件之数据库Room详解(一)
Room为了SQLite提供了一个抽象层,对Android SQLite进行了封装 , 更加方便地进行数据库访问。 Database: 数据库的持有者。 从上图可以知道,应用层需要定义有哪些表; 定义数据访问对象; 定义数据库,比如说数据库名称,有哪些些表等。下面结合一些简单的…
Android Jetpack组件 - ViewModel,LiveData使用以及原理
ViewModel用于存储和管理UI相关的数据,ViewModel有自己生命周期,会根据fragment,activity的生命周期销毁。当配置发生改变时, ViewModel存储的数据还是存在的,不会被销毁。(例如旋转屏幕,旋转屏幕通常会导致activity重建) ViewM…
Android Jetpack组件之Lifecycles库详解
这个库从系统框架层去管理具有生命周期的组件,例如activity, fragment。让开发更方便地去管理自己应用里需要和activity或者fragment绑定的组件,让代码更容易维护。 也许有点抽象,举个例子说明一下,比如有个需求,需要在一个界面比较频繁更新地理位置信息。当…
Context真正的实现与Context设计模式
1. 类图 Context: 是一个抽象类。 ContextImpl: 是Context真正的实现类。 ContextWrapper: 继承Context,是一个包装类,有一个mBase的成员变量,mBase是Context类型,Context抽象方法都是由mBase实现的。子…
下一页
个人成就
文章被点赞
37
文章被阅读
22,290
掘力值
483
关注了
1
关注者
14
收藏集
0
关注标签
9
加入于
2017-08-03