对象存储

20.2合集

戏子无情 提交于 2019-12-06 16:22:47
要点提示: Collection接口为线性表、向量、栈、队列,优先队列以及集合定义了共同的操作。   java合集框架支持以下两种类型的容器:     一种是为了存储一个元素 合集,简称为合集(collection);     另一种是为了存储键值对,称为映射表(map)   映射表是一个用于使用一个键(key)快速搜索一个元素的高效数据结构。 Set用于存储一组不重复的元素 List用于存储一个有序元素合集 Stack用于存储采用后进先出方式处理的对象 Queue用于存储采用先进先出方式处理的对象 Priority Queue用于存储按照优先级顺序处理的对象。 来源: https://www.cnblogs.com/cglib/p/11993865.html

Java内存结构

南楼画角 提交于 2019-12-06 15:45:45
转载: 原文链接: https://blog.csdn.net/qq906627950/article/details/81324825 1、运行时数据区 JVM所管理的内存包括以下几个运行时数据区域,如图所示 方法区和堆为线程共享区,虚拟机栈、本地方法栈及程序计数器为线程独占区。 程序计数器 程序计数器是一块较小的空间,它可以看作是当前线程所执行的字节码的行号指示器。 如果线程执行的是java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址(可以理解为上图所示的行号),如果正在执行的是native方法,这个计数器的值为undefined。 JVM的多线程是通过线程轮流切换并分配CPU执行时间片的方式来实现的,任何一个时刻,一个CPU都只会执行一条线程中的指令。为了保证线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程间的程序计数器独立存储,互不影响。 此区域是唯一一个在java虚拟机规范中没有规定任何OutOfMemoryError情况的区域,因为程序计数器是由虚拟机内部维护的,不需要开发者进行操作。 虚拟机栈 每个线程有一个私有的栈,随着线程的创建而创建,生命周期与线程相同。 虚拟机栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表、操作数栈、动态链接、方法出口等信息。

Java内存结构

佐手、 提交于 2019-12-06 15:39:08
转载: 原文链接: https://blog.csdn.net/qq906627950/article/details/81324825 1、运行时数据区 JVM所管理的内存包括以下几个运行时数据区域,如图所示 方法区和堆为线程共享区,虚拟机栈、本地方法栈及程序计数器为线程独占区。 程序计数器 程序计数器是一块较小的空间,它可以看作是当前线程所执行的字节码的行号指示器。 如果线程执行的是java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址(可以理解为上图所示的行号),如果正在执行的是native方法,这个计数器的值为undefined。 JVM的多线程是通过线程轮流切换并分配CPU执行时间片的方式来实现的,任何一个时刻,一个CPU都只会执行一条线程中的指令。为了保证线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程间的程序计数器独立存储,互不影响。 此区域是唯一一个在java虚拟机规范中没有规定任何OutOfMemoryError情况的区域,因为程序计数器是由虚拟机内部维护的,不需要开发者进行操作。 虚拟机栈 每个线程有一个私有的栈,随着线程的创建而创建,生命周期与线程相同。 虚拟机栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表、操作数栈、动态链接、方法出口等信息。

最近整理的一些常见的面试题,面试大全,黑马程序员面试宝典题库---JavaSE基础篇

自闭症网瘾萝莉.ら 提交于 2019-12-06 12:55:57
JAVA语法(左侧扫描二维码,留言“黑马面试”,自动发原件给你) 1.抽象类(abstract class)和接口(interface)有什么异同? 不同: 抽象类: 1.抽象类中可以定义构造器 2.可以有抽象方法和具体方法 3.接口中的成员全都是 public 的 4.抽象类中可以定义成员变量 5.有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法 6.抽象类中可以包含静态方法 7.一个类只能继承一个抽象类 接口: 1.接口中不能定义构造器 2.方法全部都是抽象方法 3.抽象类中的成员可以是 private、默认、 protected、 public 4.接口中定义的成员变量实际上都是常量 5.接口中不能有静态方法 6.一个类可以实现多个接口 相同: 1.不能够实例化 2.可以将抽象类和接口类型作为引用类型 3.一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现, 否则该 类仍然需要被声明为抽象类 2.重载(overload )和重写(override )的区别。重载的方法能否根据返回类型进行区分? 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载; 重写发生在子类与父类之间

