对象存储

jvm体系结构

不羁岁月 提交于 2019-12-02 13:36:26
JVM 位置 jvm体系结构图 类装载器ClassLoader ​ 负责加载class文件,class文件在文件开头有特定的文件标示,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定 类装载器ClassLoader分类 虚拟机自带的加载器 启动类加载器(Bootstrap)C++ 扩展类加载器(Extension)Java 应用程序类加载器(AppClassLoader)Java 也叫系统类加载器,加载当前应用的classpath的所有类 用户自定义加载器 Java.lang.ClassLoader的子类,用户可以定制类的加载方式 Execution Engine 执行引擎负责解释命令,提交操作系统执行 Native Interface 本地接口 本地接口的作用是融合不同的编程语言为 Java 所用 Native Method Stack 它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库。 PC 寄存器 ​ 每个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,也即将要执行的指令代码),由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记。 方法区

浏览器存储对象使用与对比

╄→尐↘猪︶ㄣ 提交于 2019-12-02 12:20:35
在浏览器中,我们常见到的存储对象,分别有localStorage,sessionStorage,cookie。这三者同样能在浏览器中存储数据,但是也存在着各自的特点,在不同的场景中运用。 首先是localStorage和sessionStorage,这两者比较相近 通用的API localStorage和sessionStorage有很多通用的API 以localStorage为例 setItem() 该方法传入两个参数,第一个参数表示传进去的值要存储在哪个属性名上,第二个参数表示要传进去的值 如果传入了第一个参数为对象里面原有的属性,那就会覆盖原来的值 当使用该方法传入一个对象时,因为localStorage目前只支持传入字符串,所以传入的内容会变为 "[object Object]" 除了这种方法之外,也可以使用点运算符来设置,当然也可以通过ES6中的方括号的写法来设置 window . localStorage . text = 'content' let t = 'text' window . localStorage [ t ] = 'content' getItem() 该方法传入一个参数,表示要获取的值对应的属性名 removeItem() 该方法传入一个参数,表示要删除的值对应的属性名 clear() clear方法用于清空localStorage对象里面的属性

java基础知识和面试

好久不见. 提交于 2019-12-02 05:43:44
1、什么是自动拆箱和装箱问题 基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 一般我们要创建一个类的对象实例的时候,我们会这样: Class a = new Class(parameter); 当我们创建一个Integer对象时,却可以这样: Integer i = 100; (注意:不是 int i = 100; ) 实际上,执行上面那句代码的时候,系统为我们执行了:Integer i = Integer.valueOf(100); 此即基本数据类型的自动装箱功能。 2、基本数据类型与对象的差别 基本数据类型不是对象,也就是使用int、double、boolean等定义的变量、常量。 基本数据类型没有可调用的方法。 eg: int t = 1; t. 后面是没有方法滴。 Integer t =1; t. 后面就有很多方法可让你调用了。 3、什么时候自动装箱 例如:Integer i = 100; 相当于编译器自动为您作以下的语法编译:Integer i = Integer.valueOf(100); 4、什么时候自动拆箱   自动拆箱(unboxing),也就是将对象中的基本数据从对象中自动取出。如下可实现自动拆箱: 1 Integer i = 10; //装箱 2 int t = i; //拆箱,实际上执行了 int

Java面试汇总

喜你入骨 提交于 2019-12-02 05:32:30
首先,感谢这篇文章的作者分享! 本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM ,如下图所示: 共包含 208 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。 Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。 2. == 和 equals 的区别是什么? == 解读 对于基本类型和引用类型 == 的作用效果是不同的,如下所示: 基本类型:比较的是值是否相同; 引用类型

HashMap的工作原理

