对象存储

JAVA数据结构

强颜欢笑 提交于 2019-12-04 13:27:46
JAVA中的常用的数据结构、每个特定类的使用和功能适用的场合。 一、数据结构 1.逻辑结构和物理结构 逻辑结构 :反映数据元素之间的逻辑关系,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。常见的逻辑结构有集合、线性结构、树形结构、图形结构。    集合 :数据结构中的元素之间除了同属一个集合”的相互关系外,别无其他关系。    线性结构 :数据结构中的元素存在一对一的相互关系。每个数据元素只有一个直接前驱和一个直接后继,线性结构有线性表,栈,队列,双队列,串,一般多维数组、广义表不是线性结构。    树形结构 :数据结构中的元素存在一对多的相互关系。且具有明显的层次关系,每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关。树形结构可以表示从属关系、并列关系。数据结构中各种树形状都是树形结构。    图形结构 :数据结构中的元素存在多对多的相互关系。结点之间的关系可以是任意的,任意两个数据元素之间都可能相关,图形结构常被用于描述各种复杂的数据对象。 物理结构 :指数据的逻辑结构在计算机存储空间的存放形式。包括数据元素的机内表示和关系的机内表示,数据元素的机内表示指用二进制位的位串表示数据元素,称这种位串为节点。当数据元素有若干个数据项组成时,位串中与多个数据项对应的子位串称为数据域。关系的机内表示则可以分为顺序映像和非顺序映像

Js 操作浏览器本地存储对象:HTML5 localstorage

雨燕双飞 提交于 2019-12-04 13:04:17
Localstorage原生是只存储字符串的内容,如果想直接存储JSON或者是Array时是不可行。但是我们通过一些技巧来存储这些内容;通常一般性的代码如下: //json对象 var testObject = { "one": 1,"two": 2, "three": 3 }; // 存储对象到localstorage中 localStorage.setItem('testObject', JSON.stringify(testObject)); //从localstorage中获取数据 var retrievedObject = localStorage.getItem('testObject'); console.log('retrievedObject: ', JSON.parse(retrievedObject)); 如果每次这样操作,会很烦,因为你需要不断的重复转换成字符串,解析字符串。为了解决这个问题,我们可以通过扩展prototype原型 var Storage=window.localStorage Storage.__proto__.setObject = function(key, value) { this.setItem(key, JSON.stringify(value)); } Storage.__proto__.getObject =

javascript(5)

一个人想着一个人 提交于 2019-12-04 12:11:40
对象 对象的基本概念 什么是对象?? 现实生活中 : 万物皆对象, 对象是一个具体的事物 , 一个具体的事物就会有 特征 和 行为 ; JavaScript中: js中的对象就是生活中对象的一个抽象,,,, 没有特征和行为,,取而代之的是有对应的属性和方法 ; 思考 : 1. 学生对象: // 特征 : 名字,性别,身高,体重 // 行为 : 吃饭、睡觉、敲代码 2. js的对象 属性+方法 3. 对象初体验 var stu = { // 键 值 对 // 属性名 : 属性值 // 属性名 : 变量 => 不是字符型 // 属性值 : 任意类型 name : 'zs', gender: '男' height:170; weight:170; eat:function(){ console.log('吃饭'); } } 对象 : 是一组无序的键值对的集合 特点 : 1. 声明的变量 = {} []=> 数组 2. 键值对出现 3. 逗号隔开,, 记住 : 以后再 {} 内一行一行的都是用 , 隔开 ​ 为什么要学习对象? 思考1:如果要存储一个人的信息,应该怎么办? var name = "张三"; var age = 18; var sex = "男"; var hobby = "上网"; 思考2:这么做的缺点是什么? 这些变量都是属于一个人的,应该跟数组一样

Java开发常见基础题大全

