实用工具
IP地址检测
视频播放器
Markdown编辑器
HTML转PDF
留言板
输入关键词搜索
登录
所有分类
AI人工智能
编程开发
科学上网
山地自行车
论文
生活小技巧
收藏视频
旅游
健康与饮食
人生经验
创业
全部展开
HTTPS通信原理
「在通信刚开始的时候使用非对称加密算法,解决密钥交换的问题。后续全都使用对称加密进行通信」 握手流程 客户端带上自己产生的随机数和支持的加密套件向服务器发出 Client Hello 请求。 服务器收到请求后带上自己的随机数以及选择的加密套件返回 Server Hello 信息。在之后服务器发送自己的证书。此时服务器也可要求客户端出示证书。发送完成后发送 Server Hello
2024-07-02
暂无分类
Kotiln伴生对象
写法 class Test { companion object { } } 反编译后 public final class Test { @NotNull public static final Companion Companion = new Companion((DefaultConstructorMarker)null); public static
2024-06-30
编程开发
Kotlin扩展函数/扩展属性
扩展函数 顶层(Top-Level)扩展函数 // 文件名 Test.kt fun String.extendedFun(i: Int): String { // this代表(.)前面的对象,在这里,就是String对象 return this + i } 反编译结果 public final class TestKt { @NotNull public stati
2024-06-30
编程开发
Android Jetpack 三件套 Lifecycke ViewModel LiveData
LifeCycle 原理:Activity中添加了一个ReportFragment,在fragment的生命周期方法体内调用handleLifecycleEvent,利用反射机制找到对应的注解,执行方法 // ComponentActivity实现了LifecycleOwner接口 public interface LifecycleOwner { /** * Returns t
2024-06-27
暂无分类
Kotlin协程
创建协程环境 runBlocking 阻塞当前线程直到协程执行结束 runBlocking 函数默认在调用它的线程上运行 launch 不会阻塞当前线程,返回值类型为Job,拿不到协程体的返回值 默认情况下,GlobalScope.launch 会使用 Dispatchers.Default,它基于一个共享的后台线程池,线程数通常与 CPU 核心数有关。这意味着如果不显式指定调度器,协程将在后台线
2024-06-25
编程开发
Kotlin委托和属性委托
委托 // 定义接口 interface Printer { fun print(message: String) } // 实现接口的具体类 class ConsolePrinter : Printer { override fun print(message: String) { println("Printing message: $message")
2024-06-24
编程开发
python虚拟环境使用教程(venv/virtualenv/conda)
venv venv是Python 3.3版本以后自带的虚拟环境管理工具。可以通过以下步骤创建并激活虚拟环境: $ cd 项目根目录 $ python -m venv <ENV_DIR> # 创建虚拟环境 python -m venv <ENV_DIR> $ source <ENV_DIR>/bin/activate
2024-06-06
暂无分类
播放m3u8视频
用FFmpeg工具把视频转换成m3u8格式,转换时会生成n个ts文件。最好再用ffmpeg获取视频的第一帧作为视频封面 把m3u8文件和*.ts文件放在同一个文件夹,上传到服务器 在video.js中设置src为https://xxx.xxx/xxx.m3u8,视频就可以正常播放了 原理:播放器根据m3u8文件中的播放列表,逐个下载视频切片到本地,解析并播放。好处就是不会像播放mp4那样下载整个文
2024-05-27
暂无分类
css疑难杂症
height auto 过渡效果 把height改成max-height,width同理 .accordion-body { max-height: 0; transition: 500ms max-height ease; } .accordion:hover .accordion-body { max-height: 200px; }
2024-05-26
暂无分类
Android面试题
Activity 生命周期 20240516165938_activity_lifecycle.png // public static void main Looper.prepareMainLooper(); ActivityThread thread = new ActivityThread(); [ActivityThread].attach() [ActivityManagerServi
2024-05-16
暂无分类
1
2
3
4
5
…
10
📢
网站公告
欢迎来到这里
⚙️
实用工具
🔥
近期热门
网站更新日志
2023-09-21 09:47:19
音频知识点
3个月前
Deno教程&使用手册
2个月前
Github搜索技巧
5个月前
TypeScript中interface和type的区别
3个月前
Google黑客搜索技巧
4个月前
本站推荐:腾讯云服务器仅需2.3折 (点击直达)
用户协议
隐私政策
邮箱:
[email protected]
Build Time: 2025-04-04 21:56:02