内存映射

mybatis的第一个demo(day01)

*爱你&永不变心* 提交于 2019-11-27 22:24:47
   第一个demo快速实现实现 准备一个domain(Product)(与数据库的字段对应) package cn.itsource.domain;public class Product { private Long id; private String productName; //产品名称 private Double salePrice; //价格 private String supplier; //供应商 private String brand; //品牌 private Double cutoff; //折扣 private Double costPrice; //售价 // private Long dir_id; //类型id //这个名称和表中的名称对应不上了 private Long dir_id; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getProductName() { return productName; } public void setProductName(String productName) { this.productName = productName; } public Double

mybatis的第一个demo(day01)

a 夏天 提交于 2019-11-27 22:18:53
Mybatis是什么:MyBatis是一个 ORM 的数据库持久化 框架 Mybatis是一个支撑框架,它以映射sql语句orm方式来数据库持久化操作. 数据持久化就是将内存中的数据保存到数据库里面,分为磁盘持久化和数据库持久化 缺点,SQL语句写在Java代码里面,修改了SQL语句就必须要修改代码 Mybatis和JPA和JDBC的区别     a) Mybatis和JPA都是ORM映射框架,开发效率高,运行速度慢,     b) JDBC的开发效率慢,运行速度快,写很多重复代码 ORM(对象关系映射):为了解决面向对象与关系型数据库存在互不匹配的技术     a) ORM操作数据库的两种方式 i. Mybatis实现方式(SQL操作方式):将SQL语句写到配置文件里面 ii. 直接映射的是对象实体和数据库关系映射,不用写SQL,框架自动生成(JPA,hibernate方式) iii. 补充JPA,Hibernate,SpringDataJPA的关系     jpa:完整orm映射规范     hibernate:是整orm映射规范的一种实现.     DataJpa:对jpa的操作进行封装,让我们使用更加简单. Mybatis的简单入门实现     a) 准备mybatis的jar包和数据库的驱动包 i. 准备domain,dao层里面定义xml映射文件

Linux内存简单汇总