泄露秘密 提交于 2019-12-02 05:21:43
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道 Hashtable和HashMap之间的区别 ,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入让这道题变得更加复杂。让我们开始探索的旅程吧! 先来些简单的问题 “你用过HashMap吗?” “什么是HashMap?你为什么用到它?” 几乎每个人都会回答“是的”,然后回答HashMap的一些特性,譬如HashMap可以接受null键值和值,而Hashtable则不能;HashMap是非synchronized;HashMap很快;以及HashMap储存的是键值对等等。这显示出你已经用过HashMap,而且对它相当的熟悉。但是面试官来个急转直下,从此刻开始问出一些刁钻的问题,关于HashMap的更多基础的细节。面试官可能会问出下面的问题: “你知道HashMap的工作原理吗?” “你知道HashMap的get()方法的工作原理吗?” 你也许会回答“我没有详查标准的Java API,你可以看看Java源代码或者Open JDK。”“我可以用Google找到答案。”

块存储、文件存储、对象存储意义及差异

删除回忆录丶 提交于 2019-12-02 02:44:45
关于块存储、文件存储、对象存储方面的知识在知乎上看到了个很好的解答:https://www.zhihu.com/question/21536660 通俗易懂,查了些资料做了详细的补充。 块存储 典型设备:磁盘阵列、硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的。 就是说例如:磁盘阵列里面有5块硬盘,然后可以通过划逻辑盘、做Raid、或者LVM等方式逻辑划分出N个逻辑的硬盘。但是逻辑盘和物理盘是两个完全不同的概念。假设每个硬盘100G,共有5个硬盘,划分为逻辑盘也为5个,每个100G,但是这5个逻辑盘和原来的5个物理盘意义完全不同了。例如第一个逻辑盘第一个20G可能来自物理盘1,第二个20G来自物理盘2,所以逻辑盘是多个物理盘逻辑虚构出来的硬盘。 接着块存储会采用映射的方式将这几个逻辑盘映射给主机,主机上面的操作系统会识别到有5块硬盘,但是操作系统是无法区分到底是物理盘还是逻辑盘,它一概就认为只是5块裸的物理硬盘而已,跟直接拿一块物理硬盘挂载到操作系统没区别,至少操作系统感知上没有区别的。 在此方式下,操作系统还需要对挂载的裸硬盘进行分区、格式化后,才能使用,与平常主机内置的硬盘无差异。 优点 (1)这种方式的好处当然是因为通过了Raid与LVM等手段,对数据提供了保护; (2)可以将多块廉价的硬盘组合起来,称为一个大容量的逻辑盘对外提供服务,提高了容量; (3)写入数据时

JavaSE学习笔记:集合框架、迭代器、泛型

穿精又带淫゛_ 提交于 2019-12-02 00:47:22
文章目录 一、集合框架概述 1.Collection和Map 2.Collection集合 3.Collection集合常用方法 二、迭代器 1.常用方法 2.如何获取迭代器 3.使用步骤(掌握) 4.使用实例 5.迭代器使用原理 三、增强型for循环(更常用) 1.简介 2.使用实例 3.注意点 四、泛型 1.泛型的概念 2.使用泛型的好处 2.1使用集合对象,不使用泛型会带来的问题 2.1.1实例 2.1.2注意点 2.2使用集合使用泛型 2.2.1实例 2.2.2注意点 3.定义和使用含有泛型的类 4.定义和使用含有泛型的方法 4.1定义方法 4.2实例 5.定义和使用含有泛型的接口 5.1第一种使用方式 5.2第二种使用方式 6.泛型通配符 6.1基本使用:只能作为方法的参数使用 6.2不能创建对象使用 6.3泛型的上限限定和下限限定(了解) 6.3.1上限 6.3.2下限 五、List集合 1、List接口的三大特点 2.List接口中带索引的方法(独有) 2.1方法使用实例 3.注意:操作索引的时候,一定要防止索引越界异常 4.ArrayList实现类 5.LinkedList实现类 5.1特点 5.2特有方法 5.3使用实例 6.Vector(了解) 六、Set集合 1.特点 2.HashSet(常用来去重) 2.1特点 2.2使用实例 3.哈希值 3

JavaSE学习笔记--集合框架

