ICode9

精准搜索请尝试: 精确搜索
  • 【Java技术探索】各种类型对象占用内存情况分析(下)2021-06-21 22:53:05

    # 前提回顾 > **建议大家从[【Java技术专题-JVM研究系列(39)Java各种类型对象占用内存情况分析(上)】](https://blog.51cto.com/alex4dream/2928921 "【Java技术专题-JVM研究系列(39)Java各种类型对象占用内存情况分析(上)】")开始学习比较好,这样子会有一个承接和过度。根据前面的学习的内

  • icoding 排序 堆初始化2021-06-21 19:59:14

    堆初始化 二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2。 因此,第0个位置的子节点在1和2,1的子节点在3和4。以此类推。这种存储方式便于寻找父节点和子节点。在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等

  • Measures of Speed and Capacity(一些计量单位)2021-06-18 20:34:02

    前缀 符号 10的幂次 2的幂次 Kilo 千 K 103 210 Mega 兆 M 106 220 Giga 吉 G 109 230 Tera 太 T 1012 240 Peta 拍 P 1015 250 Exa 艾 E 1018 260 Zetta 泽 Z 1021 270

  • 你给HashMap初始化了容量,却让性能变得更糟?2021-06-16 21:06:04

    你给HashMap初始化了容量,却让性能变得更糟? 前言 项目中,看到大家已经意识到初始化HashMap时给Map指定初始容量大小,甚是欣慰。但仔细一看,发现事情好像又有一些不对头。虽然指定了大小,却让性能变得更加糟糕了。 可能你也是如此,看了《阿里巴巴Java开发手册》感觉学到了很多,于是在

  • [设计模式] 装饰者模式2021-06-09 17:01:55

    [设计模式] 装饰者模式 目录 [设计模式] 装饰者模式 场景分析 实践 总结 REFERENCES 更多 手机用户请横屏获取最佳阅读体验,REFERENCES中是本文参考的链接,如需要链接和更多资源,可以关注其他博客发布地址。 平台 地址 CSDN https://blog.csdn.net/sinat_28690417 简书 https

  • HashMap的桶位为什么是2的N次方(源码分析----1.8)2021-06-06 19:32:21

    内部类Node,实现Map.Entry(jdk1.8初次出现Node) public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { static class Node<K,V> implements Map.Entry<K,V> { final int hash; fina

  • java并发编程基础——阻塞队列BlockingQueue源码分析2021-06-04 16:52:49

    一、摘要   BlockingQueue通常用于一个线程在生产对象,而另外一个线程在消费这些对象的场景,例如在线程池中,当运行的线程数目大于核心的线程数目时候,经常就会把新来的线程对象放到BlockingQueue中去。 二、阻塞队列原理   原理简单的来讲:就是一个线程往队列里面放,而另外的一个线

  • Java基础篇之第()幕——Vector2021-06-02 16:32:32

    文章目录 一、概述二、源码1、属性(1)elementData(2)elementCount(3)capacityIncrement 2、构造函数3、主要方法4、遍历(1)迭代器(2)随机访问(3)for(4)Enumeration 一、概述 是一个矢量队列。 继承了AbstractList,实现了List接口,所以它是一个队列,支持相应的添加、删除、修改、遍历等

  • C++ STL string 扩容策略2021-05-31 19:03:16

    文章目录 一、引例 1、string 扩容概述 2、扩容尝试 二、扩容逻辑猜测 1、猜测一:常数增量 2、猜测二:倍数增量 三、扩容逻辑实现 一、引例 1、string 扩容概述 string 就是动态字符数组,一旦出现 ‘动态’ 二字,就不可能一开始就申请很大的内存,一定有它内部的申请策略; vector

  • C++ STL vector 扩容策略2021-05-31 19:03:05

    文章目录 一、引例 1、vector 扩容概述 2、扩容时机 3、扩容尝试 二、扩容逻辑解析 1、扩容逻辑实现 2、精简后的扩容逻辑 3、验证扩容逻辑 4、优化 三、论文解读补充 1、Size 和 Capacity 2、内存重分配 3、内存重分配策略 4、倍增法时间复杂度分析 一、引例 1、vector

  • std::vector中assign resize reserve的区别2021-05-27 15:01:22

    1.assign 用于初始化   2.resize 改变capacity,与size   3.reserve 改变capacity,不改变size    超过size的capacity不可直接访问,可通过push_back追加,若size < capacity, push_back操作不尽心内存分配。 测试代码: #include <stdio.h> #include <iostream> #include <vector> #

  • 厉害了,自己动手实现 LRU 缓存机制!2021-05-26 12:52:09

    前言 最近在逛博客的时候看到了有关Redis方面的面试题,其中提到了Redis在内存达到最大限制的时候会使用LRU等淘汰机制,然后找了这方面的一些资料与大家分享一下。 LRU总体大概是这样的,最近使用的放在前面,最近没用的放在后面,如果来了一个新的数,此时内存满了,就需要把旧的数淘汰,那为了

  • leetcode 146 LRU 缓存机制2021-05-17 19:35:23

    简介 使用了C++自带的实现deque 和 unordered_map code class LRUCache { public: unordered_map<int, bool> map; unordered_map<int, int> mapV; deque<int> q; int capacity; LRUCache(int capacity) { this->capacity = capacity;

  • 厉害了,自己动手实现 LRU 缓存机制!2021-05-16 10:29:32

    前言 最近在逛博客的时候看到了有关Redis方面的面试题,其中提到了Redis在内存达到最大限制的时候会使用LRU等淘汰机制,然后找了这方面的一些资料与大家分享一下。 LRU总体大概是这样的,最近使用的放在前面,最近没用的放在后面,如果来了一个新的数,此时内存满了,就需要把旧的数淘汰,

  • 【网络流】费用流(基于Capacity Scaling)2021-05-13 23:33:55

    目录 简介 原理 代码 引用资料 简介 费用流问题就是要求在所有最大流之中,找到费用最大/最小的问题。 下面重点讨论最小费用最大流。 原理 先给出大概的做法: 在残留网络上沿着最短路(边权即费用)增广,直到得到最大流(无法再增广),那么,假如图中没有负圈,这样的最大流的费用是最小的。 下

  • 0-1背包2021-05-13 23:33:27

    1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 int select(int values[],int n,int weights[],int capacity) 6 { 7 int dp[n+1][capacity+1]={}; 8 for(int i=1;i<=n;++i) 9 { 10 for(int j=1;j

  • Object Pooling(对象池)实现2021-05-10 10:53:58

    在文章开始之前首先要思考的问题是为什么要建立对象池。这和.NET垃圾回收机制有关,正如下面引用所说,内存不是无限的,垃圾回收器最终要回收对象,释放内存。尽管.NET为垃圾回收已经进行了大量优化,例如将托管堆划分为 3 Generations(代)并设定新建的对象回收的最快,新建的短生命周期对象将

  • Leetcode 1094. 拼车 (差分数组)2021-05-09 18:31:25

    这种连续区间的加法处理,是典型的差分数组优化。 class Solution { public: bool carPooling(vector<vector<int>>& trips, int capacity) { vector<int> delta(1010); for(auto trip: trips){ delta[trip[1]] += trip[0]; delta

  • 你给HashMap初始化了容量,却让性能变加更糟?2021-05-05 09:32:15

    前言 项目中,看到大家已经意识到初始化HashMap时给Map指定初始容量大小,甚是欣慰。但仔细一看,发现事情好像又有一些不对头。虽然指定了大小,却让性能变得更加糟糕了。 可能你也是如此,看了《阿里巴巴Java开发手册》感觉学到了很多,于是在实践中开始尝试给Map指定初始大小,并感觉自

  • C++学习笔记_14_string的底层原理及模拟实现2021-05-02 19:33:41

    C++学习笔记_14_string的底层原理及模拟实现 在上节的学习,简单学习了string的用法,但只有了解底层原理并复现string部分代码才可以更好的理解和应用,我实现了string的部分功能。 string简单用法 复习 目录 C++学习笔记_14_string的底层原理及模拟实现注:一、构造与析构二、常

  • redis的过期策略和内存淘汰机制2021-04-28 17:52:09

    一、redis的过期策略和内存淘汰机制  1、定期删除+惰性删除 定期删除:指的是redis默认是每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除 惰性删除:在你获取某个key的时候,redis会检查一下 ,这个key如果设置了过期时间那么是否过期了,如果过期了此时就会删除

  • Java工程师成神之路集合类之Java 8中Map相关的红黑树的引用背景、原理等2021-04-26 11:02:17

    HashMap的容量、扩容 很多人在通过阅读源码的方式学习Java,这是个很好的方式。而JDK的源码自然是首选。在JDK的众多类中,我觉得HashMap及其相关的类是设计的比较好的。很多人读过HashMap的代码,不知道你们有没有和我一样,觉得HashMap中关于容量相关的参数定义的太多了,傻傻分不清

  • yarn自定义scheduler队列2021-04-26 02:33:36

    yarn支持3种调度器,FIFO,容量,公平调度器。 FIFO调度算法 只有一个队列,任务执行是按照先进先出的顺序执行,无法支持多用户并发的场景。如下图 容器调度算法 yahoo开发的多用户调度器(apache yarn中默认使用) 特征 多队列:每个队列可配置一定的资源量,每个队列采用FIFO调度策略 容器保

  • (lintcode)第24题 LFU缓存2021-04-25 07:06:24

     LFU是一个著名的缓存算法,实现LFU中的set 和 get样例:capacity = 3set(2,2) set(1,1) get(2) >> 2 get(1) >> 1 get(2) >> 2 set(3,3) set(4,4) get(3) >> -1 get(2) >> 2 get(1) >> 1 get(4) >> 4  我们来看看LFU的百度解释:LFU(least frequently used (LFU)

  • YAR的调度队列 —— Hadoop权威指南62021-04-19 00:01:58

    真实场景中,总会出现这样的情况:新提交的YARN应用需要等待一段时间,才能获得所需的资源。不能立即获得资源的应用,总不能直接拒绝,需要有个地方去存储这些应用 —— 使用队列同时,队列中的应用如何为其分配资源:是先到先得?还是优先执行资源需求较小的应用? —— 需要有特定的策略为应

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

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

ICode9版权所有