℡╲_俬逩灬. 提交于 2019-12-04 11:30:59
1.& 和 && 的区别? & :逻辑与( and ) , 运算符两边的表达式均为 true 时,整个结果才为 true 。 && :短路与,如果第一个表达式为 false 时,第二个表达式就不会计算了。 2. ” == ”和 equals 方法究竟有什么区别? == :表示两个变量的值是否相等,用于比较两个基本数据类型的数据或者引用变量。 equals: 用于比较两个独立对象的内容是否相同。字符串的比较也用 equals 。 == 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String 、 Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。 3. 比较字符串相等时用 equals 和 == 的区别 String 是对象,如果用 == 号就是比较两个 String 对象内存地址是否一样, equals() 比较的是 String 内容时候一样,不过不同的编程语言两者不太一样 4.Int 和 integer 的区别? Int 是 Java 的 8 中基本数据类型之一, integer 是 int 的封装类。 Int 类型的默认值为 0 , integer 默认值为 null ,所以区别在于, integer 能区分出 null 值和 0 的区别。 5

(十)Kubernetes ConfigMap和Secret

夙愿已清 提交于 2019-12-04 11:28:27
ConfigMap资源 介绍 ConfigMap 是让配置文件从镜像中解耦,让镜像的可移植性和可复制性。许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。这些配置信息需要与 docker image 解耦,你总不能每修改一个配置就重做一个 image 吧? ConfigMap API 给我们提供了向容器中注入配置信息的机制, ConfigMap 可以被用来保存单个属性,也可以用来保存整个配置文件或者 JSON 二进制大对象。 ConfigMap 保存的值为键值方式, value 长度没有限制。 创建ConfigMap ConfigMap 支持命令创建和使用清单创建。有以下四种方式创建。 1、命令直接创建 --from-literal: 为 “kubectl create configmap” 命令使用 “--from-literal” 选项可在命令行直接给出键值来创建 ConfigMap 对象,重复使用此选项可以传递多个键值对。格式如下: kubectl create configmap NAME --from-literal=key1=value1 --from-literal=key2=value2 [root@k8s-master ~]# kubectl create configmap nginx-config --from-literal=nginx_port

《吊打面试官》系列-Redis常见面试题(带答案)

限于喜欢 提交于 2019-12-04 09:11:21
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub 上已经开源 https://github.com/Java… ,有面试点思维导图,欢迎 Star 和 完善 前言 Redis 在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在 Redis 的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚( 请允许我使用一下夸张的修辞手法 )。 于是在一个寂寞难耐的夜晚,我痛定思痛,决定开始写 《吊打面试官》 系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂Offer! 絮叨 上一期因为是在双十一一直在熬夜的大环境下完成的,所以我自己觉得质量明显没之前的好,我这不一睡好就加班加点准备补偿大家,来点干货。(熬夜太容易感冒了,这次 点个赞 别白嫖了!) 顺带提一嘴,我把我准备写啥画了一个思维导图,以后总不能每篇都放个贼大的图吧,就开源到了我的 GitHub ,大家有兴趣可以去完善和 Star 。 这篇我就先放出来大家看看,感觉还是差点意思,等大家完善了。 回望过去 上一期吊打系列我们提到了 Redis 相关的一些知识,还没看的小伙伴可以回顾一下 《吊打面试官》系列-Redis基础

JDK1.7中HashMap底层实现原理

核能气质少年 提交于 2019-12-04 08:11:51
原文链接: https://www.cnblogs.com/dijia478/p/8006713.html 一、数据结构 HashMap中的数据结构是数组+单链表的组合,以键值对(key-value)的形式存储元素的,通过put()和get()方法储存和获取对象。 (方块表示Entry对象,横排表示数组table[],纵排表示哈希桶bucket【实际上是一个由Entry组成的链表,新加入的Entry放在链头,最先加入的放在链尾】,) 二、实现原理 成员变量 源码分析: /** 初始容量,默认16 */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 /** 最大初始容量,2^30 */ static final int MAXIMUM_CAPACITY = 1 << 30; /** 负载因子,默认0.75,负载因子越小,hash冲突机率越低 */ static final float DEFAULT_LOAD_FACTOR = 0.75f; /** 初始化一个Entry的空数组 */ static final Entry<?,?>[] EMPTY_TABLE = {}; /** 将初始化好的空数组赋值给table,table数组是HashMap实际存储数据的地方,并不在EMPTY_TABLE数组中 */

