object

Redis 存储原理(1)

北慕城南 提交于 2020-03-11 22:58:29
Redis现在基本也算是后台开发的基础服务,基本像Mysql一样普遍在应用中使用了。我第一次接触的Nosql是memcache用来解决夸服务session共享问题。后来因为memcache无法持久化问题改为使用Redis。这次主要针对Redis做一个整理。 Redis数据类型 类型 特点说明 String 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB Hash Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。 List Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) Set Redis 的 Set 是 string 类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1) ZSet 与Set不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序 HyperLogLog 在 2.8.9 版本添加是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的 Bitmaps 可做为 布隆过滤器 使用 GeoHash Redis 3.2 版本地理空间位置(纬度

原型与原型链

﹥>﹥吖頭↗ 提交于 2020-03-11 16:32:38
var obj = new Object() 那么有: obj.constructor == Object (实例都有一个constructor属性,指向构造函数Object) obj.__proto__ === Object.prototype (对象都有一个__proto__属性,指向它的构造函数的原型对象,即Obejct.prototype。注意:每个对象都有__proto__属性,但只有函数对象有prototype属性) Object.prototype.constructor == Object obj.constructor == Object 对比这两个,可以看出其实Object.prototype也是Object的一个实例 var obj = new Object() Object.prototype = obj; 来源: https://www.cnblogs.com/zgx123/p/7470606.html

js 原型链

我只是一个虾纸丫 提交于 2020-03-11 16:30:46
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> var person = function (name) { this.name = name; }; person.prototype.getName = function() { return this.name; }; var student = new person('jerome'); console.log(student); // person { name: 'jerome' } console.log(student.prototype); //undefined, 对象原型没有prototype console.log(student.__proto__); // person {} console.log(person); // function person(name) console.log(person.prototype); // person {} console.log(person.__proto__); // function Empty() console.log(person

原型与原型链

时间秒杀一切 提交于 2020-03-11 16:30:21
原型(prototype) <!-- 1. 函数的prototype属性(图) * 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象) * 原型对象中有一个属性constructor, 它指向函数对象 2. 给原型对象添加属性(一般都是方法) * 作用: 函数的所有实例对象自动拥有原型中的属性(方法) --> <script type="text/javascript"> // 每个函数都有一个prototype属性, 它默认指向一个对象(即称为: 原型对象) console.log(Date.prototype, typeof Date.prototype) function fn() { } console.log(fn.prototype, typeof fn.prototype) // 原型对象中有一个属性constructor, 它指向函数对象 console.log(Date.prototype.constructor===Date) console.log(fn.prototype.constructor===fn) // 2. 给原型对象添加属性(一般都是方法) function F() { } F.prototype.age = 12 //添加属性 F.prototype.setAge = function (age)

原型、原型链

China☆狼群 提交于 2020-03-11 16:28:16
每次面试都要重新巩固下这个知识点,决定还是自己归纳下 首先贴个《Javascript高级程序设计》的图 一、知识点: 1.普通对象与函数对象 var o1 = {}; var o2 =new Object(); var o3 = new f1(); function f1(){}; var f2 = function(){}; var f3 = new Function('str','console.log(str)'); console.log(typeof Object); //function console.log(typeof Function); //function console.log(typeof f1); //function console.log(typeof f2); //function console.log(typeof f3); //function console.log(typeof o1); //object console.log(typeof o2); //object console.log(typeof o3); //object o1 o2 o3 为普通对象, f1 f2 f3 为函数对象。 凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。f1,f2,归根结底都是通过 new Function(

原型链

元气小坏坏 提交于 2020-03-11 16:27:56
1 定义 对象继承属性的一个链条 2构造函数,实例与原型对象的关系 var Person = function (name) { this.name = name; }//person是构造函数 var o3personTwo = new Person('personTwo')//personTwo是实例 原型对象都有一个默认的constructor属性指向构造函数 3 创建实例的方法 1.字面量 let obj={'name':'张三'} 2.Object构造函数创建 let Obj=new Object() Obj.name='张三' 3.使用工厂模式创建对象 function createPerson(name){ var o = new Object(); o.name = name; }; return o; } var person1 = createPerson('张三'); 4.使用构造函数创建对象 function Person(name){ this.name = name; } var person1 = new Person('张三'); 4 new运算符 1.创了一个新对象; 2.this指向构造函数; 3.构造函数有返回,会替换new出来的对象,如果没有就是new出来的对象 4.手动封装一个new运算符 var new2 = function (func

