对象存储

浏览器渲染简述

筅森魡賤 提交于 2019-11-26 10:19:43
singsong: 文本是自己看了一些不错资料整理出来的,对该知识点感兴趣的同学可以查看 参考文章 小节。 ✏️最新内容请以github上的为准❗️ 为什么要写这篇文章? 主要为 CSS 优化工作打一下基础。要编写高性能的网站和应用,除了确保编写的代码尽可能高效地运行外,还需要确保页面性能,刷新频率尽量到达 60FPS。这就需要了解浏览器是如何进行渲染的。而浏览器渲染与 CSS 密切相关,因此只有了解其中工作原理才能让 CSS 更好地工作。 另外,接下来会出一篇优化实战文章,会涉及 JavaScript 和 CSS 一些优化。其中关于 JavaScript 的优化之前已进行过介绍: 常见的 JavaScript 内存泄露 。本文是对 CSS 优化进行一个补充。 Contents 浏览器 DOM tree CSSOM tree RenderObject tree(也称为 Render tree) Layout(布局) RenderLayer tree Rendering(渲染方式) GrphicsLayer tree Tiled Rendering(瓦片渲染) High Performance Animations(流畅动画) 总结 参考文章 浏览器 用户界面(User Interface):包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗口显示的您请求的页面外

前端札记--存储对象

一笑奈何 提交于 2019-11-26 09:18:42
关于前端界面中存储:localStorage存储和sessionStorage存储   相关代码 1 <html> 2 <script> 3 if(!window.localStorage){ 4 alert("浏览器支持localstorage"); 5 }else{ 6 var storage=window.localStorage; 7 var data={ 8 name:'xiecanyong', 9 sex:'man', 10 hobby:'program' 11 }; 12 var d=JSON.stringify(data); 13 storage.setItem("data",d); 14 console.log(storage.data); 15 } 16 var storage=window.localStorage; 17 var data={ 18 name:'xiecanyong', 19 sex:'man', 20 hobby:'program' 21 }; 22 var d=JSON.stringify(data); 23 storage.setItem("data",d); 24 //将JSON字符串转换成为JSON对象输出 25 var json=storage.getItem("data"); 26 var jsonObj=JSON.parse

JVM集训-----内存结构

旧街凉风 提交于 2019-11-26 08:59:32
摘自: https://www.cnblogs.com/lowerma/p/11929041.html JVM集训-----内存结构 一、程序计数器/PC寄存器 ( Program Counter Registe )   用于 保存当前正在执行的程序的内存地址(下一条jvm指令的执行地址) ,由于Java是支持多线程执行的,所以程序执行的轨迹不可能一直都是线性执行。当有多个线程交叉执行时,被中断的线程的程序当前执行到哪条内存地址必然要保存下来,以便用于被中断的线程恢复执行时再按照被中断时的指令地址继续执行下去。为了线程切换后能恢复到正确的执行位置, 每个线程都需要有一个独立的程序计数器 ,各个线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存,是线程安全的。    特点:1.线程私有 2.不会存在内存溢出 二、虚拟机栈(Java Virtual Machine Stack)    虚拟机栈总是与线程关联在一起的, 每当创建一个线程,JVM就会为该线程创建对应的虚拟机栈 ,在这个 虚拟机栈中又会包含多个栈帧(Stack Frame) ,这些栈帧是与每个方法关联起来的, 每运行一个方法就创建一个栈帧 ,每个栈帧会含有一些局部变量、操作栈和方法返回值等信息。每当一个方法执行完成时,该栈帧就会弹出栈帧的元素作为这个方法的返回值,并且清除这个栈帧,

JAVA:集合泛型的思考

