特性
Kotlin
Java
用途
静态类引用
SomeClass::class.java
SomeClass.class
获取类的 Class 对象(编译时类型)
实例类引用
instance.javaClass
instance.getClass()
获取实例的运行时类对象(可能被子类覆盖)
Kotlin 类引用
SomeClass::class(返回 KClass...
AGP 是什么Gradle 的专用插件AGP 是一个 Gradle 插件,专门为 Android 项目定制,添加了 Android 特有的构建能力(如编译资源、生成 APK/AAB 文件)
Gradle扩展
gradle plugin 是基于 Gradle 构建系统的扩展工具,是辅助 gradle 主程序构建项目的
所以,不同类型的项目有不同的插件,例如 Android 有 c...
此篇文章来自于学习 Gson 和 Kotlin Data Class 的避坑指南
本文的所有代码和结论都经过实际验证和推敲,并且加入了我自己的理解和细节,更多算是对原文作者的补充,像是一个学习笔记,原文写的非常好,但我也希望你能看看我的这篇文章,
因为我对于我底层逻辑的思考很有信心,这里有简单的介绍 学习的本质在于摸透底层逻辑
从一个 NullPointerException 开始123...
综述我其实不是一个特别厉害的代码高手,本篇只是写一下我自己学习技术的一些习惯和思考
我所说的技术,更多的是指一些抽象的技术,比如:多线程,编译原理,跨平台……
详细内容1. 了解背景什么是了解背景?了解一项技术的背景,就是它的由来,他一开始是用来干嘛的,现在是用来干嘛的,这期间有哪些改变……这是你应该优先去做的事情
为什么要了解背景?
因为了解背景有很多有优点:了解背景能让 你更全局地审视一...
本文主要参考了 跟我一起写 Makefile,甚至有一些是直接复制的,原因有三:
因为我有一些自己见解浅薄的
还有一些确实原文章作者写的很好了,但是不写出来又不完整的。
前言其实我不太知道要咋写 Makefile 这篇文章,感觉可能会变成翻译官方文档
所以…就随心写吧
从一个例子开始首先我们得知道 Makefile 的规则
1234target ... : prerequisites...
C语言编译首先我们看看文件树12345678$ tree .└── src ├── add.c ├── main.c └── minus.c2 directories, 3 files
其中 add.c 、 minus.c 、 main.c 如下:
1234// add.cint add(int a, int b) { return a + b;...
1 CRC 循环冗余校验(Cyclic Redundancy Check, CRC)1.1 原理解释CRC 的原理是模二除法。
模二运算是一种二进制算法。与四则运算相同,模二运算也包括加、减、乘、除四种运算,运算符也是相同的。
模二除法
当最后余数的位数小于除数位数时,除法停止。
当被除数的位数小于除数位数时,则商数为0,被除数就是余数。
只要被除数或部分余数的位数与除数一样多,且最高位...
练习题1. 力扣 1633. 各赛事的用户注册率 简单用户表: Users
12345678+-------------+---------+| Column Name | Type |+-------------+---------+| user_id | int || user_name | varchar |+-------------+---------+u...
传统的集合运算1. 并
2. 交
3. 差
4. 笛卡尔积
4.1 域域是一组具有相同数据类型的值的集合, 例如: { 李明, 张三 , 王五} , { 男, 女 } , { 计算机 , 旅游管理 }
4.2 笛卡尔积笛卡尔积是域上的集合运算, 允许某些域上是相同的
按域的顺序, 每个域任取一个值, 列出所有的组合, 就是笛卡尔积
姓名
性别
专业
...
背景我之前是主写 Java 、 Kotlin 的, C++ 写的少之甚少
之前写 OpenGL 的时候,就一直被 duplicate symbol 这个问题困扰
现在我终于找到了解决方法
先说结论我之所以没有明白这个问题的原因和解决方法,是因为我对于 C++ 多文件编程存在理解错误
我没有意识到 #include 的作用主要是帮助声明,而不是和 Java 、 Kotlin 之类的语言一样使用...