外存

CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介

為{幸葍}努か 提交于 2020-04-28 21:47:47
自我学习: 一.线程安全日期格式化操作的几种方式: 1.每次new一个新对象: public static Date parse(String date) throws ParseException { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date); } 2.通过ThreadLocal进行处理 private static final ThreadLocal<DateFormat> LOCAL_DATE_FORMAT = new ThreadLocal<DateFormat>(){ @Override protected DateFormat initialValue() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } } 3.java8 通过 DateTimeFormatter 进行处理: private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime dateTime = LocalDateTime.parse(date, DATE_TIME

ROM、RAM、CPU、CACHE、FLASH的区别

十年热恋 提交于 2020-04-28 21:46:24
内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。只不过因为RAM是其中最重要的存储器,所以通常所说的内存即指电脑系统中的RAM。 RAM要求每时每刻都不断地供电,否则数据会丢失。如果在关闭电源以后RAM中的数据也不丢失就好了,这样就可以在每一次开机时都保证电脑处于上一次关机的状态,而不必每次都重新启动电脑,重新打开应用程序了。但是RAM要求不断的电源供应,那有没有办法解决这个问题呢?随着技术的进步,人们想到了一个办法,即给RAM供应少量的电源保持RAM的数据不丢失,这就是电脑的休眠功能,特别在Win2000里这个功能得到了很好的应用,休眠时电源处于连接状态,但是耗费少量的电能。 硬盘与内存的区别是很大的,这里只谈最主要的三点: 一、内存是计算机的工作场所,硬盘用来存放暂时不用的信息。 二、内存是半导体材料制作,硬盘是磁性材料制作。 三、内存中的信息会随掉电而丢失,硬盘中的信息可以长久保存。内存与硬盘的联系也非常密切,这里只提一点:硬盘上的信息永远是暂时不用的,要用吗?请装入内存!CPU与硬盘不发生直接的数据交换,CPU只是通过控制信号指挥硬盘工作,硬盘上的信息只有在装入内存后才能被处理。 内存就是存储程序以及数据的地方,比如当我们在使用WPS处理文稿时,当你在键盘上敲入字符时,它就被存入内存中,当你选择存盘时

面试被问傻!5亿个数大文件怎么排序?

守給你的承諾、 提交于 2020-04-28 20:12:26
曾经被问傻的一道面试题分享给你: 给你1个文件 bigdata ,大小4663M,5亿个数,文件中的数据随机,如下一行一个整数: 6196302 3557681 6121580 2039345 2095006 1746773 7934312 2016371 7123302 8790171 2966901 ... 7005375 现在要对这个文件进行排序,怎么搞? 内部排序 先尝试内排,选2种排序方式: 3路快排: private final int cutoff = 8; public <T> void perform(Comparable<T>[] a) { perform(a,0,a.length - 1); } private <T> int median3(Comparable<T>[] a,int x,int y,int z) { if(lessThan(a[x],a[y])) { if(lessThan(a[y],a[z])) { return y; } else if(lessThan(a[x],a[z])) { return z; }else { return x; } }else { if(lessThan(a[z],a[y])){ return y; }else if(lessThan(a[z],a[x])) { return z; }else { return

存储器(RAM、ROM、硬盘和内存)

↘锁芯ラ 提交于 2020-04-28 18:57:01
RAM-随机存取存储器 ( random access memory)   计算机和手机中一般叫做(运行)内存。   高速存取,读写时间相等,且与地址无关,如计算机内存等。   通常用来存放操作系统,各种正在运行的软件、输入和输出数据、中间结果及与外存交换信息等。   速度快,运行程序在RAM中(而存放运行时不用的数据则在硬盘中),什么时候需要数据,便把数据从硬盘(外部存储器)中拿到内存。   手机中的RAM和电脑中的RAM的概念是相同的,RAM即内存越大,能同时在内存中执行的程序就越多,性能一般是越好的。   RAM断电会丢失数据,故主要用于存储短时间使用的程序。 ROM-只读存储器 ( Read-Only Memory)   断电后信息不丢失。   一般用它存储固定的系统软件和字库等,如计算机启动用的BIOS芯片。   存取速度很低,(较RAM而言)且不能改写(由于不能改写信息,不能升级,现已很少使用)。 硬盘   硬盘分为两种,一种是 机械硬盘(即磁盘HDD) ,一种是 固态硬盘(SSD)   磁盘和ROM没什么关系,但是固态硬盘就不一样了,固态硬盘用到的颗粒也是基于NAND FLASH技术,和u盘以及手机存储有点相似,所以说硬盘和ROM还是有关系的,固态硬盘是ROM技术发展的产物,但不能说ROM就是硬盘。 备注:   早期,乃至现在,我们的主要存储介质都是磁性存储

理解操作系统3——内存模型和地址空间

一世执手 提交于 2020-04-27 19:00:02
一、从分层存储器体系谈起 根据冯诺依曼计算机体系结构,计算机是以存储器为核心的。 分为 五大部件 :运算器、控制器、存储器、输入设备、输出设备。 存储器 又包括寄存器、内存; CPU 整合了寄存器、运算器、控制器; 输入输出设备统称I/O设备 (外部存储器即磁盘也属于I/O范畴); 内存(RAM)是计算机系统中重要的资源。内存属于掉电易失性。 经过整合一下,计算机大概分层这三大组件: CPU (还包括缓存Cache)、 内存、I/O设备 (磁盘属于I/O设备的一种); 操作系统是怎样对内存创建抽象模型并且怎样管理内存呢? 另外又不得不先提到一个概念 存储管理 。人们提出了 分层存储器体系 。 理想情况下,人们希望有这样一个存储器:私有的、容量无限大、速度无限快,并且是永久性掉电不易失的。 很遗憾目前没有这种的技术手段去实现这一目标。存储系统层次存储体系的提出就是解决这个矛盾的。 综合考虑了 容量、速度、成本 三大因素。 以存储器为核心的计算机系统结构当然希望存储器与运算器/控制器交换数据的速度越快越好,最好和运算器/控制器的运行速度一样快。 显然数据交换速度成了制约运行效率的重要因素 。 寄存器 的速度是最快的,然后是 缓存 的速度,再后面是 内存 ,最慢的是 磁盘 。速度一次递减; 但是越靠近CPU,速度越高,其成本越高,造价越高也就限制了容量的大小。 寄存器的容量最小

软件需求分析文档模版(转载自国家计算机标准和文件模板)

杀马特。学长 韩版系。学妹 提交于 2020-04-27 18:29:29
软件需求分析文档模版(转载自国家计算机标准和文件模板) 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 软件需求分析的任务是:深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。 需求分析可分为需求提出、需求描述及需求评审三个阶段。 需求提出主要集中于描述系统目的。需求提出和分析仅仅集中在使用者对系统的观点上。用户、开发人员和用户确定一个问题领域,并定义一个描述该问题的系统。这样的定义称作系统规格说明,并且它在用户和开发人员之间充当合同。 在问题分析阶段分析人员的主要任务是:对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。分析人员要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。 在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的完整、准确

操作系统详解

二次信任 提交于 2020-04-27 11:18:00
一 为什么要有操作系统 ( 两本书:现代操作系统、操作系统原理,学好python以后再去研究吧~~)   现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。   一般而言,现代计算机系统是一个复杂的系统。   其一:如果每位应用程序员都必须掌握该系统所有的细节,那就不可能再编写代码了(严重影响了程序员的开发效率:全部掌握这些细节可能需要一万年....)   其二:并且管理这些部件并加以优化使用,是一件极富挑战性的工作,于是,计算安装了一层软件(系统软件),称为操作系统。它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理刚才提到的所有设备。 总结:   程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用操作系统提供的功能来间接使用硬件。 二 什么是操作系统   精简的说的话,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统所处的位置如图1 #操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态

【Oracle】优化器基础知识之访问数据的方法

喜夏-厌秋 提交于 2020-04-23 14:29:20
目录 1、直接访问表 1.1 全表扫描 1.2 ROWID扫描 1.2.1 直接通过ROWID查询 1.2.2 先访问索引后根据ROWDID查表 1.2.1.1 索引唯一性扫描 1.2.1.2 索引范围扫描 1.2.1.3 索引全扫描 1.2.1.4 索引快速扫描 1.2.1.5 索引跳跃式扫描 对于优化器而言,他在解析目标SQL,得到执行计划时至关重要的一点是决定访问数据的方法。 Oracle访问表中数据有两种方法: 直接访问表 先访问索引,再回表 如果目标SQL通过访问索引就能得到所需要的数据,那么就不需要再回表了。 1、直接访问表 Oracle数据库直接访问表中数据的方法有2种: 全表扫描 ROWID扫描 1.1 全表扫描 全表扫描是指Oracle在访问目标表里的数据时,会从该表所占的第一个区(EXTENT)的第一个块(BLOCK)开始扫描,一直扫描到该表的高水位线(HWM,High Water Mark),这段范围内所有的数据块Oracle都必须读到。当然,Oracle会对这期间所读到的数据施加目标SQL的WHERE条件中指定的过滤条件,最后返回满足过滤条件的数据。 数据量小的时候,全表扫描效率是很高的。但是全表扫最大的问题在于走全表扫描的目标SQL的执行时间会不稳定,不可控,这个执行时间一定会随着目标表数据量的递增而递增。 随着目标表的数据量的递增

Python——详解__slots__,property和私有方法

☆樱花仙子☆ 提交于 2020-04-23 04:45:59
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 Python专题的第11篇 文章,我们来聊聊面向对象的一些进阶使用。 __slots__ 如果你看过github当中一些大牛的代码,你会发现很多大牛经常在类的顶部加上__slots__关键字。如果你足够好奇,你可能会试着把这个关键字去掉再运行试试,你会发现去掉了之后什么也没有发生,一切依然运行得很好。 那么这个__slots__关键字究竟是做什么的呢? 它主要有两个功能,我们先来说第一个功能,就是 限制用户的使用 。 我们都知道Python是一门非常灵活的 动态语言 ,很多在其他语言看起来完全不能容忍的事情在Python当中是可行的,这也是Python的设计理念,为了灵活和代码方便牺牲了效率。比如我们来看一个很简单的例子,由于Python是动态语言,所以类的成员甚至可以在类创建好了之后动态创建。这在静态语言当中是绝对不行的,我们只能调用类当中已有的属性,是 不能或者很难 添加新属性的。 比如这段代码: class Exp : def __init__ (self) : self.a = None self.b = None if __name__ == "__main__" : exp = Exp() exp.c = 3 print(exp.c) 我们定义了一个类叫做Exp,我们为它创建了a和b两个成员

编程语言及计算机硬件基础

我的梦境 提交于 2020-04-20 20:44:28
1、什么是编程语言? 程序员与计算机沟通的介质 2、什么是编程? 程序员基于某种编程语言的语法格式将想让计算机所做的事写到文件中让计算机执行,编程的结果就是文件,文件的内容就是程序; 3、为什么要编程? 让计算机代替人类工作,解放人力 4,、计算机硬件基础 (1)、什么是x86-64位? x86是cpu最早的架构,这个cpu在单位时间内可以处理字长位64位的二进制数据 (2)、常用储存器 分为内存(内存条)和外存(磁盘): 内存优点:存取速度快,缺点:内存小,断电时数据容易丢失 外存优点:断电不会丢失数据,永久保存,容量大 缺点:存取速度慢 (各储存器读取速度排名:寄存器》高速缓存》内存》磁盘》磁带) (3)、储存单位转换器 一个二进制位是1bit 8bit=1Bytes 1024Bytes = 1KB 1024KB = 1MB 1o24MB = 1TB (4)、调用磁盘数据时间 对于磁盘来说,寻找到数据的总时间=平均寻道(5ms)+平均延迟时间(7200转的磁盘该值等于4ms) 以7200转/分钟为例: 每秒(7200除以60等于120)转,每转一圈所用时间(1除以120约等于8ms),取平均值, 自转平均延迟时间4秒 总结: 计算机的三大核心组件,以及它们的功能? 1、cpu :由运算器和控制器组成,运算器用来主要负责程序运算与逻辑判断, 控制器则主要协调各组件和各单元的工作