五迷三道 提交于 2019-11-26 05:59:37
JAVA中关于<? extends T> 和<? super T>的思考 传送门:[知乎问题] (https://www.zhihu.com/question/20400700) 思考的主要问题在于set/get在两种方式下的不同之处。 1 <? extends T>: 存放的:任何是T或者T的子类的对象。 <= T 可以get,反正这些对象最终都是T或者T的父类。 取出来时,只需要声明为>=T。 无法set,因为不知道到底装的什么类型,无法往里面存储数据(不知道要存储哪种子类类型)。 2 <? super T>: 存放的:任何是T或者T的父类的对象 。 >=T 可以set, 反正放一个T或者T的子类进去完全没问题。放进去任何一个<=T的都行。不能存储T的基类型,因为T基类有很多种,不能确定是存储哪一种,同时基类之间也不见得可以互相转化。 不能get(实际可以取,取出来是Object)。取得时候也不能确定具体是什么,但是,所有对象最终其实都是Object的子类,因此其实可以取出来,但是不建议用。 其实想明白一点:“子类一定是父类,父类不一定能转子类“”。 用图里的关系图做说明: extends fruit都是<=fruit的对象,因此肯定不能放>=fruit的对象(Food肯定不行呀,关系反了,fruit is a type of food);但是又不知道具体类型,所以也不能放 <

Lucene介绍与入门使用

跟風遠走 提交于 2019-11-26 03:14:12
Lucene介绍与入门使用   Lucene简介   Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。   那么先来说一说什么是全文搜索   说之前先说一说 数据的分类 :      我们生活中的数据总体分为两种:结构化数据和非结构化数据。     (1) 结构化数据 :指具有固定格式或有限长度的数据,如数据库,元数据等。     (2) 非结构化数据 :指不定长或无固定格式的数据,如邮件,word文档等磁盘上的文件   结构化数据查询方法   数据库搜索  

星云链智能合约开发(六):智能合约开发与部署

孤人 提交于 2019-11-26 02:34:13
编写智能合约 Nebulas实现了NVM虚拟机来运行智能合约,NVM的实现使用了JavaScript V8引擎,所以当前的开发版,我们可以使用JavaScript、TypeScript来编写智能合约。 编写智能合约的简要规范 智能合约代码必须是一个Prototype的对象; 智能合约代码必须有一个init()的方法,这个方法只会在部署的时候被执行一次; 智能合约里面的私有方法是以_开头的方法,私有方法不能被外部直接调用; 智能合约存储区 星云链智能合约(smart contract)提供了链上数据存储功能。类似于传统的key-value存储系统(eg:redis),可以付费(消耗gas)将数据存储到星云链上。 星云链的智能合约运行环境内置了存储对象 ==LocalContractStorage== ,可以存储数字,字符串,JavaScript对象,存储数据只能在智能合约内使用,其他合约不能读取存储的内容。 基础用法 LocalContractStorage的简单接口包括set,get,del接口,实现了存储,读取,删除数据功能。存储可以是数字,字符串,对象。 LocalContractStorage存储数据 // 存储数据,数据会被json序列化成字符串保存 LocalContractStorage.put(key, value); // 或者

谈谈Python实战数据可视化之matplotlib模块(实战篇)

吃可爱长大的小学妹 提交于 2019-11-26 02:05:41
前沿 通过上一篇 谈谈Python实战数据可视化之matplotlib模块(基础篇) 的学习,我们初步了解了matplotlib模块的pyplot基础,本节实战将利用CSV模块获取某地的天气数据,并且使用matplotlib模块将天气数据可视化。 配套资源 鉴于Python编程从入门到实战这本书的配套资源网上难找的悲伤,我深有体会。所以,在此提供链接供下载(有帮助点个赞支持下我哦(●'◡'●)): 百度云链接: https://pan.baidu.com/s/1-XE0pBS8IaDLoUBdO8hDOw 密码:n39g CSV文件格式 CSV - 逗号分隔值文件格式,逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。 例如: Country,Indicator,Year,Value AFG,NGDP_R,2002,183.26 AFG,NGDP_R,2003,198.736 AFG,NGDP_R,2004

关于2019的一些面试实战小结

天大地大妈咪最大 提交于 2019-11-26 01:51:19
今日头条屏幕适配的原理? 1:首先计算出 density,计算公式:当前设备屏幕总宽度(单位为像素)/ 设计图总宽度(单位为 dp) = densitydensity 的意思就是 1 dp 占当前设备多少像素计算density 的原因:在布局文件中填写的是什么单位,最后都会被转化为 px,系统就是通过上面的方法,将你在项目中任何地方填写的单位都转换为 px 但是,今日头条适配方案默认项目中只能以高或宽中的一个作为基准,来进行适配 简述Android中的加固和使用平台? 加固:防止代码反编译,提高代码安全性 加固三方平台,梆梆安全,360加固,爱加密等 区别:梆梆安全,360加固看不到项目中的类,爱加密看的到Java类,单看不到里面的方法实现体,效果比前面差一点点 加固的底层原理:第三方加固的应用会生成一个Apk,然后把你的APK读取出来,在封装到这个第三方应用的APK里面. 如何对APK瘦身? 1)使用混淆, 2)开启shrinkResourse(shrink-收缩),会将没有用到的图片变成一个像素点 3)删除无用的语言资源(删除国际化文件) 4)对于非透明的大图,使用JPG(没有透明度信息),代替PNG格式 5)使用tinypng进行图片压缩 6)使用webp图片格式,进一步压缩图片资源 7)使用第三方包时把用到的代码加到项目中来,避免引用整一个第三方库

集合

笑着哭i 提交于 2019-11-25 23:49:47
Java 集合 Collection 集合 1.1 集合概述 集合:集合是 java 中提供的一种容器,可以用来存储多个数据。 1.2 集合框架 JAVASE 提供了满足各种需求的 API,在使用这些 API 前,先了解其继承与接口操作架构,才 能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。 集合按照其存储结构可以分为两大类,分别是单列集合 java.util.Collection 和双列集合 java.util.Map Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的 子接口,分别是 java.util.List 和 java.util.Set。其中,List 的特点是元素有序、元素 可 重 复 。 Set 的 特 点 是 元 素 无 序 , 而 且 不 可 重 复 。 List 接 口 的 主 要 实 现 类 有 java.util.ArrayList 和 java.util.LinkedList , Set 接 口 的 主 要 实 现 类 有 java.util.HashSet 和 java.util.TreeSet。 1.3 Collection 常用功能 Collection 是所有单列集合的父接口,因此在 Collection 中定义了单列集合(List 和 Set) 通用的一些方法

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

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