后端

翻了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,第一印象很重要,那首先给用户感受的就是启动时间,如果用户等待时间过长,就体验很差,如果我们能在满足功能的基础上,把启动时间提升一个等级,无疑给我们的产品赢得更多的用户量打下来基础。

LeetCode - #124 二叉树中的最大路径和(Top 100)

前言 本题为 LeetCode 前 100 高频题 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新到 123 期,我们会保持更新时间和进度(周一、周三、周五早上 9:00 发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提

Leetcode 102. 二叉树的层序遍历

题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] </pre> 示例 2: 输入:root = [1] 输出:[[1]] 示例 3: 输入:root = [] 输出:[] </pre> 提示:

No.43 重力问题和锚问题

原文摘录: ”锚问题“和”重力问题“的区别: ”锚问题“,是指有一类问题不会自行消失,我们把这样的问题称为”锚问题“。 这类问题就像真正的锚一样,把你固定在一个地方,让你无法前进。 "锚问题”,是一个现实问题,它只是难以解决,它具有可操作性——但是因为我们被困在上面的时间太长,所以感觉它变得难以逾越了。这就是必须对锚问题重新定义的原因。这类问题需要我们开拓思路、寻找新的解决办法,如原型测试。 ”重