对象存储

11 数据存储(Unity3D)

烈酒焚心 提交于 2019-12-03 16:46:14
所有的游戏开发都离不开数据存储的操作,Unity3D也不例外 PlayerPrefs: PlayerPrefs是Unity系统自带的的一种最简单的存储方式,数据是使用字典的方法来存储的 PlayerPrefs的常用方法: SetFloat:存储float类型的数据 GetFloat:通过key值获取float类型的数据 SetInt:存储int类型的数据 GetInt:通过key值获取int类型的数据 SetString:存储string类型的数据 GetString:通过key值获取string类型的数据 DeleteAll:删除所有的PlayerPrefs数据 HasKey:判断是否存在该key值的数据 XML数据生成和解析 都需要先创建 XmlDocument对象来调用 xml 指可扩展标记语言(EXtensible Markup Language) xml 是一种标记语言,类似于HTML xml 的设计宗旨是传输数据,而非显示数据 xml存储数据是以树形结构来存储数据的,存储的数据有一个个的节点构成,每一个完整的标签算是一个元素 <Alarm lock=“true"> <Time> StringValue </Time> </Alarm> 以上Alarm(元素节点),lock(属性节点),Time(元素节点), StringValue( 本节点)都是节点(Node),

Java 集合框架

南楼画角 提交于 2019-12-03 12:18:50
早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。 虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同。 集合框架被设计成要满足以下几个目标。 该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。 该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。 对一个集合的扩展和适应必须是简单的。 为此,整个集合框架就围绕一组标准接口而设计。你可以直接使用这些接口的标准实现,诸如: LinkedList , HashSet , 和 TreeSet 等,除此之外你也可以通过这些接口实现自己的集合。 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。

C语言存储类别和链接

▼魔方 西西 提交于 2019-12-03 12:11:48
目录 C语言存储类别和链接 存储类别 存储期 五种存储类别 C语言存储类别和链接 ​ 最近详细的复习C语言,看到存储类别的时候总感觉一些概念模糊不清,现在认真的梳理一下。C语言的优势之一能够让程序员恰到好处的控制程序,可以通过C语言的内存管理系统指定变量的作用域和生存周期,实现对程序的控制。 存储类别 基本概念 对象 :在C语言中所有的数据都会被存储到内存中,被存储的值会占用一定的物理内存,这样的一块内存被称为 对象 ,它可以储存一个或者多个值,在储存适当的值时一定具有相应的大小。(C语言对象不同于面向对象语言的对象) 标识符 :程序需要一种方法来访问对象,这就需要声明变量来实现,例如: int identifier = 1 ,在这里 identifier 就是一个标识符,标识符是一个名称并遵循变量的命名规则。所以在本例中 identifier 即是C程序指定硬件内存中的对象的方式并提供了存储的值的大小“1”。在其它的情况中 int * pt 、 int arr[10] ,pt就是一个标志符,它指定了储存地址的变量,但是表达式*p不是一个标志符,因为它不是一个名称。 arr 的声明创建了一个可容纳10个 int 类型元素的对象,该数组的每一个元素也是一个对象。 作用域 :描述程序中可访问标识符的区域。因为一个C变量的作用域可以是块作用域、函数作用域、文件作用域和函数原型作用域。

23.说一下 HashMap 的实现原理?

最后都变了- 提交于 2019-12-03 10:55:06
hashMap基于hashing原理,我们通过put()和get()方法存储和获取对象。当我们将键值对传给put()方法时;它调用键对象的hashCode()方法来计算hashCode,然后找到bucket位置来存值对象。当获取对象时,通过键值对的equals()方法来找到正确的键值对。然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞时,对象会存储在链表的下一个节点。hashMap在每个链表的阶段存储键值对对象。 当两个不同的键对象hashCode相同时会发生什么?他们会存储在同一个bucket位置的链表中。建对象的equals()方法用来找到键值对。 来源: https://www.cnblogs.com/lixxx/p/11792072.html

php的serialize和unserialize的用法

