对象存储

Java基础__Java中集合类

浪子不回头ぞ 提交于 2019-12-05 14:21:21
  ArrayList:有序、可重复、线程不安全、内部使用数组进行存储   LinkedList:有序、可重复、线程不安全、内部使用引用进行存储【可以很方便的进行插入、删除数据】   Vector:有序、可重复、线程安全   HastSet:无序、不可重复(自动去重)      TreeSet存放数据是有序的     HashSet存放数据是无序的 一、ArrayList集合类的简单创建和使用   创建一个集合对象   ArrayList arr = new ArrayList();   往集合中添加数据【arr.add(Object)】 arr.add("小明");   通过索引从集合中取得对象【arr.get(Index)】   arr.get(1) package com.Gary.arryaylist; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args){ //集合对象 ArrayList arr = new ArrayList(); //往集合中添加对象 arr.add("小明"); arr.add("小红"); arr.add("小梁"); //使用索引添加对象 System.out.println(arr.get(0)); } }

parquet 简介(转)

北慕城南 提交于 2019-12-05 09:33:23
原文 Parquet 列式存储格式 面向分析型业务的列式存储格式 由 Twitter 和 Cloudera 合作开发,2015 年 5 月从 Apache 的孵化器里毕业成为 Apache 顶级项目 列式存储 列式存储和行式存储相比有哪些优势呢? 可以跳过不符合条件的数据,只读取需要的数据,降低 IO 数据量。 压缩编码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码(例如 Run Length Encoding 和 Delta Encoding)进一步节约存储空间。 只读取需要的列,支持向量运算,能够获取更好的扫描性能。 当时 Twitter 的日增数据量达到压缩之后的 100TB+,存储在 HDFS 上,工程师会使用多种计算框架(例如 MapReduce, Hive, Pig 等)对这些数据做分析和挖掘; 日志结构是复杂的嵌套数据类型,例如一个典型的日志的 schema 有 87 列,嵌套了 7 层。所以需要设计一种列式存储格式,既能支持关系型数据(简单数据类型),又能支持复杂的嵌套类型的数据,同时能够适配多种数据处理框架。 关系型数据的列式存储,可以将每一列的值直接排列下来,不用引入其他的概念,也不会丢失数据。 关系型数据的列式存储比较好理解,而嵌套类型数据的列存储则会遇到一些麻烦。 如图 1 所示,我们把嵌套数据类型的一行叫做一个记录

JavaScript基础入门01

荒凉一梦 提交于 2019-12-05 08:44:58
JavaScript能用来做什么? 页面分为:结构、样式、行为。 JavaScript的组成: ECMAScript、BOM、DOM ECMAScript是一个标准,它规定了语法、类型、语句、关键字、保留子、操作符、对象。(相当于法律) BOM(浏览器对象模型):可以访问浏览器窗口的浏览器对象模型,对浏览器窗口进行操作。 DOM(文档对象类型):DOM把整个页面映射成一个多层节点结构。HTML页面组成都是某种类型的节点,这些节点又包含着不同类型的数据   js代码位置   首先是如何编写 JavaScript 代码,说到这,我们首先要来说明一个需要新人们关注的点,因为我们的 js 是一门 跨平台 的语言,所以说,我们的代码可以运行在不同的 平台 之上。这也就导致了可能相同的代码放在不同的平台运行就会有所出入。 这里面说的平台其实被称之为 宿主环境 。   同时,代码在不同的平台上的运行方式也有所不同。   如果运行在 服务端 ,那么更多的时候我们需要通过命令行的形式去运行,而如果是代码运行在 客户端 ,则需要通过启动 浏览器 来运行代码。   我们在学习的初期建议是在 浏览器 中运行代码,减少学习成本。   首先,我们的 js 代码可以写在 script 标签内部并且将 script 标签放在网页的任何位置。    外联JS的写法为: <script src="相对路径"><

java面试题-Java集合相关

痴心易碎 提交于 2019-12-05 08:29:48
1. ArrayList 和 Vector 的区别    ArrayList和Vector底层实现原理都是一样得,都是使用数组方式存储数据   Vector是线程安全的,但是性能比ArrayList要低。   ArrayList,Vector主要区别为以下几点:    (1):Vector是线程安全的,源码中有很多的synchronized可以看出,而ArrayList不是。导致Vector效率无法和ArrayList相比;   (2):ArrayList和Vector都采用线性连续存储空间,当存储空间不足的时候,ArrayList默认增加为原来的50%,Vector默认增加为原来的一倍;    (3):Vector可以设置capacityIncrement,而ArrayList不可以,从字面理解就是capacity容量,Increment增加,容量增长的参数。 2.说说 ArrayList,Vector, LinkedList 的存储性能和特性    ArrayList采用的数组形式来保存对象,这种方法将对象放在连续的位置中,所以最大的缺点就是插入和删除的时候比较麻烦,查找比较快;   Vector使用了sychronized方法(线程安全),所以在性能上比ArrayList要差些.   LinkedList采用的链表将对象存放在独立的空间中

Map,Model,ModelMap使用方法

China☆狼群 提交于 2019-12-05 07:44:26
1.Spring MVC在内部使用了一个org.springframework.ui.Model接口存储模型数据 具体步骤: 1.Spring MVC在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器。 2.如果方法的入参为Map,Model类型,Spring MVC会将隐含模型的引用传递给这些入参。在方法体内,开发者可以通过这个入参对象访问到模型中的所以数据,也可以向模型中添加新的属性数据。 @RequestMapping("/testmap") public String testmap(Map<String,Object> map) { map.put("age", 13); return "success"; } @RequestMapping("/testModel") public String testModel(Model model) { model.addAttribute("email","ddd@qq.com"); return "success"; } @RequestMapping("/testModelmap") public String testModelmap(ModelMap modelMap) { modelMap.addAttribute("city", "Beijing"); return "success"; } $

哈希表(hash)详解

为君一笑 提交于 2019-12-05 05:28:44
哈希表结构讲解: 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 记录的存储位置 = function(关键字) 这里的对应关系function称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(Hash table)。 哈希表hashtable(key,value) 就是把Key通过一个固定的算法函数function既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行 取余 ,取余结果就当作数组的 下标 ,将value存储在以该数字为下标的数组空间里。(或者:把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出 ,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。) 而当使用哈希表进行 查询的时候,就是再次使用哈希函数将key转换为对应的数组下标【仍通过映射哈希函数function】

架构设计:数据访问层简述

社会主义新天地 提交于 2019-12-05 05:09:28
在前面简单描述了下 服务层 , SOA面向服务架构 , 架构设计-业务逻辑层 ,以及一些 面向设计原则理解 和 软件架构设计箴言 。这篇博客我们将继续进入我们的下一层:数据访问层。无论你用的是什么开发模式或者是业务模式,到最后最必须具有持久化机制,持久化到持久化介质,并能对数据进行读取和写入CRUD。这就是数据访问层。你可能是利用xml等文件格式磁盘存储,常用的关系数据库存储,或者NoSql(not only sql)的内存存储或文档存储等等存储介质。而这里我只关心关系数据库存储。 数据层需要提供的职责有: 1:CRUD服务。作为唯一可以与存储介质交互的中间层出现,负责业务对象的增加,修改,删除,加载。 2:查询服务。这不同于CRUD中的R(read),read倾向于的单个对象,元组。而这里的查询针对复杂查询,比如一个国内电商的客户为四川的订单。这里会涉及仓储层。所谓仓储模式指的是一个提供业务对象查询的类,他隐藏了数据查询的解析步骤,封装sql解析逻辑。 3:事务管理。这里所说的是业务事务,在一个应用系统中每次请求都会产生多次的多数据对象的新增,修改,删除操作。如果我们每次都依次代开数据库连接,准备数据包,操作数据库,关闭数据连接。这些将会给我们带来很多不必要的性能开销。数据库管理员经常会要求“尽量少的与数据库交互”,这也必须成为我们的开发原则

SharedPreferences使用详解

橙三吉。 提交于 2019-12-05 04:51:51
在android中有五种存储数据的方式 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 在做手机配置项数据的存储时,我们一般使用第一种方式: 我们可以有两种获取SharedPreferences的方式: 1 调用Context对象的getSharedPreferences()方法: 调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他 组件 共享. 2 调用Activity对象的getPreferences()方法: 调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用. SharedPreferences有四种操作模式,分别为 Context.MODE_PRIVATE:该模式为默认操作模式,该模式下文件是私有数据,只能被应用本身访问,写入的内容会覆盖原文件的内容 MODE_WORLD_READABLE:表示当前文件可以被其他应用读取. MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入. Context.MODE_APPEND:该模式会检查文件是否存在

Map、List、数组

狂风中的少年 提交于 2019-12-05 04:32:12
*面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 *数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。 *集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。 集合框架图 1、Collection (集合的最大接口)继承关系   ——List 可以存放重复的内容   ——Set  不能存放重复的内容,所以的重复内容靠hashCode()和equals()两个方法区分   ——Queue  队列接口   ——SortedSet  可以对集合中的数据进行排序 Collection定义了集合框架的共性功能。 1,添加 add(e); addAll(collection); 2,删除 remove(e); removeAll(collection); clear(); 3,判断。 contains(e); isEmpty(); 4,获取 iterator(); size(); 5,获取交集。 retainAll(); 6,集合变数组。 toArray(); *add方法的参数类型是Object。以便于接收任意类型对象。 *集合中存储的都是对象的引用(地址) 2、List的常用子类 List: 特有方法

【巨杉数据库SequoiaDB】巨杉⼯具系列之一 | ⼤对象存储⼯具sdblobtool

半腔热情 提交于 2019-12-05 02:28:38
近期,巨杉数据库正式推出了完整的SequoiaDB 工具包,作为辅助工具,更好地帮助大家使用和运维管理分布式数据库。为此,巨杉技术社区还将持续推出工具系列文章,帮助大家了解巨杉数据库丰富的工具矩阵。 本文作为系列第一篇,将分享巨杉数据库大数据存储工具 sdblobtool 的基本介绍和应用实践。 巨杉工具矩阵 一、对象存储与自建存储对比 通俗地讲,自建存储就是自己购买服务器设备存储文件,通过运维人员手工进行文件的上传下载。而对象存储,则是使用不同的存储形态来存储文件。目前,对象存储独立的存储形态有三种:块存储、⽂件存储以及新出现的对象存储。 块存储 :简单来说,块存储就是将硬盘直接挂载到主机,在主机上我们能够看到的就是一块块的硬盘以及硬盘分区。从存储架构的角度而言,块存储又分为DAS存储(Direct-Attached Storage,直连式存储)和SAN存储(Storage Area Network,存储区域网络)。 文件存储 :指的是在文件系统上的存储,也就是主机操作系统中的文件系统。我们知道,文件系统中有分区,有文件夹,子文件夹,整体形成⼀个自上而下的⽂件结构,⽤户可以通过操作系统中的应⽤程序来打开和修改文件系统下的⽂件。 对象存储 :指的是⾯向对象/⽂件的、海量的互联网存储对象。虽然它也是文件,但它是已经被封装的⽂件(编程中的对象就有封装性的特点)。在对象存储系统⾥