对象存储

【Java】Java基础

◇◆丶佛笑我妖孽 提交于 2019-12-23 13:48:37
Δ String、StringBuffer 、StringBuilder之间的区别? 1. String 类: Java 提供了 String 类来创建和操作字符串。 用于获取有关对象的信息的方法称为访问器方法。String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数。 String ss = "Hello World!"; int len = ss.length(); 注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。 2.Java StringBuffer 和 StringBuilder 类 StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 StringBuffer 是线程安全的(支持同步访问)。StringBuilder 相较于 StringBuffer 有速度优势。 Δ Java重写(Override)和重载(Overload)的区别? 重写 是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重载 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同

----------------------集合-------------------------

做~自己de王妃 提交于 2019-12-23 11:44:30
1:集合:存储对象 遍历取出对象 List<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>(); 必须要引用数据类型,不能是基本类型,除非把基本数据类型变成包装类 b:集合 * b1:集合的层次结构 * Iterable <E> 实现了Iterable接口的集合类才可以被foreach * Collection 接口 集合最顶层的接口 * List 接口特点: 有序 有索引 可以重复元素 元素存与取的顺序相同 泛型用来约束集合中可有存储的数据类型 * ArrayList 底层是数组 根据索引查询,增删慢 ArrayList是实现了基于动态数组的数据结构 寻址容易,插入和删除困难; * LinkedList 底层是链表 增删快 查询慢 LinkedList是基于链表的数据结构 寻址困难,插入和删除容易。 子类特有的功能,不能多态调用 * Stack 栈结构的集合 stack继承vector其底层用的还是数组存储方式 Stack 栈结构的集合 官方建议:使用栈尽量使用ArrayDeque: Deque 接口及其实现提供了 LIFO 堆栈操作的更完整和更一致的 set,应该优先使用此 set,而非此类。例如: Deque stack = new ArrayDeque(); * Vector 线程安全的线性集合 *

db2数据库磁盘存储

人盡茶涼 提交于 2019-12-23 03:38:29
一次完整的IO操作时间=磁盘轴旋转的时间(旋转延迟)+磁盘臂移动时间(寻到时间)+数据传输时间。一次完整的IO时间的经验值是1/80秒,所以对于大型的数据库而言,频繁的IO操作会将微不足道的时间积累的非常可观。 db2 实际数据库包含许多逻辑对象和物理对象。 表,视图,索引,模式,触发器,存储过程,程序包等数据库对象。 缓冲池、日志文件、表空间 物理存储、表空间容器、目录、文件系统或裸设备。 这些对象一部分(比如表或视图)帮助决定如何对数据进行组织,其他对象(比如表空间)涉及数据库的物理实现;最后(比如缓冲池和其他内存对象)处理如何管理数据库性能。另外一些对象(比如日志文件)处理数据库的可恢复性。 表空间可以跨许多容器,这就意味着可以突破操作系统对于一个容器可以包含的数据量的限制。 操作系统的最小存储单位是块,在Linux中最小的块是512字节,在windows中,最小的存储单位是1kb, 而数据库中最小的事数据页。DB2中有4,8,16,32kb几种数据页。db2 在写物理存储时,为了保证写的吞吐量,引入了更大的单位extent,它是整数倍的datapage的大小。而表空间容器又是由很多extent组成,同时表空间又由很多容器组成。所以一般可以理解为多个extent组成一个container,多个container组成 表空间。 DB2中有三种管理类型的表空间 系统管理表空间

基础篇—List、Set、Map

