hash

How does Ruby Mocha stub a nested hash?

丶灬走出姿态 提交于 2020-03-06 08:38:20
问题 I have a method here that needs to be mocked using Mocha, but currently i have no clue how to mock the nested hash here. Products.new(:A => "aa", :B => "bb").containers['container_A'].elements['element_b'] So far, i know how to stub Products.new(:A => "aa", :B => "bb") , but have no idea with the hash part after it. Thanks in advance. 回答1: What about a hash / OpenStruct ? require 'ostruct' product.expects(:containers). returns('container_A' => OpenStruct.new(:elements => {'element_b' =>

MYSQL--表分区、查看分区

我的未来我决定 提交于 2020-03-06 08:20:01
一、 mysql分区简介 数据库分区 数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用来说分区完全是透明的。 MYSQL的分区主要有两种形式:水平分区和垂直分区 水平分区(HorizontalPartitioning) 这种形式的分区是对根据表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。 所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。水平分区一定要通过某个属性列来分割。常见的比如年份,日期等。 垂直分区(VerticalPartitioning) 这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应所有行。 可以用 showvariables like '%partition%'; 命令查询当前的mysql数据库版本是否支持分区。 分区的作用:数据库性能的提升和简化数据管理 在扫描操作中,mysql优化器只扫描保护数据的那个分区以减少扫描范围获得性能的提高。 分区技术使得数据管理变得简单,删除某个分区不会对另外的分区造成影响,分区有系统直接管理不用手工干预。 mysql从5.1版本开始支持分区

js获取url中的参数,url中传递中文的时候通过js解码的方式

冷暖自知 提交于 2020-03-06 06:48:02
如果传递的参数是: <a href="${pageContext.request.contextPath}/productdisplay/productDisplay_productDisplayUI.action?pkId=${pkId}&name=${name}" style="color:white; margin-top:10px; margin-bottom:10px;">${name}</a> 获取url参数的js如下: /** 初始化加载结束 */ function getUrlVars(){ var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?')+1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } 如果url中有中文,则取参数的时候会有中文乱码,得用decodeURI()方法解码,方式如下: //获得所属分类的pkId var params = getUrlVars(); //获得此中分类的id

从头开始学习vue-router

别说谁变了你拦得住时间么 提交于 2020-03-06 03:33:35
一、前言 要学习vue-router就要先知道这里的路由是什么?为什么我们不能像原来一样直接用 标签编写链接哪?vue-router如何使用?常见路由操作有哪些?等等这些问题,就是本篇要探讨的主要问题。 二、vue-router是什么 这里的路由并不是指我们平时所说的硬件路由器, 这里的路由就是SPA(单页应用)的路径管理器 。再通俗的说,vue-router就是WebApp的链接路径管理系统。 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。 路由模块的本质 就是建立起url和页面之间的映射关系 。 至于我们为啥不能用a标签,这是因为用Vue做的都是单页应用( 当你的项目准备打包时,运行 npm run build 时,就会生成dist文件夹,这里面只有静态资源和一个index.html页面 ),所以你写的 标签是不起作用的,你必须使用vue-router来进行管理。 三、vue-router实现原理 SPA(single page application):单一页面应用程序,只有一个完整的页面;它在加载页面时

从头开始学习vue-router

孤街醉人 提交于 2020-03-06 03:32:44
一、前言 要学习vue-router就要先知道这里的路由是什么?为什么我们不能像原来一样直接用标签编写链接哪?vue-router如何使用?常见路由操作有哪些?等等这些问题,就是本篇要探讨的主要问题。 二、vue-router是什么 这里的路由并不是指我们平时所说的硬件路由器, 这里的路由就是SPA(单页应用)的路径管理器 。再通俗的说,vue-router就是WebApp的链接路径管理系统。 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。 路由模块的本质 就是建立起url和页面之间的映射关系 。 至于我们为啥不能用a标签,这是因为用Vue做的都是单页应用( 当你的项目准备打包时,运行 npm run build 时,就会生成dist文件夹,这里面只有静态资源和一个index.html页面 ),所以你写的标签是不起作用的,你必须使用vue-router来进行管理。 三、vue-router实现原理 SPA(single page application):单一页面应用程序,只有一个完整的页面;它在加载页面时

HashMap(1.8)底层原理之get(key)分析

可紊 提交于 2020-03-05 23:32:06
先上源码: public V get (Object key) { Node< K , V > e ; return (e = getNode( hash (key) , key)) == null ? null : e. value ; } 我们都知道hashMap底层数据结构为:数组+单项链表+红黑树; 获取一个value值首先要获取当前key值所在的节点,得到该节点 e. value 属性值即为目标值; 第一步:对key值进行hash运算,得到节点位置;(如何hash运算:获取key值得hashcode将其称为h值,然后对该h值>>>16无符号右移16将其称为h16,然后对这两个值进行异或运算 h^h16)。hash运算要经过三个步骤才能算出节点位置。 第二部:getNode(h,key); 有了结点位置,我们就可以进行下一步的运算;h即为数组的下标; final Node< K , V > getNode ( int hash , Object key) { Node< K , V >[] tab ; Node< K , V > first , e ; int n ; K k ; if ((tab = table ) != null && (n = tab. length ) > 0 && (first = tab[(n - 1 ) & hash]) != null ) {

redis知识梳理

孤者浪人 提交于 2020-03-05 22:12:01
redis: redis的数据类型 redis支持的几种数据类型: String(字符串) Hash(哈希) List(有序可重复元素集合) Set(无序不重复元素集合) ZSet(有序不重复元素集合) String: 键和值都是字符串,存储简单字符串数据类型,一个键最大能存储512M 。 命令 功能 set key value 设置值(多次设置相同的key的value值会覆盖) get key 获取值 setnx key value 不存在则设置值 del key 删除键值 setex key 有效期时间 value 键值有效期之后自动失效 mset key1 value1 key2 value2 …keyn valuen 一次设置多个值 getset key value 一次获取多个值 incr / decr key 对一个值进行自增或自减 incrby / decrby key 步长 对一个值进行步长自增或自减 append key val 给key的value追加val的字符串 strlen key 返回key对应的字符串的长度 mget key1 key2 …keyn 一次获取多个值 Hash: Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 可以理解为:filed=对象,key=对象的属性,value

JAVA学习要点总结

落花浮王杯 提交于 2020-03-05 09:38:26
文章目录 缓存 memcache的分布式原理 memcache的内存分配机制 如何存放数据到memcached缓存中?(memcache内存分配机制) memcache的惰性失效机制 memcache缓存的无底洞现象 一致性Hash算法的实现原理 Hash环 一致性Hash算法 Hash环的倾斜 虚拟节点解决Hash环倾斜 hash算法平衡性 memcached与redis的区别 Redis的主从复制 Redis的部分复制过程 Redis的主从复制阻塞模式 Redis的数据持久化方式 Redis的高可用部署方式 哨兵模式 Redis哨兵主要功能 Redis哨兵的高可用 哨兵如何判断redis主从节点是否正常? 集群模式 Redis可以在线扩容吗?zk呢 Redis高并发和快速的原因 浏览器本地缓存的了解和使用 缓存雪崩 缓存穿透 HashMap HashMap的Hash碰撞 HashMap的get和put原理 HashMap的rehash HashMap的线程不安全问题 HashMap和Hashtable的区别 为什么collection没有实现clonable接口 为什map没有实现collection接口 Map接口的实现有哪些,区别是什么 线程池 Executors框架的四种线程池及拒绝策略 四种线程池 JDK拒绝策略 Reactor模式 Reactor单线程模型

【JDK】JDK源码分析-HashMap(1)

偶尔善良 提交于 2020-03-05 04:21:10
概述 HashMap 是 Java 开发中最常用的容器类之一,也是面试的常客。它其实就是前文「 数据结构与算法笔记(二) 」中「散列表」的实现,处理散列冲突用的是“链表法”,并且在 JDK 1.8 做了优化,当链表长度达到一定数量时会把链表转为红黑树。 因此,JDK 1.8 中的 HashMap 实现可以理解为「数组 + 链表 + 红黑树」。内部结构示意图: HashMap 的继承结构和类签名如下: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {} PS: 还记得以前初读 HashMap 源码时,用了周末两天的时间,而且读完脑子里还是一头雾水。当时也没做什么笔记,这次记录一下。 代码分析 一些成员变量 // 默认初始化容量(必须是 2 的次幂) static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 // 最大容量(必须是 2 的次幂,且小于等于 2^30) static final int MAXIMUM_CAPACITY = 1 << 30; // 默认负载因子 static final float DEFAULT_LOAD_FACTOR = 0.75f; //

linux内核的idr学习(一)

雨燕双飞 提交于 2020-03-04 23:00:00
原文: https://blog.csdn.net/m0_37128231/article/details/96727068?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task 参考链接: linux idr机制 https://blog.csdn.net/Morphad/article/details/9051261?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task linux内核IDR机制详解(一) https://blog.csdn.net/weixin_37867857/article/details/85028303?depth_1-utm_source=distribute.pc_relevant.none-task linux内核的idr学习(一) https://www.cnblogs.com/zero-jh/p/5184836.html 映射是实现(key,value)绑定的一种数据结构。也称为关联数组。可以视为由唯一key组成的集合。每个key对应这一个value。