后端

Android 轻量级存储方案(SharedPreferences、MMKV、Jetpack DataStore)

1.SharePreferences SharedPreferences:一个轻量级的存储类,特别适合用于保存应用配置参数。(是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下) image.png SharedPreferences使用: 1.保存数据: 保存数据一般分为以下步骤: 使用Activit

JNI库文件加载源码解析

下面我们结合源码详细探讨下JNI调用的库文件是如何加载的,为啥HelloWorld.so必须被命名成libHelloWorld.so,JNI_OnLoad方法是在什么时候回调的,返回的版本号有啥用?先看下总体的流程图 Java源码解析 System.loadLibrary和System.load方法 System.loadLibrary(String)方法用来加载动态链接库的,String参数是指

2023-03-30||创建迭代器

今天要学习的是关于迭代器的。 但是对于这个来说不是很能理解到位。可能还有些生疏。 import java.util.*; //导入java.util包,其他实例都要添加该语句 public class Muster { // 创建类Muster public static void main(String args[]) { Collection<String> list = new

翻了ConcurrentHashMap1.7 和1.8的源码,我总结了它们的主要区别。

ConcurrentHashMap 思考:HashTable是线程安全的,为什么不推荐使用? HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占,相当于所有线程进行读写时都去竞争一把锁,导致效率非常低下。 1 ConcurrentHashMap 1.7 在JDK1.7中ConcurrentHashMap采用了数组+分段

算法练习:整数拆分(动态规划)

一.前言 最近一直在了解动态规划,这是LeetCode上面的一道动规的题。 343. 整数拆分 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例1: 输入: n = 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1。 示例2: 输入: n = 10 输出: 36 解释: 10 =

python之多线程

1. 相关概念 1.1 解释器 Python 解释器的主要作用是将我们在 .py 文件中写好的代码交给机器去执行,比较常见的解释器包括如下几种: CPython:官方解释器,我们从官网下载安装后获得的就是这个解释器,它使用 C 语言开发,是使用范围最广泛的 Python 解释器。 Jython:由 Java 编写,它可以将 Python 代码编译成 Java 字节码,再由 JVM 执行对应的字节

LeetCode热门100题算法和思路(day6)

LeetCode 146 LRU缓存 题目详情 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字

【教3妹学java】6.String是引用类型吗?

3妹 2哥:3妹,我们已经学习了java的基本数据类型和引用类型,那你知道String是引用类型吗? 3妹:String是引用类型。Java语言除了8大基本类型(byte,short,char,int,long,float,double,boolean), 其他的都是引用类型, 所以String也是引用类型。 2哥:great, 答对了,那我再问你,以下这些概念你了解吗? Strin

如何使用SpringBoot的缓存 @Cacheable

一、简介 1、缓存介绍 Spring 从 3.1 开始就引入了对 Cache 的支持。定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术。并支持使用 JCache(JSR-107)注解简化我们的开发。 其使用方法和原理都类似于 Spring 对事务管理的支持。Spring

Android性能优化之启动优化(实战篇)

目录 一、启动优化的意义 二、启动时间检测 三、启动优化工具---traceview 四、优化方案 1.异步初始化 2.延迟初始化 3.懒加载 五、源码地址 六、总结 一、启动优化的意义 用户新安装一个app,第一印象很重要,那首先给用户感受的就是启动时间,如果用户等待时间过长,就体验很差,如果我们能在满足功能的基础上,把启动时间提升一个等级,无疑给我们的产品赢得更多的用户量打下来基础。