ICode9

精准搜索请尝试: 精确搜索
  • 由浅入深带你手写LRU2022-01-28 12:30:17

    我们常用缓存提升数据查询速度,由于缓存容量有限,当缓存容量达到上限,就需要删除部分数据挪出空间,这样新数据才可以添加进来,缓存数据不能随机删除,一般情况下我们需要根据某种算法删除缓存数据,常用的淘汰算法有LRU,LFU,FIFO LRU简介 LRU是Least Recently Used的缩写,这种算法认

  • 深入学习-Gradle-自动化构建技术(一)Gradle-核心配置2022-01-27 20:30:15

    productFlavors { speed { minSdkVersion 21 } } 同步项目之后,我们在Android Studio右侧的 Build Variants 中选中 speedDebug 选项即可,如下图所示: 需要注意的是,要注意我们当前项目的实际最低版本,比如它为 18,现在我们开启了 speedDebug,项目编写时就会以 21 为标准,此时,就 需

  • JDK1.7中关于多线程操作HashMap的成环以及丢失问题2022-01-26 15:34:14

    JDK1.7中关于多线程操作HashMap的成环以及丢失问题 文章目录 1. 预备知识2. 关于成环2.1 线程A2.2 线程B2.3 分析一下堆中的情况2.4 我们重新转入线程A2.5 动图 3. 分析Entry丢失的情况3.1 前提信息3.2 线程B3.3 线程A3.4 线程B3.5 动图 1. 预备知识 扩容产生的条件:

  • 循环遍历Map的4中方法2022-01-25 15:02:59

    public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 2); // 1. entrySet遍历,在键和值都需要时使用(最常用) for (Map.Entry<Integer, Integer

  • webpack配置文件:webpack.config.js(一)2022-01-24 16:01:53

    1、webpack的配置文件webpack.config.js //const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { mode:'none', entry: './src/index.js', output: { path: __dirname + '/dist', f

  • HashMap2022-01-24 14:03:22

    HsahMap是我们常用的数据结构,jdk1.8前由数组和链表组合构成的数据结构,jdk1.8后由数组和链表还有红黑树构成,数组里面每个地方都存了Key-Value结构的实例,在java7中将Entry,在java8中叫node。在进行put操作的时候会根据插入数据的Key的hash值进行index的确定,当进行put操作时有可

  • 详解通用webpack多页面自动导入方案2022-01-23 14:01:17

    本文主要介绍了通用webpack多页面自动导入方案,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 目录 前言 思考 安装glob 创建工具类 getEntry getHtmlWebpackPlugin 二次封装 应用 前言 在之前,我写了一个webpack的模板。在平时我写栗子或者是

  • Python tkinter 使用2022-01-22 16:02:19

    这几天在看之前同事写的代码,他将源代码直接给到使用者,这样还要帮使用者安装环境。因此,需要把代码用pyinstaller打包成可执行文件,但是有些参数是不固定的,不能写到配置项里,所以这个时候需要用tkinter界面化来传输用户输入的参数。 主要需求 将文本框里输入的数字进行打印,如果数字

  • Gateway 网关 (三) Sentinel 限流2022-01-22 11:30:12

    废话 其实大部分人都是苦于不知道用啥工具去做限流,如果自己写一个限流逻辑,似乎又比较low,所以,当看到我这个标题的时候,其实本章大概率是不需要再去看了。 建议直接看官方文档吧,写得挺清楚的:https://github.com/alibaba/Sentinel 我这里就做一个最简单的限流示例,规则是每秒1次请求,

  • C语言队列模板2022-01-18 15:04:02

    头文件 #ifndef __QUEUE_H__ #define __QUEUE_H__ typedef struct queue_node { struct queue_node *next; struct queue_node *prev; } queueNode; #define QUEUE_HEAD_INIT(name) { &(name), &(name) } #define QUEUE_HEAD(name) \ struct queue_node

  • JDK1.7HashMap源码详细解读2022-01-17 22:32:25

    (本文的源码解析都存在与代码块的注释里面,请耐心观看) 开始之前 我们先简单了解以下HashMap。HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。(其实所谓Map其实就是保存了两个对象之间的映射关系的一种集合) 简单理解一下上面的

  • 代码优化:使用Entry遍历Map2022-01-16 21:37:09

    推荐,尤其是容量大时 Map<String,String> map = new HashMap<>(); for (Map.Entry<String,String> entry : map.entrySet()) {     String key = entry.getKey();     String value = entry.getValue(); } 避免使用这种方式: Map<String,String> map =

  • Redis之ziplist2022-01-15 12:34:07

    【ziplist结构】Redis为了节约内存空间,zset和hash在元素个数较少的时候使用的是ziplist结构进行存储。zip+list,我们可以想到这应该是一系列的zip结构的数据链在了一起。压缩列表是一块连续的内存空间,元素之间紧挨着存储,没有任何冗余空隙。 struct ziplist<T>{ int32 zlbytes;

  • 【优雅代码】15-guavaCache本地缓存使用及源码解析2022-01-14 22:01:28

    【优雅代码】15-guavaCache本地缓存使用及源码解析 欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在github目录收录。 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。

  • golang开发GUI桌面应用fyne(五)- 计算器2022-01-13 16:35:05

    package main import ( "fmt" "strconv" "strings" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/layout" "fyne.io/fyne

  • ThreadLocal源码阅读笔记2022-01-13 14:02:30

    一、功能描述 ThreadLocal解决了访问共享变量的阻塞问题,并且不需要像CAS操作一样牺牲CPU资源,它为每一个线程维护了一个变量副本,每个线程在访问ThrealLocal里面的变量时实际上访问的是自己线程内的变量副本,并且这个线程内的变量副本与其他线程的变量副本相互隔离,互不影响。也

  • Java遍历Map集合的四种方式2022-01-08 23:35:16

    Map 集合的遍历与 List 和 Set 集合不同。Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历。Map 以及实现 Map 的接口类(如 HashMap、TreeMap、LinkedHashMap、Hashtable 等)都可以用以下几种方式遍历。1)在 for 循环中使用 entries 实现 Map 的遍历(最

  • 关于java WatchService使用的研究2022-01-08 17:58:55

    需求:要求监听到在idea中rebuild的class文件的变化事件。 问题: 只能监听到第一次出现的事件,之后的事件没有监听到。 经过实验后推测原因是idea每次rebuild会重新生成文件夹, 导致之前register失效。 解决方法在最后重新register public static void main(String[] args) th

  • ThreadLocal详解(附面试题)2022-01-05 19:32:39

    文章目录 ThreadLocal详解(附面试题)1.ThreadLocal介绍2.基本使用2.1 常用方法2.2 栗子2.3 ThreadLocal类与synchronized关键字 3.ThreadLocal 的内部结构3.1 JDK8之前的设计3.2 JDK8的优化 4.ThreadLocal 的核心方法源码4.1 set方法4.2 get方法4.3 remove方法4.4 initialVal

  • ThreadLocal原理及使用场景2022-01-02 20:02:14

    ThreadLocal ​ ThreadLocal意为线程本地变量,用于解决多线程并发时访问共享变量的问题。 ​ 所谓的共享变量指的是在堆中的实例、静态属性和数组;对于共享数据的访问受Java的内存模型(JMM)的控制,其模型如下: 【参考:《Java并发编程的艺术》P22】 每个线程都会有属于自己的本地内

  • Map kv拼接,by 传统方式2021-12-30 22:02:47

    /**      * Map kv拼接      * key1=value1&key2=value2      *      * @param map      * @return      */     public static String getString(Map<String, String> map) {         String param = "";         Iterator<Map.Entry<String, Stri

  • C++语言导学 第二章 用户自定义类型 - 2.4 联合2021-12-27 10:03:12

    第二章 用户自定义类型 2.4 联合 2.4 联合 union是一种特殊的struct,它的所有成员被分配在同一块内存区域中,因此,联合实际占用的空间就是它最大的成员所占的空间。自然,在某个时刻,一个union中只能保存一个成员的值。例如,一个符号表表项结构保存一个名字和一个值,值可以是一个

  • LinkedHashMap 的原理与源码解析2021-12-26 23:05:56

    LinkedHashMap 的原理与使用 LinkedHashMap 是对 HashMap 的封装和拓展,在保留了 HashMap 原有功能的基础上,加了一些链表相关的属性,用来记录 HashMap 元素的先后顺序,这样如果要根据(节点插入或访问)顺序访问节点时,只要去遍历链表即可。 默认元素插入顺序排序: @Test public void test1

  • 【redis源码学习】redis 中的“消息队列” Stream2021-12-26 21:03:12

    文章目录 关于redis StreamStream 结构Stream 操作添加消息新增消费组删除消息裁剪信息流释放消费组查找元素 关于redis Stream redis stream 实现了大部分消息队列的功能,包括: 消息ID的序列化生成 消息遍历 消息的阻塞和非阻塞读取 消息的分组消费 ACK确认机制 这一

  • ThreadLocal,Thread,ThreadLocalMap之间的关系2021-12-26 16:31:31

    ThreadLocal,Thread,ThreadLocalMap之间的关系 Thread源码 public class Thread implements Runnable { ThreadLocal.ThreadLocalMap threadLocals = null; } ThreadLocal源码 public class ThreadLocal<T> { static class ThreadLocalMap { static cla

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有