我的未来我决定 提交于 2019-11-27 18:48:21
Linux内存主要用来存储系统和应用程序的指令,数据,缓存等 一,内存映射 1,内核给每个进程提供一个独立的虚拟机地址空间,并且这个地址空间是连续的 2,虚拟地址空间内部又被分为内核空间和用户空间 3,32位和64位系统的虚拟地址空间 32 位系统的内核空间占用 1G,位于最高处,剩下的 3G 是用户空间。而 64 位系统的内核空间和用户空间都是 128T,分别占据整个内存空间的最高和最低处,剩下的中间部分是未定义的 4,进程在用户态时,只能访问用户空间内存;只有进入内核态后,才可以访问内核空间内存 5,只有实际使用的虚拟内存才会被分配物理内存,通过内存映射来管理 6, 内存映射 ,就是将虚拟内存地址映射到物理内存地址。为了完成内存映射,内核为每个进程都维护了一张 表,记录虚拟地址与物理地址的映射关系 7, 页表 存储在内存管理单元 [MMU]( https://blog.csdn.net/u010442934/article/details/79900449 ) 中 8,进程访问虚拟地址在页表中查不到时,系统会产生一个 缺页异常 9,TLB(Translation Lookaside Buffer,转译后备缓冲器)会影响 CPU 的内存访问性能 ,TLB是MMU中页表的高速缓存,。于进程的虚拟地址空间是独立的,而 TLB 的访问速度又比 MMU 快得多,所以

[转]老男孩读PCIe之六:配置和地址空间

我与影子孤独终老i 提交于 2019-11-27 13:03:49
转自: http://www.ssdfans.com 每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,PCIe设备的配置空间是协议规定好的,哪个地方放什么内容,都是有定义的。PCI或者PCI-X时代就有配置空间的概念,那时的配置空间如下: 整个配置空间就是一系列寄存器的集合,其中Type 0是Endpoint的配置,Type 1是Bridge(PCIe时代就是Switch)的配置,都由两部分组成:64 Bytes的Header+192Bytes的Capability结构,后者是设备告诉Host它有多牛逼,都会什么绝活。 进入PCIe时代,PCIe能耐更大,192 Bytes不足以罗列它的绝活。为了保持后向兼容,又要不把绝活落下,怎么办?很简单,我扩展后者的空间,整个配置空间由256 Bytes扩展成4KB,前面256 Bytes保持不变: PCIe有什么能耐(Capability)我们不看,我们先挑软柿子捏,先看看只占64 Bytes的Configuration Header。 像Device ID,Vendor ID,Class Code和Revision ID,是只读寄存器,PCIe设备通过这些寄存器告诉Host软件,这是哪个厂家的设备、设备ID是多少

所谓的持久层框架?ORM框架?以及Hibernate和Mybatis区别?

冷暖自知 提交于 2019-11-27 10:51:38
ORM框架? Object Relational Mapping,对象-关系映射。 项目中的业务实体有两种表现形式:对象和关系数据,即在内存中表现为对象,在数据库中表现为关系数据。 为什么需要ORM框架? ORM框架是对象关系映射,那为什么要映射mapping? 因为对象之间可以存在关联和继承关系,但是在数据库中,关系数据无法表达多对多关联和继承关系。(ps:在数据库原理中,会把逻辑上的多对多转换为多个一对关系才能实现)因此,对象和关系(业务实体的两种表现形式)想要映射正确,项目系统一般以中间件的形式,即持久层框架。 Hibernate? Hibernate是一个开源的对象关系映射框架。 它对jdbc进行了非常轻量级的对象封装,将pojo(普通的Java对象)与数据库表建立映射关系,是一个全自动的ORM框架,甚至自动生成SQL语句,自动执行。 因此,程序员可以随心所有地使用对象编程思维来操纵数据库。 Hibernate特点: Hibernate通过修改一个“持久化”对象的属性,从而修改数据库表中对应的记录数据 提供线程和进程两个级别的缓存提升应用程序性能 有丰富的映射方式将Java对象之间的关系(POJO)转换为数据库表之间的关系 屏蔽不同数据库实现之间的差异。在Hibernate中只需通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句

mmap

梦想与她 提交于 2019-11-27 10:25:44
mmap系统调用使得进程之间通过映射同一个普通文件实现共享内存,普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问 头文件 sys/mman.h void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); 作用: 参数说明: start:映射区的开始地址 length:映射区的长度 prot:期望的内存保护标志 —-PROT_EXEC //页内容可以被执行 —-PROT_READ //页内容可以被读取 —-PROT_WRITE //页可以被写入 —-PROT_NONE //页不可访问 flags:指定映射对象的类型 —-MAP_FIXED —-MAP_SHARED 与其它所有映射这个对象的进程共享映射空间 —-MAP_PRIVATE 建立一个写入时拷贝的私有映射。内存区域的写入不会影响到原文件 —-MAP_ANONYMOUS 匿名映射,映射区不与任何文件关联 fd:如果MAP_ANONYMOUS被设定,为了兼容问题,其值应为-1 offset:被映射对象内容的起点 来源: https://www.cnblogs.com/yangxingsha/p/11359429.html

framebuffer绘屏

北城余情 提交于 2019-11-27 10:21:56
通过framebuffer绘制屏幕上的每一个像素点: 1.打开framebuffer设备; 2.通过ioctl取得fixed screen information;(ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) 3.通过ioctl取得variable screen information;(ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) 4.通过mmap映射设备内存到进程空间;(记得区分内核空间和用户空间,用户空间是无法对物理内存直接读写的) 5.写framebuffer; 6.终止。(记得终止时一定要取消映射,并close掉句柄) 来源: https://www.cnblogs.com/yangxingsha/p/11359009.html

HBase篇(5)- BloomFilter

