对象存储

c++堆,栈的存储方式及代码内存分配

天大地大妈咪最大 提交于 2020-01-31 22:32:25
使用对象指针 C语言中经典的指针在 C++ 中仍然广泛使用,尤其是指向对象的指针,没有它就不能实现某些功能。 Student stu ; Student * pStu = & stu ; 上面代码中创建的对象 stu 在栈上分配内存,需要使用&获取它的地址,例如: Student stu;Student *pStu = &stu; pStu 是一个指针,它指向 Student 类型的数据,也就是通过 Student 创建出来的对象。 当然,你也可以在堆上创建对象,这个时候就需要使用前面讲到的new关键字(C++ new和delete运算符简介),例如: Student *pStu = new Student; 在栈上创建出来的对象都有一个名字,比如 stu,使用指针指向它不是必须的。但是通过 new 创建出来的对象就不一样了,它在堆上分配内存,没有名字,只能得到一个指向它的指针,所以必须使用一个指针变量来接收这个指针,否则以后再也无法找到这个对象了,更没有办法使用它。也就是说,使用 new 在堆上创建出来的对象是匿名的,没法直接使用,必须要用一个指针指向它,再借助指针来访问它的成员变量或成员函数。 栈内存是程序自动管理的,不能使用 delete 删除在栈上创建的对象;堆内存由程序员管理,对象使用完毕后可以通过 delete 删除。在实际开发中,new 和 delete 往往成对出现

Java复习——基础知识

烈酒焚心 提交于 2020-01-31 00:56:28
对于 作者曹胜欢的专栏:Java程序员从笨鸟到菜鸟 https://blog.csdn.net/csh624366188/category_9260964.html?utm_source=zlmf2019 基本小结 基础知识 Java以;结尾。 Java的注释有 : // 行注释 /* / 一行或多行注释 / * */ javadoc 注释 Java合法命名规范 : 大小写字母或者美元符号或者下划线开头,不能以数字开头,不能用关键字。类名一般大写开头,变量和方法一般小写开头。 Java的基本数据类型 :byte字节(8位)1字节 、boolean布尔(1位)、char字符(16位)两字节、short短整型(16位)两字节、int整形(32位)4字节、long长整型(64位)8字节、float单精度浮点型(32位)、double双精度浮点型(64位) Java的特殊引用类型 : String 引用类型 :引用类型是一个对象类型的,他的值指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。 定义变/常量和变量的初始化 :常量需要用final 修饰 ,约定常量 一般全部使用大写字母。 switch运算符 : switch (expr) expr 必须是与int类型兼容的类型,即为byte,short,char,int其中的一个。 流程跳转语句-break

块存储、对象存储、文件存储的联系和区别

心已入冬 提交于 2020-01-30 14:22:55
块存储、对象存储、文件存储的联系和区别 通常来讲,磁盘阵列都是基于Block块的存储,而所有的NAS产品都是文件级存储。 \1. 块存储:DAS SAN a) DAS(Direct Attach Storage): 是直接连接于主机服务器的一种存储方式,每台服务器有独立的存储设备,每台主机服务器的存储设备无法互通,需要跨主机存取资料室,必须经过相对复杂的设定,若主机分属不同的操作系统,则更复杂。 应用:单一网络环境下且数据交换量不大,性能要求不高的环境,技术实现较早。 b) SAN(Storage Area Network): 是一种高速(光纤)网络联接专业主机服务器的一种存储方式,此系统会位于主机群的后端,它使用高速I/O联接方式,如:SCSI,ESCON及Fibre-Channels.特点是,代价高、性能好。但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。 应用:对网速要求高、对数据可靠性和安全性要求高、对数据共享的性能要求高的应用环境中。 \2. 文件存储 通常NAS产品都是文件级存储。 NAS(Network Attached Storage):是一套网络存储设备,通常直接连在网络上并提供资料存取服务,一套NAS储存设备就如同一个提供数据文件服务的系统,特点是性价比高。 它采用NFS或CIFS命令集访问数据,以文件为传输协议,可扩展性好

什么是对象存储

我与影子孤独终老i 提交于 2020-01-30 13:27:36
什么是对象存储 一种提供HTTP协议接口的存储方式,简单来说就是把每个文件当成一个对象来进行存储,存储时可以给这个对象打标签,比如图片、地点、时间、业务类型等等。目前对象存储标准是AWS的S3协议,基本提供对象存储的厂家都兼容S3协议。我们公司HDS的HCP和元核云对象存储都用过,总体感觉元核云的对象存储产品要做得好一些。 对象存储(Object Storage)的始作俑者是亚马逊2006年推出的S3(Simple Storage Service),此后新老厂商一窝蜂地推出各种产品,形态各异,但都号称对象存储。亚马逊没有给出一个定义,也没有看到有业界普通接受的说法,码农也是从自己角度各说各话,夹杂着成堆的缩写名词。 各家产品差异较大,因此从实现技术上定义对象存储比较困难。但从应用场景上理解就相当简单,它的特征如下。 远程访问 。对象存储为云计算而生,存储设备在数据中心,用户遍布世界各地,必须通过互连网访问。最好的广域网访问当然是http了,实际上S3协议就是在http的基础上定义的。传统的块存储要求与达客户端之间的延时很小(例如1 ms),因此使用线缆直连或者专用低延时网络连接,相距很近。文件存储称微放松对延时的要求,但仍要求存储设备与客户端位于同一个网段,即一个局域网之内,也不能距离太远。 海量用户 。云计算公司至少要计划支持上亿用户吧,否则也太没出息了