《浏览器工作原理与实践》 <12>栈空间和堆空间:数据是如何存储的?

帅比萌擦擦* 提交于 2019-12-06 12:36:37
对于前端开发者来说,JavaScript 的内存机制是一个不被经常提及的概念 ,因此很容易被忽视。特别是一些非计算机专业的同学,对内存机制可能没有非常清晰的认识,甚至有些同学根本就不知道 JavaScript 的内存机制是什么。 但是如果你想成为行业专家,并打造高性能前端应用,那么你就必须要 搞清楚 JavaScript 的内存机制 了。 其实,要搞清楚 JavaScript 的内存机制并不是一件很困难的事,在接下来的三篇文章(数据在内存中的存放、JavaScript 处理垃圾回收以及 V8 执行代码)中,我们将通过内存机制的介绍,循序渐进带你走进 JavaScript 内存的世界。 今天我们讲述第一部分的内容—— JavaScript 中的数据是如何存储在内存中的 。虽然 JavaScript 并不需要直接去管理内存,但是在实际项目中为了能避开一些不必要的坑,你还是需要了解数据在内存中的存储方式的。 让人疑惑的代码 首先,我们先看下面这两段代码: function foo(){ var a = 1 var b = a a = 2 console.log(a) console.log(b) } foo() function foo(){ var a = {name:"极客时间"} var b = a a.name = "极客邦" console.log(a) console.log

Java基础部分 2

荒凉一梦 提交于 2019-12-06 12:23:03
一 . Java 基础部分 2 1 、一个 ".java" 源文件中是否可以包括多个类(不是内部类)?有什么限制? 2 2 、 Java 有没有 goto? 2 3 、说说 & 和 && 的区别。 2 4 、在 JAVA 中如何跳出当前的多重嵌套循环? 2 5 、 switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上 ? 2 6 、 short s1 = 1; s1 = s1 + 1; 有什么错 ? short s1 = 1; s1 += 1; 有什么错 ? 2 7 、 char 型变量中能不能存贮一个中文汉字 ? 为什么 ? 2 8 、用最有效率的方法算出 2 乘以 8 等於几 ? 2 9 、请设计一个一百亿的计算器 2 10 、使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 2 11 、 "==" 和 equals 方法究竟有什么区别? 2 12 、静态变量和实例变量的区别? 2 13 、是否可以从一个 static 方法内部发出对非 static 方法的调用? 2 14 、 Integer 与 int 的区别 2 15 、 Math.round(11.5) 等於多少 ? Math.round(-11.5) 等於多少 ? 2 16 、下面的代码有什么不妥之处 ? 2 17 、请说出作用域 public

全面理解Java内存模型

不羁岁月 提交于 2019-12-06 10:44:53
------------恢复内容开始------------ 1. java内存模型即java Memory Model,简称JMM.JMM定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 2.并发编程有两个关键问题: 线程之间的通信和同步 。 3.线程之间的 通信 机制有两种: 共享内存和消息传递 。 1)在 共享内存 的并发模型里,线程之间共享程序的公共状态,线程之间通过写读内存中的公共状态来 隐式 进行通信,典型的共享内存通信方式就是通过共享对象进行通信。 2)在 消息传递 的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来 显式 进行通信,在Java中典型的消息传递方式是wait()和notify() 4.线程之间的 同步 是指程序用于控制不同线程之间操作发生相对顺序的机制。 1)在 共享内存 并发模型里,同步是 显式 进行的。必须显式指定某个方法或某段代码需要在线程之间互斥执行。 2)在 消息传递 的并发模型里,由于消息的发送必须在消息的接收之前,因此同步是 隐式 进行的。 5.Java的并发采用的是 共享内存模型 ,即Java内存模型(简称JMM), JMM决定一个线程对共享变量的写入合适对另一个线程可见 。从抽象的角度来看, JMM定义了线程和主内存之间的抽象关系