集合相关的常用工具类

半城伤御伤魂 提交于 2020-03-11 14:47:21
1. 简介 Java中的集合类既可以当做放其他数据的容器,又可以当做常见的数据结构使用。Java中提供了很多好用的工具类来操作这些集合类。本篇博客就来介绍下常用的集合工具类。集合常用的工具类大体可以分为3类: JDK本身提供的工具类; Guava提供的工具类; Apache common-Collection提供的工具类 2. JDK提供的工具类 主要由下面三个: Arrays Collections Objects Arrays 是操作数组对象的工具类, Collections 是操作集合对象的工具类。 Objects 是操作引用数据类型对象的工具类。 Arrays的常用方法: 普通 排序 : Arrays.sort(int[] a) Arrays.sort(int[] a, int fromIndex, int toIndex) 其他非boolean基础数据类型的数组对象以及实现Comparable接口的类的数组对象均有此方法。 并行排序 :JDK1.8新增。 Arrays.parallelSort(int[] a) Arrays.parallelSort(int[] a, int fromIndex, int toIndex) 其他非boolean基础数据类型的数组对象以及实现Comparable接口的类的数组对象均有此方法。 并行计算 :JDK1.8新增,支持函数式编程

Java反射常用API汇总

China☆狼群 提交于 2020-03-11 04:28:06
“JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性” 一、类对象的获取 1.通过对象获取 Object obj = new Object(); obj.getClass(); 2.通过类名获取 Object.class; 3.通过类的路径名获取 Class.forName("com.metadata.Student"); 二、类的实例化和构造函数 获取到的class对象可以直接通过clazz.newInstance()方法实例化,但是需要目标类有默认无参构造函数,不然会抛出异常。 在类没有默认无参构造函数,或者需要某个具体的构造函数来实例化的情况,需要通过Constructor类的newInstance()来完成。 1.获取公有构造函数,不包括父类 //Classpublic Constructor<?>[] getConstructors() public Constructor<T> getConstructor(Class<?>... parameterTypes) 2.获取 当前类 构造函数,忽略修饰符 //Class public Constructor<?>[] getDeclaredConstructors() public Constructor<T>

POJO、VO、BO、DTO、PO

邮差的信 提交于 2020-03-10 19:26:10
1、POJO、VO、BO、DTO、PO 关系? VO、BO、DTO、PO 都是 POJO 的一种类别,是 POJO 在不同使用场景下的不同叫法。 2、POJO、VO、BO、DTO、PO 是什么? POJO POJO的概念连接 VO VO (View Object,表现层对象), 封装整个界面展示所需要的对象数据。 BO BO (Business Object, 业务对象), 封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。 DTO DTO (Data Transfer Object, 数据传输对象)。PO在传输前的再封装对象。 简单来说,当我们需要一个对象10个字段的内容,但这个对象对应的PO总共有20个字段,我们不需要把整个PO对象全部字段传输到客户端,而是可以用DTO重新封装,传递到客户端。 PO PO (Persistent Object,持久对象) ,每个属性基本上都对应数据库表里面的某个字段。 参考文献 https://www.cnblogs.com/lyjin/p/6389349.html Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分 来源: CSDN 作者: doforfuturedx 链接: https://blog.csdn.net/u013617791

解决低版本浏览器不支持object.assign()问题

限于喜欢 提交于 2020-03-10 06:36:05
最近新写的APP页面加入了bscroll.min.js插件文件,里面使用到了object.assign(),该方法ES6中合并对象用的。在比较新的手机上滑动页面没问题,但在较低版本的手机时滑动却没反应,查看日志发现有这么一句话:object.assign() is not a function.才发现低版本浏览器不兼容问题。 解决办法 在使用有object.assign()的代码块/插件文件前加入以下代码: if ( typeof Object . assign != 'function' ) { Object . assign = function ( target ) { 'use strict' ; if ( target == null ) { throw new TypeError ( 'Cannot convert undefined or null to object' ) ; } target = Object ( target ) ; for ( var index = 1 ; index < arguments . length ; index ++ ) { var source = arguments [ index ] ; if ( source != null ) { for ( var key in source ) { if ( Object .