可紊 提交于 2019-12-22 15:15:58
List是存储对象的容器,可以存储任意类型的对象且长度可变,List的存储对象是有顺序的,可重复的。 <1> List的接口框架 ArrayList实现类通过数组实现,在向集合中增加或删除时,需要对集合进行增容和拷贝,所以增删慢;而数组可以直接通过索引进行查找,所以查询快;一般查询多增删少的,优先选择ArrayList集合。 LinkedList实现类通过链表实现,在向集合中增加或删除时,无需扩容,所以增删快;但是不能通过索引进行定位查找,需要检索全部,所以查慢;一般增删多查询少的,优先选择LinkedList集合。 Vector实现类也是通过数组实现,是线程安全的,所以一般效率较ArrayList低。 <2> List接口的方法 增加 add(Object object); 将指定对象存储到List容器中。addAll(List list); 将指定集合中的元素存储到List容器中。 删除 remove(Object object); 将指定对象从容器中移除。removeAll(List list); 移除容器中与指定集合中的元素相同的元素。clear(); 清空容器中的所有元素。 修改 set(Integer index,Object object); 将容器中指定位置的元素修改成指定元素。 判断 isEmpty(); 判断容器是否为空。contains(Object

Java中对象和引用的理解

∥☆過路亽.° 提交于 2019-12-22 12:57:06
偶然想起Java中对象和引用的基本概念,为了加深下对此的理解和认识,特地整理一下相关的知识点,通过具体实例从两者的概念和区别两方面去更形象的认识理解,再去记忆。 一、对象和引用的概念: 在Java中万物皆对象,比如我们定义一个简单的动物类: class Animal { String count; String weight; .... } 有了这个Animal类之后,我们可以来创建一个Animal对象: Animal an = new Animal(); 我们把编写这个语句的动作就称作创建一个对象,细化这个动作为: 1. 右面的”new Animal”,是以Animal类为模板的,在堆空间里创建一个Animal对象; 2. 末尾的”( )”代表着:在对象创建之后,立即调用Animal类的构造函数,对新生成的对象进行初始化。(如果没构造函数,Java会有一个默认的构造函数的); 3. 左面的”Animal an” 创建了一个Animal类引用变量。即以后可以用来指向Animal对象的对象引用; 4. “=” 操作符使对象引用指向刚才创建的那个Animal对象。 拆分开也就是:等同于 Animal an; an = new Animal(); 有两个实体:一个是对象引用变量;一个是对象本身。 在java中,都是通过引用来操纵对象的,这也是两者的区别。 二、对象和引用的区别: 1

几百万数据放入内存不会把系统撑爆吗?

£可爱£侵袭症+ 提交于 2019-12-21 19:02:57
在公司有一个需求是要核对一批数据,之前的做法是直接用SQL各种复杂操作给怼出来的,不仅时间慢,而且后期也不好维护,就算原作者来了过一个月估计也忘了SQL什么意思了,于是有一次我就想着问一下之前做这个需求的人为什么不将这些数据查出来后在内存里面做筛选呢?直接说了你不怕把内存给撑爆吗?此核算服务器是单独的服务器,配置是四核八G的,配置堆的大小是4G。本着怀疑的精神,就想要弄清楚几百万条数据真的放入内存的话会占用多少内存呢? 计算机的存储单位 计算机的存储单位常用的有 bit 、 Byte 、 KB 、 MB 、 GB 、 TB 后面还有但是我们基本上用不上就不说了,我们经常将 bit 称之为比特或者位、将 Byte 简称为 B 或者字节,将 KB 简称为 K ,将 MB 称之为M或者兆,将 GB 简称为 G 。那么他们的换算单位是怎样的呢? 换算关系 首先我们得知道在计算机中所有数据都是由 0 1 来组成的,那么存储 0 1 这些二进制数据是由什么存放呢?就是由 bit 存放的,一个 bit 存放一位二进制数字。所以 bit 是计算机 最小的存储单位 。 大部分计算机目前都是使用8位的块,就是我们上面称之为的字节 Byte ,来作为计算机容量的基本单位。所以我们一般称一个字符或者一个数字都是称之为占用了多少字节。 了解了上面关于位和字节的关系后,我们可以看一下其他的单位换算关系 1B

Geodatabase数据模型

杀马特。学长 韩版系。学妹 提交于 2019-12-21 13:07:11
1 Geodatabase 概念   Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统一的、智能的空间数据模型。“统一”是指,Geodatabase之前的多个空间数据模型都不能在一个统一的模型框架下对地理空间要素信息进行统一的描述,而Geodatabase做到了这一点;“智能化”是指,在Geodatabase模型中,对空间要素的描述和表达较之前的空间数据模型更接近我们的现实世界,更能清晰、准确地反映现实空间对象的信息。   GeoDatabase的设计主要是针对标准关系数据库技术的扩展,它扩展了传统的点、线和面特征,为空间信息定义了一个统一的模型。在该模型的基础上,使用者可以定义和操作不同应用的具体模型,例如交通规划模型、土地管理模型、电力线路模型等。GeoDatabase为创建和操作不同用户的数据模型提供了一个统一的、强大的平台。   由于Geodatabase是一种面向对象的数据模型,在此模型中,空间中的实体可以表示为具有性质、行为和关系的对象。Geodatabase描述地理对象主要通过以下以下四种形式:   (1)用矢量数据描述不连续的对象;   (2)用栅格数据描述连续对象;   (3)用TINs描述地理表面;   (4)用Location或者Address描述位址。  

深入理解Java中的String

拜拜、爱过 提交于 2019-12-21 05:59:14
目录 JVM相关知识 String源码分析 Srtring在JVM层解析 String典型案例 String被设计成不可变和不能被继承的原因 JVM相关知识 下面这张图是JVM的体系结构图: 下面我们了解下Java栈、Java堆、方法区和常量池: Java栈(线程私有数据区): 每个Java虚拟机线程都有自己的Java虚拟机栈,Java虚拟机栈用来存放栈帧,每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。 Java堆(线程共享数据区): 在虚拟机启动时创建,此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配。 方法区(线程共享数据区): 方法区在虚拟机启动的时候被创建,它存储了每一个类的结构信息,例如运行时常量池、字段和方法数据、构造函数和普通方法的字节码内容、还包括在类、实例、接口初始化时用到的特殊方法。在JDK8之前永久代是方法区的一种实现,而JDK8元空间替代了永久代,永久代被移除,也可以理解为元空间是方法区的一种实现。 常量池(线程共享数据区): 常量池常被分为两大类:静态常量池和运行时常量池。 静态常量池也就是Class文件中的常量池,存在于Class文件中。 运行时常量池(Runtime

HTML5本地存储——Web SQL Database与indexedDB

流过昼夜 提交于 2019-12-21 05:05:26
  虽然在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就无能为力了,灵活大不够强大。我们经常在数据库中处理大量结构化数据,html5引入Web SQL Database概念,它使用 SQL 来操纵客户端数据库的 API,这些 API 是异步的,规范中使用的方言是SQLlite。这个文档曾经在W3C推荐规范上,但规范工作已经停止了。目前已经陷入了一个僵局:目前的所有实现都是基于同一个SQL后端(SQLite),但是我们需要更多的独立实现来完成标准化。 接下来将和W3C力推的IndexedDB做比较,看看为什么要废弃这种方案。Web SQL Database 规范中定义的三个核心方法: openDatabase:这个方法使用现有数据库或新建数据库来创建数据库对象 transaction:这个方法允许我们根据情况控制事务提交或回滚 executeSql:这个方法用于执行SQL 查询。 openDatabase 我们可以使用这样简单的一条语句,创建或打开一个本地的数据库对象 var db = openDatabase('testDB', '1.0', 'Test DB', 2 * 1024 * 1024);

前端存储之indexedDB

落花浮王杯 提交于 2019-12-21 05:04:06
在前一个阶段的工作中,项目组要开发一个平台,为了做出更好的用户体验,实现快速、高质量的交互,从而更快得到用户的反馈,要求在前端把数据存储起来,之后我去研究了下现在比较流行的前端存储数据库,找到了indexedDB,于是便对indexedDB做了一个较为深入的探索,此文就是记录探索过程的一些心得体会。 indexedDB为何物 在使用一个技术之前,先搞清楚它是什么,这对你的理解很重要,从DB就可以看出,它肯定是一个数据库,而说到数据库,有两种不同类型的数据库,就是关系型数据库和非关系型数据库,关系型数据库如Mysql、Oracle等将数据存储在表中,而非关系型数据库如Redis、MongoDB等将数据集作为个体对象存储。indexedDB就是一个非关系型数据库,它不需要你去写一些特定的sql语句来对数据库进行操作,因为它是nosql的,数据形式使用的是json, indexedDB出现的意义 也许熟悉前端存储的会说,不是有了LocalStorage和Cookies吗?为什么还要推出indexedDB呢?其实对于在浏览器里存储数据,你可以使用cookies或local storage,但它们都是比较简单的技术,而IndexedDB提供了类似数据库风格的数据存储和使用方式。 首先说说Cookies,英文直接翻译过来就是小甜点,听起来很好吃,实际上并不是