OSS 对象存储的那些事AmazonS3简单使用

无人久伴 提交于 2019-12-06 10:12:17
对象存储是根据AmazonS3来做的封装,主要功能 :文件的上传下载 生成链接 对图片的处理 查看桶内对象等一系列的操作。 本文主要做的是文件的上传下载生成链接以及前期的准备工作 以springboot项目为例。 首先先去开通官网开通对象存储服务,会给你 accessKey 和 secretKey 两个密钥, 请求的地址也会给你 也就是网址 然后在后台创建一个桶 或者也可以代码创建,记住桶的名字,这个桶的概念相当于创建了一块属于你的存储空间,可以向里面存储 也可以去找他们客服去要sdk 拿到jar包引入到springboot项目中 在src同级目录创建libs文件夹 点击设置 假如libs文件夹 配置pom <dependency> <groupId>speedycloud</groupId> <artifactId>speedycloud-sdk-mns</artifactId> <version>1.1.8</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/speedycloud-sdk-mns-1.1.8.jar</systemPath> </dependency> < build> < plugins> < plugin> < groupId>org

面试

最后都变了- 提交于 2019-12-06 09:09:25
面试 1、面试指导方针 在面试官问到技术的时候 是什么?有什么特点? what 为什么用它? why 在项目的哪一个地方用过? 使用的具体步骤?使用过程中问题总结? how 2、面试自我介绍之大套路 3、排序算法? 冒泡排序: 每次拿两个数进行比较,总是把小的放在最前面,大的放在最后面,第二次是第二个数和第三个数比较,如果第三个小于第二个,那么第三个和第二个替换位置,一次这样比较替换,第一轮循环完了呢,放在最后面的那个数就是这 一串数字中最大的数。第二轮循环和第一轮一样,第一个和第二个比较,最小的放在最前面,依次类推。如果有10个数字,那么就进行9次循环,最小的在最前面,最大的放在最后面。 好处呢,就是查询速度快 二分查找: 二分查找就是从一串数字中找到某个数字。 原理就是必须有一串数字是从小到大排序,把这串数字进行划分,分为三段,前半段,中止段,和中止后半段。查找数字或者字符先从中止段查找,查到的数字或者字符和中止正好相等,那么久直接取出来,如果比它大就从后半段查找,后半段在进行二分法,进行递归的调用查找,如果比中止小,走前面的中止段,在进行拆分,进行二分查找法。 4、说一下你对Spring的理解? 关于Spring的话,我们平时做项目一直都在用,不管是使用ssh还是使用ssm,都可以整合。Spring里面主要的就三点,也就是核心思想,DI,IOC,AOP。 DI就是依赖注入

06-集合框架

只谈情不闲聊 提交于 2019-12-06 06:34:09
集合框架 一、Collection集合 集合:Java中提供的一种容器,用来存储多个数据。Collection是单列集合类的根接口。 集合和数组的区别: 1.数组的长度是固定。集合的长度是可变的。 2.数组中存储的是同一类型元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以 不一致。 Collection常用功能 public boolean add(E e) : 把给定的对象添加到当前集合中 。 public void clear() :清空集合中所有的元素。 public boolean remove(E e) : 把给定的对象在当前集合中删除。 public boolean contains(E e) : 判断当前集合中是否包含给定的对象。 public boolean isEmpty() : 判断当前集合是否为空。 public int size() : 返回集合中元素的个数。 public Object[] toArray() : 把集合中的元素,存储到数组中。 Iterator迭代器 原理: ​ 首先通过调用t集合的iterator()方法获得迭代器对象,然后使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。 ​ Iterator迭代器对象在遍历集合时