白昼怎懂夜的黑 提交于 2019-11-27 08:16:47
【每日五分钟搞定大数据】系列,HBase第五篇。上一篇我们落下了Bloom Filter,这次我们来聊聊这个东西。 Bloom Filter 是什么? 先简单的介绍下Bloom Filter(布隆过滤器)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 在计算机科学中,我们常常会碰到时间换空间或者空间换时间的情况,即为了达到某一个方面的最优而牺牲另一个方面。Bloom Filter在时间空间这两个因素之外又引入了另一个因素:错误率。在使用Bloom Filter判断一个元素是否属于某个集合时,会有一定的错误率。也就是说,有可能把不属于这个集合的元素误认为属于这个集合(False Positive),但不会把属于这个集合的元素误认为不属于这个集合(False Negative)。在增加了错误率这个因素之后,Bloom Filter通过允许少量的错误来节省大量的存储空间。简单地说就是宁可放过也不杀错。 它的用法其实是很容易理解的,我们拿个HBase中应用的例子来说下,我们已经知道rowKey存放在HFile中,那么为了从一系列的HFile中查询某个rowkey,我们就可以通过 Bloom Filter 快速判断 rowkey

数据结构下篇

偶尔善良 提交于 2019-11-27 07:23:40
4-3 集合 集合(set)是在ES6 中引入的一种数据结构,用于表示唯一值的集合,所以它不能包含重复值。接 下来这一小节,就让我们具体来看一下这种新的数据结构。 4-3-1 什么是集合 在ES6 标准制定以前,可选的数据结构类型有限,可以说只有数组这种数据结构。而数组使用的 又是数值型索引,因而经常被用于来模拟队列和栈的行为。但是如果需要使用非数值型索引,就 会用非数组对象创建所需的数据结构,而这就是 Set集合与后面一节要介绍的Map 映射的早期实 现。 Set集合是一种无重复元素的列表,这是这种数据结构的最大的一个特点。 4-3-2 创建集合 要创建一个集合,方法很简单,直接使用new就可以创建一个Set 对象。如果想要集合在创建时 就包含初始值,那么我们可以传入一个数组进去。 let s1 = new Set(); let s2 = new Set([1,2,3]); console.log(s1); //Set {} console.log(s2); //Set { 1, 2, 3 } 4-3-3 给集合添加值 使用add()方法可以给一个集合添加值,由于调用add()方法以后返回的又是一个Set 对象,所 以我们能连续调用 add() 方法进行值的添加,这种像链条一样的方法调用方式被称为链式调 用。 let s1 = new Set(); s1.add(1);

linux内存

两盒软妹~` 提交于 2019-11-27 05:27:25
1 内存寻址 1.1 物理地址、虚拟地址以及线性地址 物理地址: 物理内存的内存单元地址 虚拟地址: 程序员看到的内存空间定义未虚拟地址,intel X86 CPU寻址使用了段机制,最初的8086中有4个16位的段寄存器:CS、DS、SS、ES,分别用于存放可执行代码的代码段、数据段、堆栈段和其他段的基地址,解决了CPU数据总线16位寻址20位数据地址空间的问题。 虚拟地址一般用“段:偏移量”的形式来描述,比如在8086中A815:CF2D就代表段首地址为A815,段内偏移位为CF2D的虚地址。 线性地址: 是指一段连续的,不分段的,范围为0到4GB的地址空间,一个线性地址就是线性地址空间的一个绝对地址。 寻址模式有2种: 实模式: 是 段地址+偏移量 的方式,得到物理地址;如当程序执行“mov ax,[1024]”这样一条指令时,在8086的实模式下,把某一段寄存器(比如ds)左移4位,然后与16位的偏移量(1024)相加后被直接送到内存总线上,这个相加后的地址就是内存单元的物理地址,而程序中的地址(例如ds:1024)就叫虚拟地址 保护模式:不 允许通过段寄存器取值得到段的起始地址,而是把虚拟地址转进一个 MMU 的硬件,经过额外的转换和检查,进而得到一个物理地址,如下图所示: 保护模式下寻址 MMU是一种硬件电路,它包含两个部件,一个是分段部件,一个是分页部件