
Java和Android面试复习
Java部分 彻底搞懂Java线程池的工作原理 彻底搞懂Java内存模型与volatile关键字 彻底搞懂Java中的synchronized关键字 彻底搞懂Java中的ReentrantLock实现原理 彻底搞懂Java并发包中的Atomic原子类 深入理解Java线程的等待与唤醒机制(一) 深入理解Java线程的等待与唤醒机制(二) Java并发系列终...
Java部分 彻底搞懂Java线程池的工作原理 彻底搞懂Java内存模型与volatile关键字 彻底搞懂Java中的synchronized关键字 彻底搞懂Java中的ReentrantLock实现原理 彻底搞懂Java并发包中的Atomic原子类 深入理解Java线程的等待与唤醒机制(一) 深入理解Java线程的等待与唤醒机制(二) Java并发系列终...
scope: A.() -> Unit 是 Kotlin 中一种特殊的函数类型,叫做扩展函数类型,下面详细解释它的含义和使用场景。 基本概念 1. 普通函数类型回顾 在 Kotlin 里,普通的函数类型形如 (参数类型列表) -> 返回类型。例如,(Int, Int) -> Int 代表一个接收两个 Int 类型参数、返回一个 Int 类型值的函数。 2. 扩展函数类型...
“受益”于目前 Android 手机各类屏幕尺寸长短不定、宽高比例大小不一的现状,屏幕适配 依然是 Android 应用开发时绕不开的问题 我们在日常开发中使用得最多的尺寸单位应该是 dp 了,Google 也推荐开发者尽量使用 dp 作为单位值,因为系统会根据屏幕的实际情况来完成 dp 和 px 之间的对应换算,使得同个 dp 值的显示效果在不同手机屏幕上不会相差太大。但直接使用 dp ...
首先排序算法可以分为内部排序算法和外部排序算法:在内存中进行的称为内部排序算法,也就是这里所说的这十种算法;相应的,当数据量很大时无法全部拷贝到内存需要使用外存,称为外部排序算法。接下来我们可用如下表来简单概括这十种算法: 十大经典排序算法 平均时间复杂度 最好时间复杂度 最坏时间复杂度 空间复杂度 ...
1. 协程是什么 协程是一种编程思想。它并不局限于任何语言,不仅 Kotlin 中有对协程的实现,Python、Go 等语言也有。 更实际一点,协程的代码是运行在线程中的,可以在单线程中执行;也可以在多线程中执行,即支持来回切换。并且协程没有直接和操作系统关联,而是跟线程紧密关联,毕竟是要靠线程去执行。它的设计初衷就是为了解决并发问题,可以更方便地处理多线程协作的任务。 在 Kotli...
1.Lifecycle了解 到官方文档下看 Google Lifecycle,Lifecycle的作用是:生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。 我们之前开发,因为Activity 或者是 Fragment 的生命周期问题而间接引起的内存...
View绘制前相关流程概述 在Activity被实例化后调用Activity的attach方法时会实例化PhoneWindow,并通过PhoneWindow的setWindowManager方法与WindowManager关联。 Activity的onCreate方法中会通过setContentView实例化DecorView,并将Activity中的布局文件添加到DecorVi...
IdleHandler是一个位于MessageQueue中的接口,源码如下: public static interface IdleHandler { /** * Called when the message queue has run out of messages and will now * wait for more. Return true to...
HTTPS(Hypertext Transfer Protocol Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。 HTTPS: 在HTTP之下增加一个安全层TLS,来保证HTTP的加密传输 TLS是传输层加密协议,前身是SSL...
Window的添加过程概述 通过getSystemService获取WindowManagerImpl实例,通过这个实例的LayoutParams设置窗口的类型、宽高等参数。 调用WindowManagerImpl的addView方法添加View,WindowManagerImpl的addView 方法调用了WindowManagerGlobal去addView。 Windo...