java static 的用法
静态变量(类变量)
特点:可以不初始化实例就直接调用;所有实例共享同一内存空间,类加载时初始化,生命周期持续到程序结束。
示例:统计类实例数量时,可通过静态变量实现全局共享。
1234class Counter { static int count = 0; // 所有实例共享的计数器 Counter() { count++...
Retrofit 简介
Retrofit 是 Square 公司开发的一款针对 Android 和 Java 的类型安全的网络请求框架。
官网说的是:A type-safe HTTP client for Android and Java
type-safe(类型安全):一个框架类型安全指的是它会在编译期间就将类型错误,不会在运行时报类型错误。
所以他会有大量的类型检查,在编译期间
OkHt...
前言
学习 kotlin 泛型肯定离不开 java 泛型,这是显而易见的
很多大佬写过 kotlin 泛型的文章或者出过讲 kotlin 泛型的教程,我深受启发
所以,我们先学 java 泛型
Java 泛型
泛型是什么
一些前提术语
泛型:泛型是 Java 引入的一种参数化类型机制,允许在定义类、接口或方法时使用类型占位符(如 T、E 等),并在调用> 时指定具体类型,从而增强代...
特性
Kotlin
Java
用途
静态类引用
SomeClass::class.java
SomeClass.class
获取类的 Class 对象(编译时类型)
实例类引用
instance.javaClass
instance.getClass()
获取实例的运行时类对象(可能被子类覆盖)
Kotlin 类引用
SomeClass::class(返回 KClas...
AGP 是什么
Gradle 的专用插件
AGP 是一个 Gradle 插件,专门为 Android 项目定制,添加了 Android 特有的构建能力(如编译资源、生成 APK/AAB 文件)
Gradle扩展
gradle plugin 是基于 Gradle 构建系统的扩展工具,是辅助 gradle 主程序构建项目的
所以,不同类型的项目有不同的插件,例如 Android 有 com....
此篇文章来自于学习 Gson 和 Kotlin Data Class 的避坑指南
本文的所有代码和结论都经过实际验证和推敲,并且加入了我自己的理解和细节,更多算是对原文作者的补充,像是一个学习笔记,原文写的非常好,但我也希望你能看看我的这篇文章,
因为我对于我底层逻辑的思考很有信心,这里有简单的介绍 学习的本质在于摸透底层逻辑
从一个 NullPointerException 开始
12...
综述
我其实不是一个特别厉害的代码高手,本篇只是写一下我自己学习技术的一些习惯和思考
我所说的技术,更多的是指一些抽象的技术,比如:多线程,编译原理,跨平台…
详细内容
1. 了解背景
什么是了解背景?
了解一项技术的背景,就是它的由来,他一开始是用来干嘛的,现在是用来干嘛的,这期间有哪些改变…这是你应该优先去做的事情
为什么要了解背景?
因为了解背景有很多有优点:了解背景能让 你更全局地...
本文主要参考了 跟我一起写 Makefile,甚至有一些是直接复制的,原因有三:
因为我有一些自己见解浅薄的
还有一些确实原文章作者写的很好了,但是不写出来又不完整的。
前言
其实我不太知道要咋写 Makefile 这篇文章,感觉可能会变成翻译官方文档
所以…就随心写吧
从一个例子开始
首先我们得知道 Makefile 的规则
1234target ... : prerequisit...
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,被除数就是余数。
只要被除数或部分余数的位数与除数一样多,且最...