Java的集合(三)

限于喜欢 提交于 2019-12-04 07:18:30
  8、数组和链表简介       在计算机中要对给定的数据集进行若干处理,首要任务是把数据集中的一部分(当数据非常大时,可能只能一部分一部分地读取数据到内存中来处理)或全部存储到内存中,然后在对内存中的数据进行各种处理。       例如:对如数据集S{1,2,3,4,5,6},要求S中元素的和,首先要把数据存储到内存中,然后再将内存中的数据相加。       当内存空间中有足够大的连续空间时,可以把数据连续的存放在内存中,各种编程语言的数组一般都是按这种方式存储的(也可能有例外),如图 1(b);当内存中只有一些离散的可用空间时,想连续存储数据就非常困难了,这时能想到的一种解决方式是移动内存中的数据,把离散的空间聚集成连续的一块大空间,如图 1(c)所示,这样做当然也可以,但是这种情况因为可能要移动别人的数据,所以会存在一些困难,移动的过程中也有可能会把一些别人的重要数据给丢失。另外一种,不影响别人的数据存储方式是把数据集中的数据分开离散地存储到这些不连续空间中,如图(d)。这时为了能把数据集中的所有数据联系起来,需要在前一块数据的存储空间中记录下一块数据的地址,这样只要知道第一块内存空间的地址就能环环相扣地把数据集整体联系在一起了。C/C++中用指针实现的链表就是这种存储形式。            由上可知,内存中的存储形式可以分别分为 连续存储和离散存储 两种。因此

Redis存储自定义对象类型

江枫思渺然 提交于 2019-12-04 07:00:21
参考文章 https://blog.csdn.net/u011499747/article/details/78762007 介绍 存储自定义的对象的时候,也吃能采用字符串的存储方式。 这时候就要采用序列化的方式。而序列化就不要让类继承Serializable了。使用功能jackson更加方便。在jackson中使用ObjectMapper这个基本类。 可以看出它已经继承了Serializable,自己进行序列化。所以使用起来很方便。 依赖 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations --> <dependency> <groupId>com.fasterxml.jackson.core</groupId>

在存储世界中成为“云原生”的真正含义

允我心安 提交于 2019-12-04 06:31:00
“云原生”(Cloud Native)一词在 2019 年被技术界广泛使用,但是却没有关于这个词一个特别明确的定义。主要的困惑在于,“云原生”与您的应用程序部署到的环境几乎没有关系,该术语同样适用于私有云和公共云。该术语更多的是指应用程序和体系结构的特征。 在 Cloud Native Computing Foundation (CNCF 云原生计算基金会) 对该术语的最新定义中我们可以找到一些相关信息: 云原生技术使组织能够在现代、动态环境(例如公共云,私有云和混合云)中构建和运行可扩展应用程序。容器、服务网格、微服务、不变的基础结构和声明性API 就是这种方法的例证。 这些技术使松散耦合的系统具有弹性,可管理性和可监控。结合强大的自动化功能,它们使工程师能够以最小的工作量频繁且可预测地进行重大的更改。 那么,存储是云原生意味着什么呢?简而言之,它必须以与云原生生态系统中其他所有事物相同的动态,API 驱动的方式运行。有两个相关的指标可以确定一个存储系统是否云原生,它们是: 是否专为 Kubernetes 打造 是否兼容亚马逊的 S3 API 下面我们将更详细地解读这些指标。 云原生存储是对象存储 现代应用程序体系结构基于对象存储,默认情况下,S3 是云的 API 语言。因为对象存储是唯一一种旨在处理云本机应用程序生成的数据量的存储