前提是你 提交于 2019-12-03 09:45:58
serialize -- 产生一个可存储的值的表示 描述 string serialize ( mixed value ) serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。 这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。 想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。 serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。 当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。 类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。 注意: 在 PHP 3 中,对象属性将被序列化,但是方法则会丢失。PHP 4 打破了此限制,可以同时存储属性和方法。请参见类与对象中的序列化对象部分获取更多信息。 unserialize (PHP 3 >= 3.0.5, PHP 4, PHP 5) unserialize -- 从已存储的表示中创建 PHP 的值 描述 mixed unserialize ( string str [, string

Java SE1.6中的Synchronized

心不动则不痛 提交于 2019-12-03 04:47:15
1 引言 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。 2 术语定义 术语 英文 说明 CAS Compare and Swap 比较并设置。用于在硬件层面上提供原子性操作。在 Intel 处理器中,比较并交换通过指令cmpxchg实现。比较是否和给定的数值一致,如果一致则修改,不一致则不修改。 3 同步的基础 Java中的每一个对象都可以作为锁。 对于同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前对象的Class对象。 对于同步方法块,锁是Synchonized括号里配置的对象。 当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。那么锁存在哪里呢?锁里面会存储什么信息呢? 4 同步的原理 JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现,而方法同步是使用另外一种方式实现的,细节在JVM规范里并没有详细说明,但是方法的同步同样可以使用这两个指令来实现

聊聊并发(二)Java SE1.6中的Synchronized

岁酱吖の 提交于 2019-12-03 04:47:00
##引言## 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。 ##术语定义## CAS :Compare and Swap,比较并设置。用于在硬件层面上提供原子性操作。在 Intel 处理器中,比较并交换通过指令cmpxchg实现。比较是否和给定的数值一致,如果一致则修改,不一致则不修改。 ##同步的基础## Java中的每一个对象都可以作为锁。 (1)对于同步方法,锁是当前实例对象。 (2)对于静态同步方法,锁是当前对象的Class对象。 (3)对于同步方法块,锁是Synchonized括号里配置的对象。 当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。那么锁存在哪里呢?锁里面会存储什么信息呢? ##同步的原理## JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现,而方法同步是使用另外一种方式实现的,细节在JVM规范里并没有详细说明

关于localStorage储存多个数据

有些话、适合烂在心里 提交于 2019-12-03 04:29:16
localStorage: 是一种你不主动清除它,它会一直将存储数据存储在客户端的存储方式,即使关闭了客户端(浏览器),属于本地持久层储存 sessionStorage: 用于本地存储一个会话(session)中的数据,一旦会话关闭,那么数据会消失,比如刷新。 localStorage只能存字符串 ,如果需要存对象,首先要转化为字符串 利用JSON.stringify() ( 存单个就不用考虑这些了 ) setItem 存 let rowVal = { bCode: row.gymnasium.code, bName: row.gymnasium.name, bAddress: row.gymnasium.address, bCoachName: row.coach.name, bCozchNickName: row.coach.nickname, bIphone: row.coach.phoneNumber }; localStorage.setItem("rowVal", JSON.stringify(rowVal)); 然后取出rowVal对象用JSON.parse() 再把字符串转为对象( 然后用哪个 "." 哪个就行了 ) getItem 取 computed: { rowVal() { const rowVal = JSON.parse(localStorage

JAVA-基础

早过忘川 提交于 2019-12-03 02:03:17
一、Java 基础   1.JDK 和 JRE 有什么区别?   答:JRE 是 Java Runtime Environment 的缩写,顾名思义是 java 运行时环境,包含了 java 虚 拟机,java 基础类库。是使用 java 语言编写的程序运行所需要的软件环境,是提供给想运行 java 程序的用户使用的,还有所有的 Java 类库的 class 文件,都在 lib 目录下,并且都打包成 了 jar。 Jdk 是 Java Development Kit 的缩写,顾名思义是 java 开发工具包,是程序员使用 java 语言编写 java 程序所需的开发工具包,是提供给程序员使用的。JDK 包含了 JRE,同时还包 含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具:jconsole, jvisualvm 等工具软件,还包含了 java 程序编写所需的文档和 demo 例子程序。 如果你需要运行 java 程序,只需安装 JRE 就可以了。如果你需要编写 java 程序,需要 安装 JDK。   2.== 和 equals 的区别是什么?   答: (1):对于基本类型和引用类型 == 的作用效果是不同的,如下所示: 基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同; (2)equals 解读 equals

k8s工作机制和组件

元气小坏坏 提交于 2019-12-03 01:40:45
Master节点: kuber-apiserver->资源增删改查等操作的唯一出口,也是集群控制的入口进程 Kube-controller-manager->k8s所有资源对象的自动化控制中心 Kube-scheduler->负责资源调度 Replication controller->通过模板来创建和复制pod,提供滚动伸缩和升级 node节点: kubelet->与master节点协作,是主节点的代理,负责pod容器的创建,启动,停止服务 默认情况下kubelet会向master注册自己,kubelet定期向主机节点汇报加入集群的Node的各类信息 Kube-proxy->kubernets services使用其将链路路由到Pod,作为外部负载均衡器使用,在一定数量的Pod之间均衡流量 Docker->kubernets使用容器技术来创建容器 Kubernetes主要由以下几个核心组件组成: etcd保存了整个集群的状态; apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上; kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI