内存映射

V4L2编程初体验

有些话、适合烂在心里 提交于 2020-01-28 08:20:10
内容摘要: Video for Linux two(Video4Linux2)简称V4L2,是V4L的改进版。V4L2是linux操作系统下用于采集图片、视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。在远程会议、可视电话、视频监控系统和嵌入式多媒体终端中都有广泛的应用。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video2下。 最近想做智能机器人,想加上视频采集这个模块,于是对linux下的视频方面的编程产生了兴趣,首先从入门开始吧! 一、Video for Linux Tow 在Linux下,所有外设都被看成一种特殊的文件,成为“设备文件”,可以象访问普通文件一样对其进行读写。一般来说,采用V4L2驱动的摄像头设备文件是/dev/v4l/video0。为了通用,可以建立一个到/dev/video0的链接。V4L2支持两种方式来采集图像:内存映射方式(mmap)和直接读取方式(read)。V4L2在include/linux/videodev.h文件中定义了一些重要的数据结构,在采集图像的过程中,就是通过对这些数据的操作来获得最终的图像数据。Linux系统V4L2的能力可在Linux内核编译阶段配置,默认情况下都有此开发接口。V4L2从Linux 2.5.x版本的内核中开始出现。

Java中Map的使用

烂漫一生 提交于 2020-01-28 04:31:15
Map以按键/数值对的形式存储数据,和数组很类似,在数组中存在的索引,它们本身也是对象。 Map的接口 Map---实现Map Map.Entry--Map的内部类,描写叙述Map中的按键/数值对。 SortedMap---扩展Map,使按键保持升序排列 关于怎么使用,通常是选择Map的子类,而不直接用Map类。 以下以HashMap为例。 public static void main(String args[]) { HashMap hashmap = new HashMap(); hashmap.put("Item0", "Value0"); hashmap.put("Item1", "Value1"); hashmap.put("Item2", "Value2"); hashmap.put("Item3", "Value3"); Set set = hashmap.entrySet(); Iterator iterator = set.iterator(); while (iterator.hasNext() { Map.Entry mapentry = (Map.Entry) iterator.next(); System.out.println(mapentry.getkey() + "/" + mapentry.getValue()); } } 注意

Java中Map的使用

那年仲夏 提交于 2020-01-27 11:38:58
Map以按键/数值对的形式存储数据,和数组很类似,在数组中存在的索引,它们本身也是对象。 Map的接口 Map---实现Map Map.Entry--Map的内部类,描写叙述Map中的按键/数值对。 SortedMap---扩展Map,使按键保持升序排列 关于怎么使用,通常是选择Map的子类,而不直接用Map类。 以下以HashMap为例。 public static void main(String args[]) { HashMap hashmap = new HashMap(); hashmap.put("Item0", "Value0"); hashmap.put("Item1", "Value1"); hashmap.put("Item2", "Value2"); hashmap.put("Item3", "Value3"); Set set = hashmap.entrySet(); Iterator iterator = set.iterator(); while (iterator.hasNext() { Map.Entry mapentry = (Map.Entry) iterator.next(); System.out.println(mapentry.getkey() + "/" + mapentry.getValue()); } } 注意

Java中Map的使用

空扰寡人 提交于 2020-01-26 23:16:44
Map以按键/数值对的形式存储数据,和数组很类似,在数组中存在的索引,它们本身也是对象。 Map的接口 Map---实现Map Map.Entry--Map的内部类,描写叙述Map中的按键/数值对。 SortedMap---扩展Map,使按键保持升序排列 关于怎么使用,通常是选择Map的子类,而不直接用Map类。 以下以HashMap为例。 public static void main(String args[]) { HashMap hashmap = new HashMap(); hashmap.put("Item0", "Value0"); hashmap.put("Item1", "Value1"); hashmap.put("Item2", "Value2"); hashmap.put("Item3", "Value3"); Set set = hashmap.entrySet(); Iterator iterator = set.iterator(); while (iterator.hasNext() { Map.Entry mapentry = (Map.Entry) iterator.next(); System.out.println(mapentry.getkey() + "/" + mapentry.getValue()); } } 注意

计算机缓存Cache以及Cache Line详解

谁说胖子不能爱 提交于 2020-01-26 06:22:24
目录 1、计算机存储体系简介 2、计算机缓存 Cache 2.1、Cache 概述 2.2、Cache 结构 3、计算机缓存行 ChaceLine 1、计算机存储体系简介 存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小。寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级,有L1,L2等缓存),再次是主存(普通内存),再次是本地磁盘。 寄存器的速度最快,可以在一个时钟周期内访问,其次是高速缓存,可以在几个时钟周期内访问,普通内存可以在几十个或几百个时钟周期内访问。 存储器分级,利用的是局部性原理。我们可以以经典的阅读书籍为例。我在读的书,捧在手里(寄存器),我最近频繁阅读的书,放在书桌上(缓存),随时取来读。当然书桌上只能放有限几本书。我更多的书在书架上(内存)。如果书架上没有的书,就去图书馆(磁盘)。我要读的书如果手里没有,那么去书桌上找,如果书桌上没有,去书架上找,如果书架上没有去图书馆去找。可以对应寄存器没有,则从缓存中取,缓存中没有,则从内存中取到缓存,如果内存中没有,则先从磁盘读入内存,再读入缓存,再读入寄存器。 2、计算机缓存 Cache 本系列的文章重点介绍缓存cache。了解如何获取cache的参数,了解缓存的组织结构。 2.1、Cache 概述 cache,中译名高速缓冲存储器

Java中Map的使用

六眼飞鱼酱① 提交于 2020-01-26 01:46:32
Map以按键/数值对的形式存储数据,和数组很类似,在数组中存在的索引,它们本身也是对象。 Map的接口 Map---实现Map Map.Entry--Map的内部类,描写叙述Map中的按键/数值对。 SortedMap---扩展Map,使按键保持升序排列 关于怎么使用,通常是选择Map的子类,而不直接用Map类。 以下以HashMap为例。 public static void main(String args[]) { HashMap hashmap = new HashMap(); hashmap.put("Item0", "Value0"); hashmap.put("Item1", "Value1"); hashmap.put("Item2", "Value2"); hashmap.put("Item3", "Value3"); Set set = hashmap.entrySet(); Iterator iterator = set.iterator(); while (iterator.hasNext() { Map.Entry mapentry = (Map.Entry) iterator.next(); System.out.println(mapentry.getkey() + "/" + mapentry.getValue()); } } 注意

mybatis 第一个项目

谁说我不能喝 提交于 2020-01-25 01:21:01
首先先了解一下mybatis的概念和架构 概念 先了解ORM(Object/Relational Mapping),即对象关系映射,它用来完成面向对象编程语言到关系数据库的映射。简单来说ORM的作用就是将持久化对象的增删改查操作转换成对关系数据库的操作。 ORM的基本映射关系: 数据表映射 数据表的行(一行单表一个数据)映射对象(实例) 数据表的列(字段)映射对象的属性 mybatis本来是apache的开源项目ibatis,后来移植到google code,并更名为现在的名字mybatis。 mybatis的优点: 支持定制化SQL,存储过程,以及高级映射。 避免JDBC代码,以及配置。 对结果集进行封装。 可以使用注解,将接口和java中的pojo映射成数据库中的记录。 mybatis的思想:将程序中大量的sql语句抽离出来,在配置文件中配置,以实现sql的灵活。 mybatis并不是一个完成的ORM框架,他可以通过编写sql,使得访问数据库更加灵活。准确的说是半自动化的ORM框架,是一种sql mapping框架。 架构 mybatis的架构分为三层: 接口层:提供给开发人员的API接口,通过这些API来操作数据库。 数据处理层:完成一次数据库请求,只要的流程是sql查找、sql解析、sql执行,以及对结果集的处理。 基础支撑层:负责最底层的东西,也是公用的东西,包括连接管理

MyBatis映射文件UserMapper.xml(mysql环境)

元气小坏坏 提交于 2020-01-24 13:44:58
引言 Mybatis的真正强大,在于她对SQL的映射,这也是她吸引人的地方。实现相同的功能,她要比直接使用JDBC省去95%的代码量。而且将SQL语句独立在Java代码之外,为程序的修改和纠错提供了更大的灵活性,可以直接修改SQL语句,而无需重新编译Java程序。 SQL映射文件也是XML格式,其顶级元素有以下几个: select - 映射sql查询语句 insert - 映射sql插入语句 update - 映射sql更新语句 delete - 映射sql删除语句 sql - 就像程序中可以复用的函数一样,这个元素下放置可以被其他语句重复引用的sql语句 resultMap - 用来描述如何从数据库查询结果集中来加载对象 cache - 给定命名空间的缓存配置 cache-ref - 其他命名空间缓存配置引用 1.mapper配置xml文件和接口关联。 1 <!--namespace务必和接口的全类名一致 --> 2 <mapper namespace="cn.bdqn.li.UserMapper"> 2.resultMap映射。存在条件:当数据库字段名和实体类中的属性名不同的情况下。 1 <!--字段名和属性名不同时,使用resultMap映射--> 2 <resultMap id="userMap" type="User"> 3 <id property="id"

[转帖]Mybatis十八连环问!这谁顶得住?

落花浮王杯 提交于 2020-01-24 01:24:04
Mybatis十八连环问!这谁顶得住? http://www.itpub.net/2020/01/19/5130/ 1、#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()。 2、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签? 答:还有很多其他的标签,<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态sql的9个标签,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中<sql>为sql片段标签,通过<include>标签引入sql片段,<selectKey

115网盘怎么搜索资源

孤者浪人 提交于 2020-01-23 21:51:43
1、啥是 MyBatis? MyBatis 是一个半自动 ORM 持久层框架,她内部对 JDBC 做了封装,并使用 XML 或注解来配置和映射数据库信息,开发人员只需要关注 SQL 语句本身,避免了处理繁琐的数据库映射过程,使 Java 代码和 SQL 完全分离,有利于分层开发,提高开发效率和灵活性。 2、MyBatis 的优缺点和适用场景? 1)优点 基于SQL语句编程,非常灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除SQL与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。 与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接; 很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。 能够与Spring很好的集成; 提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。 2)缺点 SQL语句的编写工作量较大,尤其当字段多、关联表多时。 不支持方言,数据库移植性差。 SQL存在XML文件中,调试不方便。 对动态SQL的支持不是很好,提供的标签过于简单。 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。 3)适用场景 MyBatis 解耦了 SQL 和 程序代码