- 博客(800)
- 收藏
- 关注
转载 HashMap怎样解决散列(hash)冲突?
相关视频:https://www.bilibili.com/video/BV1PQ4y1o7L4常用两种方法:链表法和开放寻址法1、链表法(chaining)在哈希表中,每一个桶(bucket)或者槽(slot)都会对应一条链表,所有哈希值相同的元素放到相同槽位对应的链表中。在插入的时候,我们可以通过散列函数计算出对应的散列槽位,将元素插入到对应的链表即可,时间复杂度为O(1);在查找或删除元素时,我们同样通过散列函数计算出对应的散列槽位,然后再通过遍历链表进行查找或删除,时间复杂.
2021-05-14 18:52:03 239
转载 OkHttp 拦截器的一些操作
目录URL重定向 请求体数据加密 HEAD动态添加 请求日志抓取1、URL重定向如何重定向,说白了就是更换个新的url,但是一般服务端做比较好,客户端就显得有些鸡肋。但是这个东西日常也会有用到,比如一些场景,测试生成环境的切换。业务多了,几个人混合开发的后台,每个人的代码不同意导致了baseurl还不同,这时候可以通过一个入口来修改就行,不然每个地方都去修改,接口量大的话会很麻烦。自定义一个Interceptor(TestInterceptor后面都是基于这个来讲解),直接创建个类实现I
2021-05-14 10:56:45 589
原创 数据结构十三:2 - 3树和红黑树
算法导论中对于红黑树的描述:但是一开始就接触这五点,会让人云里雾里,不利于了解这个数据结构。2 - 3树和红黑树具有等价性。先来学习2 - 3树。1、2 - 3树 2节点 3节点具体例子:...
2021-05-13 10:03:34 173 2
转载 O(1), O(n), O(logn), O(nlogn) 的区别
在描述算法复杂度时,经常用到O(1), O(n), O(logn), O(nlogn)来表示对应复杂度程度, 不过目前大家默认也通过这几个方式表示空间复杂度 。那么,O(1), O(n), O(logn), O(nlogn)就可以看作既可表示算法复杂度,也可以表示空间复杂度。大O加上()的形式,里面其实包裹的是一个函数f(),O(f()),指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。如果ax=N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x
2021-05-12 20:31:14 162
原创 Java面试题十四:HashMap
结合问题:HashMap内部的结构是怎么样的?红黑树有什么特性?红黑树的时间复杂度是多少?理想中的HashMap的时间复杂度是多少?TreeMap有用过吗?
2021-05-12 16:02:53 161
原创 LoadingObserver
public class LoadingObserver implements DefaultLifecycleObserver, Handler.Callback { /** * 显示loading弹窗 */ private static final int SHOW_LOADING = 0; /** * 隐藏loading弹窗 */ private static final int HIDE_LOADING = -1; .
2021-05-11 16:06:41 108 1
原创 Java 位运算符表示多种状态
public class BitOperationTest { /** * 默认情况:0 都显示 */ static int DEFAULT_SITUATION = 0; /** * 10 只显示FACEBOOK */ static int FACEBOOK = 1; /** * 100 只显示GOOGLE */ static int GOOGLE = 1 << 1; /.
2021-05-11 10:41:07 331
转载 Android开发 SingleLiveEvent解决LiveData或者MutableLiveData多次回调的问题
前言 只要使用过一段时间的LiveData就会发现,LiveData会经常多次回调数据。我们经常碰到的这个问题。问题复现 我们的ViewModel里是给Activity持有的并且里面有一个LiveData数据,我们A_Fragment现在获得Activity的ViewModel并且注册LiveData数据成为观察者,这个时候我们setValue()就会让前台的A_Fragment得到一次LiveData数据,接下来操作 A_Fragment 启动 B_Fragment,在返回到A_Fra..
2021-05-11 09:10:59 2772
原创 使用gradle命令打包并进行分析
1、使用gradle命令2、点击后,自动构建发布包,用时较长如此,说明包已经打包成功了。3、在Android Studio中直接打开apk文件,进行分析打开后:如图,便可以进行混淆包名分析了。...
2021-05-10 17:41:58 1072
原创 JsonUtils
package com.platform.usercenter.utils;import com.google.gson.Gson;import com.platform.usercenter.tools.Preconditions;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * <p>Title: JsonUtils</p> * <p>D.
2021-05-10 17:41:44 141
原创 RtlUtil
import android.text.BidiFormatter;import android.text.TextUtils;import android.view.View;import java.util.Locale;public class RtlUtil { public static String getRtlShowName(String name) { String rtlShowName = name; boolean isRtl.
2021-05-10 17:41:18 100
转载 Android View的绘制流程
View的绘制和事件处理是两个重要的主题,上一篇《图解 Android事件分发机制》已经把事件的分发机制讲得比较详细了,这一篇是针对View的绘制,View的绘制如果你有所了解,基本分为measure、layout、draw 过程,其中比较难理解就是measure过程,所以本篇文章大幅笔地分析measure过程,相对讲得比较详细,文章也比较长,如果你对View的绘制还不是很懂,对measure过程掌握得不是很深刻,那么耐心点,看完这篇文章,相信你会有所收获的。1、Measure过程#对于测量我们来说
2021-05-06 09:29:06 106
原创 Fragment使用(下)
相关资料相关视频:Fragment应用下1、Fragment与Activity间的通信2、Fragment与Fragment间的通信3、ListFragment的应用4、DialogFragment的应用
2021-04-26 16:42:52 158 1
转载 Java面试题十二:Java内存模型
前言Java开发人员并不需要像C/C++开发人员,需要时刻注意内存的分配和释放,而是全权交给虚拟机(JVM)去管理,自然关于内存管理或是内存的模型、结构对Java开发来说就是一个“黑箱”。两眼一抹黑似乎也不影响写Java的代码。但我也说过,了解一些内部的机制或者是自己认为不重要的东西,也许会很有帮助。最简单的,我们也应该了解Java的堆和栈。而我们所谓的内存管理,基本上指对堆内存的管理,那堆内存在JVM的内存结构中的那个位置呢?什么是JVM内存Java源代码文件(.java)会被Java
2021-04-20 16:48:35 2286
转载 OkHttp 3.14.10源码分析(3)- Dispatcher - 线程资源管理和分配
Dispatcher功能是什么?java doc:Policy on when async requests are executed.Each dispatcher uses an ExecutorService to run calls internally. If you supply your own executor, it should be able to run the configured maximum number of calls concurrently.简单翻译就
2021-04-18 19:35:22 368
转载 OkHttp 3.14.10源码分析(2)- OkHttpClient - OkHttp的“ApplicationContext”
前言在上一篇文章《OkHttp总体框架介绍》中,我简单的介绍了一下我对OkHttp总体架构设计的一个理解,在文章中,我对OkHttp的各个层次和各个关键的类都做了一个简单的介绍。那这一章节开始,我就开始从更加详细的角度去分析这些关键类的源码,那首当其冲的就是OkHttpClient。OkHttpClient可以看作是OKHTTP的一个全局应用上下文,在一个应用中往往只会创建一个单例。它主要有两个功能可配置、存储和获取一些全局的属性配置,比如超时时间、自定义的CookieJar实现、自定义的Int
2021-04-18 19:16:25 167
转载 OkHttp 3.14.10源码分析(1)- 总体框架介绍
OkHttp源码版本:OkHttp-3.14.10OkHttp总体框架介绍对于OkHttp整体框架的介绍,网上的文章有很多,同时也配有一些图解(当然很多都是一样的就是了),总体上我和大家的理解也是相近的。但是呢,我觉得还不够具体也不够完善,因为我想知道,如果我自己要实现一个HttpClient到底要做到什么程度?所以我希望能更加详细地去理解OKHttp的设计和实现。下面这幅是我自己描绘的OkHttp框架层次图(图比较大可能需要鼠标左键图片才能看清楚):下面先来简单介绍一下OkHtt.
2021-04-18 18:56:26 198
原创 OkHttp的主要工作流程
相关文章:okhttp的主要工作流程以及源码的解析什么是OkHttp简单来说 OkHttp 就是一个客户端用来发送 HTTP 消息并对服务器的响应做出处理的应用层框架。现在安卓客户端的网络请求框架基本被okhttp一统天下,那么它有什么优势呢?易使用、易扩展。 支持 HTTP/2 协议,允许对同一主机的所有请求共用同一个 socket 连接。 如果 HTTP/2 不可用, 使用连接池复用减少请求延迟。 支持 GZIP,减小了下载大小。 支持缓存处理,可以避免重复请求。 如果你的
2021-04-18 18:15:40 250
原创 BroadcastReceiver官方概览
相关文档:https://developer.android.google.cn/guide/components/broadcasts(谷歌官方文档)前言Android 应用与 Android 系统和其他 Android 应用之间可以相互收发广播消息,这与发布-订阅设计模式相似。这些广播会在所关注的事件发生时发送。举例来说,Android 系统会在发生各种系统事件时发送广播,例如系统启动或设备开始充电时。再比如,应用可以发送自定义广播来通知其他应用它们可能感兴趣的事件(例如,一些新数据已下载.
2021-04-13 16:27:16 116
原创 android studio Gradle命令行
Windows环境:gradlew -v 版本号gradlew clean 清除9GAG/app目录下的build文件夹gradlew build 检查依赖并编译打包这里注意的是 gradlew build 命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,该怎么办呢,下面介绍一个很有用的命令assemble, 如:gradlew assembleDebug 或者 gradlew aD, 编译并打 Debug 包gradlew assem.
2020-12-24 10:46:21 360
原创 使用Gradle查看Android项目中库的依赖关系
1、打印依赖树选择Gradle工具栏>找到对应module> Tasks> help>双击dependencies2、结果------------------------------------------------------------Project :app------------------------------------------------------------ compile - Classpath for compiling...
2020-12-09 19:32:31 672
原创 使用WebView加载网页
1、权限internet2、代码:WebView webView = findViewById(R.id.webView);//让WebView支持JavaScript脚本webView.getSettings().setJavaScriptEnabled(true);//在WebView上显示网页webView.setWebViewClient(new WebViewClient());webView.loadUrl("https://www.baidu.com");...
2020-12-07 16:52:27 283
原创 AndroidStudio Cause: unable to find valid certification path to requested target
今天,AndroidStudio升级到了4.1.1,结果新建的项目无法运行,报错如下:关键信息:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target找到了这篇文章:关于An.
2020-11-22 16:50:11 1438 1
原创 android studio 教你修改Maven仓库地址为国内镜像
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven{ url 'https://maven.aliyun.com/reposito...
2020-11-22 16:33:38 1880
原创 泛型牛刀小试之一
1、案例一:通过key获取json的值。1.1、未使用泛型boolean isHeyTapToZhcn = ConfigManagerUtil.getHeyTapToZhcnValue(ConstantsValue.ConfigStr.HEYTAP_TO_ZH_CN); /** * <p>Title: ConfigManagerUtil</p> * <p>Description: 用于获取全局配置信息</p
2020-09-01 21:18:42 125
原创 Kotlin和RecyclerView
1、Kotlin下,RecyclerView设置垂直布局,如下图:代码:class ModuleFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.fragm
2020-07-22 15:39:39 302
原创 Android中占位符的使用
0、相关文章android string.xml中使用占位符1、正文Android的占位符分为3种,为%s、%d、%f。中间以n代表着第几个,$是结束符,完整的使用的是%4$s,代表着第4个占位字符%s:字符串类型%d:整数类型%f:浮点数类型String.format(str,占位符对应文案,占位符对应文案,占位符对应文案);有多少个占位符就对应多少个参数1.1、案例一在strings.xml中写入<string name="string_test_1">
2020-07-08 15:45:10 2505
原创 DataBinding简解
0、相关文章:文章1:Android从零开始搭建MVVM架构(1)————DataBinding文章2:Android之DataBinding详解1、DataBinding的优劣势1.1、优势DataBinding 出现以前,我们在实现 UI 界面时,不可避免的编写大量的毫无营养的代码:比如 View.findViewById();比如各种更新 View 属性的 setter:setText(),setVisibility(),setEnabled() 或者 setOnClickList
2020-07-02 20:00:22 975
转载 Permission Denial: INTERACT_ACROSS_USERS_FULL or INTERACT_ACROSS_USERS
Permission Denial: INTERACT_ACROSS_USERS_FULL or INTERACT_ACROSS_USERS
2020-06-30 15:23:42 2164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人