分布式存储-ceph

只愿长相守 提交于 2020-01-30 07:49:00
1. ceph 简介   Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统()。ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。在国内一些公司的云环境中,通常会采用 ceph 作为openstack 的唯一后端存储来提高数据转发效率。 Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。   官网:https://ceph.com/   官方文档:http://docs.ceph.com/docs/master/# 2. Ceph特点 高性能 :   1) 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。   2) 考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。   3) 能够支持上千个存储节点的规模,支持TB到PB级的数据。 高可用性:   1) 副本数可以灵活控制。   2) 支持故障域分隔,数据强一致性。   3) 多种故障场景自动进行修复自愈。   4) 没有单点故障,自动管理。 高可扩展性:   1) 去中心化。   2) 扩展灵活。   3)

Android基础面试题

最后都变了- 提交于 2020-01-30 01:54:15
1. 请描述一下Activity 生命周期。 答: 如下图所示。共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onPause(),onStop(), onDestroy()。 onCreate(): 创建Activity时调用,设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问。 onStart(): Activity变为在屏幕上对用户可见时调用。 onResume(): Activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用。 onPause(): Activity被暂停或收回cpu和其他资源时调用,该方法用户保护活动状态的,也是保护现场。 onStop(): Activity被停止并转为不可见阶段及后续的生命周期事件时调用。 onRestart(): Activity被重新启动时调用。该活动仍然在栈中,而不是启动新的Activity。 1、完整生命周期: 即从一个Activity从出现到消失,对应的周期方法是从onCreate()到onDestroy()。 2、可见生命周期: 当Activity处于可以用户看见的状态,但不一定能与用户交互时,将多次执行从onStart()到onStop()。 3、前景生命周期:

Cookie&Session会话技术

我的梦境 提交于 2020-01-30 00:19:35
Cookie&Session会话技术 一.会话技术 1) 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会话技术就是记录这次会话中客户端的状态与数据的。 2)会话技术分为Cookie和Session: Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie; Session:将数据存储到服务器端,安全性相对好,增加服务器的压力; 二、Cookie技术 1.服务器端向客户端发送一个Cookie 1)创建Cookie: Cookie cookie = new Cookie(String cookieName,String cookieValue); 注意:Cookie中不能存储中文 。 2)设置Cookie在客户端的持久化时间: cookie.setMaxAge(int seconds); ---时间秒 注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里 3)设置Cookie的携带路径: cookie.setPath(String path); 注意:如果不设置携带路径,那么该cookie信息会在访问产生该cookie的 web资源所在的路径都携带cookie信息 4

Django视图

和自甴很熟 提交于 2020-01-29 11:24:30
Django中视图的功能: 接收请求,进行处理,与M和T进行交互,返回应答 返回html内容HttpResponse、重定向页面redirect、json数据及异常等 1. 视图函数 定义视图函数:参数:request(必须),返回一个HttpResponse类型的对象或者HTTP404异常(参数名可以自定义不建议修改) URL配置:建立URL与视图函数之间的对应关系 URL配置 在项目的urls文件中包含具体应用的urls文件,在具体应用的urls文件中包含具体url和视图的对应关系 url配置项定义在一个名叫urlpatterns的列表中,其中的每一个元素就是一个配置项,每一个配置项都调用url函数(高版本使用path、re_path函数) url匹配过程: 注意: 匹配成功调用视图函数产生内容返回客户端,匹配失败产生404异常 不能在开始加反斜杠,推荐在结束加反斜杠 内置错误视图 404:找不到页面(请求的URL没有配置或者配置错误) - 关闭调试模式之后,默认会显示一个标准的错误页面,如果要显示自定义的页面,则需要的templates目录下面自定义一个404.html文件 - 默认情况下Django会向404.html文件传递一个参数:request_path(请求的路径) 500:服务器端错误(视图函数内部执行出错) - 默认会显示一个标准的500服务器错误页面

day15_Map

左心房为你撑大大i 提交于 2020-01-29 09:21:26
Map集合 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map 接口。我们通过查看 Map 接口描述,发现 Map 接口下的集合与 Collection 接口下的集合,它们存储数据的形式不同。Collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection 中的集合称为单列集合, Map 中的集合称为双列集合。需要注意的是, Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。 总结一下Map集合的特点 Map集合是一个双列集合,一个元素包含两个值(一个key,一个value) Map集合中的元素,key和value的数据类型可以相同,也可以不同 Map集合中的元素,key是不允许重复的,value是可以重复的 Map集合中的元素,key和value是一一对应 Map常用子类 通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。 HashMap :

android 堆内存和栈内存详解

Deadly 提交于 2020-01-29 01:38:07
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。 堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了数组或者对象的引用变量,以后就可以在程序中使用栈内存中的引用变量来访问堆中的数组或者对象,引用变量相当于为数组或者对象起的一个别名,或者代号。 引用变量是普通变量,定义时在栈中分配内存,引用变量在程序运行到作用域外释放。而数组&对象本身在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉。这个也是java比较占内存的主要原因,实际上,栈中的变量指向堆内存中的变量,这就是 Java 中的指针! java中内存分配策略及堆和栈的比较 1 内存分配策略 按照编译原理的观点