Java类加载阶段的一些细节 注意,本文所说的加载,是类加载这个过程的第一个阶段,而不是指的类加载的全部过程 加载(Loading) 从不同的来源将类文件(.class)转化为二进制流加载到内存中,来源可以是本地磁盘、jar包中的类、甚至可以从网络上动态下载类。然后会通过这个二进制流将数据转化成一个代表类的Class对象,并且在元空间中存储该类的信息 这里有一个容易混淆的概念,方法区,永久代以及元空间的关系。方法区只是一个规 2025-06-14 #Java
RecyclerView缓存机制 RecyclerView之所以能支撑起大量列表项显示的场景,离不开其优秀的缓存机制 多级缓存 RecyclerView采用了多级缓存机制,按照优先级排列如下: 缓存 保存位置 一级缓存 mChangedScrap、mAttachedScrap、mCachedViews 二级缓存 mViewCacheExtension 三级缓存 mRecyclerPool 一级缓存 mC 2025-06-10 移动开发 #Android
Kotlin中的"静态方法" 在Kotlin中,弱化了静态方法这个概念,使得我们想要创建静态方法变得不那么直观,并且,有些方式创建出来的"静态方法"还不是真正的静态方法,这里一一介绍 假的静态方法 使用这类方式创建出来的"静态方法"只是在调用上看起来像是静态方法,但在jvm看来并不是 单例类 object 使用object关键字标注的类会被视为单例类,Kotlin会保证这个类在运行时不会 2025-05-02 #Kotlin
数据库索引 索引的结构 大部分DBMS都会采用B+树实现索引,这种数据结构可以提高查询时的效率,假设有如下表: PID BID AMOUNT 1001 B1 5000 1005 B2 3000 1010 B3 9000 我们可以对PID建立索引(若PID为主键,数据库会为我们自动创建索引),索引呈现出来的树结构如下: 123 [1005] / \[1 2025-05-01 #数据库
Dart Isolate入门 Dart多线程 Isolate 入门 什么是Isolate Isolate就是Dart中的多线程,之所以不称为Thread,而是称为Isolate,是因为它与传统线程的概念有所区别,见如下表格 特性 Isolate Thread 内存共享 不共享内存 可以共享内存 通信方式 ReceivePort和SendPort 共享变量或synchronized关键字 数据竞争 无数据竞 2025-03-23 杂项 #Dart #Flutter
如何检测Token是否过期 除了向服务器发起请求验证token是否过期以外,一些类型的token是直接将过期时间储存在token之中的,我们可以通过这一点在客户端本地验证token是否过期。 token的构成 token其实就是三个东西以小数点分隔开的字符串 2025-02-01 杂项
SSH密钥实现无密码登录服务器 对于需要频繁登录操作的服务器,每次都要输入服务器用户的密码显得过于麻烦,幸好SSH允许我们通过密钥来实现免密登录,本以为配置起来挺简单的,但还是遇到一些坑,所以记录一下 在服务器生成密钥 首先要在你想免密登录的服务器的用户的主目录创建目录.ssh来存放密钥文件,cd到.ssh目录,然后使用以下命令生成密钥: 1ssh-keygen -t rsa 也可以不用rsa算法生成,但一定要保证待会在自己电脑 2025-01-31 杂项 #Linux
Java record关键字 从Java14开始,引入了新的关键字record,该关键字的能让我们快速地编写一些数据类(Data Class): 基本语法 1public record User(String username, String password){} 2025-01-27 杂项 #java
Minecraft Modding 教程02 添加物品 前文回顾 上一篇文章中,我们讲完了一些基本概念,包括,注册,事件系统和游戏的两个端,这一篇教程我们会添加第一个自定义物品——闪电剑,要实现的效果是,左键攻击到生物实体时,会在生物的位置降下闪电,右键一个方块时,会在方块的位置降下闪电。本篇教程与前一篇跨度比较大,没有Java基础的朋友可以直接走了。 Where to start? 本教程可能在有些读者看来略显啰嗦,但是我仍然不准备像其他教程那样,直 2025-01-22 Minecraft Modding教程 #minecraft
git忽略特定文件(gitignore) .gitignore语法规则 使用 # 来编写注释,注释的内容不会被git视为忽略规则 忽略规则以/结尾表示忽略的对象是一个目录,而不是文件 忽略规则以/开头则表示忽略的对象的路径是相对于项目的根目录,如果某个规则的开头不是/,那么这条规则的匹配路径会相对于当前.gitignore文件的位置 在忽略规则最开头加上!表示不忽略该规则指定的对象(相当于取反) 可以使用标准glob模式匹配(glob模 2025-01-22 git #git