女生的网名这么多〃 提交于 2019-12-02 00:44:20
//集合与数组的区别:集合不定长度,数组定长;集合只存储对象,数组什么都可以存。 //集合框架内不同的集合依据其内部不同的数据结构进行区分 Iterable//(接口)(内部有返回迭代器的方法) |--Collection //(接口)单列集合。方法:添加;删除;判断;获取(迭代器)。Itertor定义在Collection内部(Itertor是个内部类) //迭代器与枚举的区别:(1)迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素;(2)方法名称得到了改进。 |--List //(接口)有序的(存取顺序一致);元素可重复;元素有角标;有ListIterator列表迭代器。 //方法:添加;删除;判断;获取;修改;listItertor(获取列表迭代器,列表迭代器在Itertor上增加了新功能)。注意:使用迭代器容易出现并发修改异常 |--ArrayList //底层数据结构为数组;查询快。不同步,不安全;可变长度数组(以50%的速度增长:*3/2+1);多了个枚举(过时了,不用) |--Vector //底层数据结构为数组;支持枚举;效率低被ArrayList取代;同步,安全;可变长度数组(以100%的速度增长) |--LinkedList //底层数据结构为链表;增删快。不同步,不安全 |--Set //(接口)无序的;元素不可重复

Redis 系列(02)数据结构

Deadly 提交于 2019-12-02 00:10:28
目录 Redis 系列(02)数据结构 Redis 系列目录 1. String 1.1 基本操作 1.2 数据结构 1.3 Redis数据存储结构 2. Hash 2.1 基本操作 2.2 数据结构 3. List 3.1 基本操作 3.2 数据结构 4. Set 4.1 基本操作 4.2 数据结构 5. Sorted Set 5.1 基本操作 5.2 数据结构 6. hyperloglogs 7. geospatial 8. 总结 Redis 系列(02)数据结构 Redis 系列目录 1. String 1.1 基本操作 mset str 2673 jack 666 setnx str incr str incrby str 100 decr str decrby str 100 set f 2.6 incrbyfloat f 7.3 mget str jack strlen str append str good getrange str 0 8 1.2 数据结构 String 字符串类型的内部编码有三种: int,存储8个字节的长整型(long,2^63-1)。 embstr SDS(Simple Dynamic String),存储小于44 个字节的字符串。。 raw SDS,存储大于 44 个字节的字符串。 数据结构示例: 127.0.0.1:6379> set k1

React 面试问题

北慕城南 提交于 2019-12-01 23:46:52
eact 面试问题 如果你是一位有理想的前端开发人员,并且正在准备面试,那么这篇文章就是为你准备的。本文收集了 React 面试中最常见的 50 大问题,这是一份理想的指南,让你为 React 相关的面试做好充分的准备工作。首先我们快速了解一下 React 在市场上的需求和现状,然后再开始讨论 React 面试问题。 JavaScript 工具的市场地位正在缓慢而稳定地上升当中,而对 React 认证的需求正在飞速增长。选择正确的技术来开发应用程序或网站变得愈加艰难。React 被认为是 Javascript 语言中增长最快的框架。 虚拟 DOM 和可复用部件等独特特性吸引了前端开发人员的注意。尽管成熟的框架(如 Angular、Meteor 和 Vue 等)在 MVC(模型 - 视图 - 控制器)中只是一个“视图”库,但它们都有很强的竞争力。下图显示了常见 JS 框架的趋势: 以下是面试官最有可能提出的 50 个面试问题和答案。 React 面试问题——常规知识 真实 DOM 和虚拟 DOM 的区别 真实 DOM 虚拟 DOM 1.更新较慢 1.更新较快 2.可以直接更新 HTML 2.不能直接更新 HTML 3.元素更新时创建一个新 DOM 3.元素更新时更新 JSX 4.DOM 操作开销较大 4.DOM 操作非常容易 5.内存浪费严重 5.没有内存浪费 什么是 React?