- Linux驱动适配内核时,对于不同版本内核中有变化函数的适配方式
敬致知
LinuxLinux内核C/C++linux驱动开发
一、情景Linux驱动适配不同内核时,由于内核版本的不同,有些函数可能没有,或者在高版本中函数已经变化了,比如增删了一些参数。二、常规处理方案,根据内核版本判断一般情况我们处理方式是在使用这些函数时,通过宏来判断当前的内核版本,根据版本来决定怎么正确的使用函数,比如:#ifLINUX_VERSION_CODE=KERNEL_VERSION(5,12,0)&&LINUX_VERSION_CODE=K
- linux驱动程序设计8 Linux设备驱动中的阻塞与非阻塞I/O
oushaojun2
linuxlinux驱动
本章导读阻塞和非阻塞I/O是设备访问的两种不同模式,驱动程序可以灵活地支持这两种用户空间对设备的访问方式。8.1节讲述了阻塞和非阻塞I/O的区别,并讲解了实现阻塞I/O的等待队列机制,以及在globalfifo设备驱动中增加对阻塞I/O支持的方法,并进行了用户空间的验证。8.2节讲述了设备驱动轮询(Poll)操作的概念和编程方法,轮询可以帮助用户了解是否能对设备进行无阻塞访问。8.3节讲解在glo
- Linux驱动分析——I2C子系统
放羊娃
Linux
stm32mp157盘古开发板Linux内核版本4.19目录1、朱有鹏老师视频笔记2、I2C子系统的4个关键结构体3、关键文件4、i2c-core.c初步分析4.1、smbus代码略过4.2、模块加载和卸载:bus_register(&i2c_bus_type);在i2c-core-base.c中4.3、I2C总线的匹配机制4.3.1、match函数4.3.2、probe函数4.4、核心层开放给其
- 嵌入式面试:瑞芯微
EEer!
工作面试瑞芯微校招嵌入式笔试
文章目录一、2024秋招1.1IIC的速率范围:1.2linux驱动子系统汇总:1.3linux关抢占情况汇总:1.4操作或者读写一个文件时,从用户态到内核态再到物理介质的流程(考点:虚拟文件系统):一、2024秋招1.1IIC的速率范围:i2c的速率在100kbit/s--3.4Mbits之间标准模式:100kbit/s快速模式:400kbit/s1.2linux驱动子系统汇总:1.pinctr
- 树莓派基于rust编写linux驱动模块
ZechariahZheng
极客linux嵌入式rustlinux
最近一直在折腾rust编写linux驱动,这个是官方仓库。官方仓库提供了基本入门文档,也可以参考我之前的文章。网上也有一些,但是基本都是基于X86的。我这里提供一份基于嵌入式Linux的rust驱动编译模块模板:https://github.com/ZechariahZheng/rpi-linux-module-rust具体编译过程可以看项目中的README。更多的例程在官方仓库中的sample/
- 树莓派基于rust编写linux驱动模块
ZechariahZheng
linux嵌入式rustlinux
最近一直在折腾rust编写linux驱动,这个是官方仓库。官方仓库提供了基本入门文档,也可以参考我之前的文章。网上也有一些,但是基本都是基于X86的。我这里提供一份基于嵌入式Linux的rust驱动编译模块模板:https://github.com/ZechariahZheng/rpi-linux-module-rust具体编译过程可以看项目中的README。更多的例程在官方仓库中的sample/
- 【Linux驱动】块设备驱动(一)—— 注册块设备
仲夏夜之梦~
linux运维服务器
针对块设备驱动将分为两部分介绍,第一部分是注册块设备,即将块设备成功添加到内核;第二部分是介绍如何读写块设备,因为没有实际块设备,这里选择使用内存来模拟块设备。目录一、认识块设备1、什么是块设备2、块设备类型二、模拟设备创建三、注册块设备1、申请主设备号2、申请gendisk3、初始化请求队列4、初始化gendisk5、添加到内核四、补充:分配内存五、完整代码(待完善)一、认识块设备1、什么是块设
- 【Linux驱动】块设备驱动(二)—— 块设备读写(使用请求队列)
仲夏夜之梦~
linux运维服务器
块设备的操作函数并没有类似于字符驱动中的read和write函数,要实现读写操作,只能在请求处理函数中实现。这就分为两种,是否要使用请求队列,请求队列的主要作用是管理和调度IO请求。在以下情况中,一般需要用到请求队队列:多任务环境:多个任务同时对存储设备进行读写,请求队列可以对IO请求进行排序和调度磁盘优化:磁盘是一种机械设备,其IO操作需要进行磁盘寻道等操作,非常耗时,请求队列可以将多个IO请求
- 【Linux驱动】input 子系统
仲夏夜之梦~
linux运维服务器
前面在介绍中断时以按键为例,我们要检测按键输入,需要做如下工作(1)从设备树获取到按键节点、初始化gpio节点、获取中断号、注册中断(2)注册设备号、初始化字符设备、自动创建驱动节点(3)实现文件操作函数逻辑(read、open、release)Linux内核为了处理输入事件(按键、鼠标、键盘、触摸屏),专门设计了input子系统,使用input子系统后无需执行上面的步骤(2)、(3),大大节省了
- 【Linux驱动】块设备驱动(三)—— 块设备读写(不使用请求队列)
仲夏夜之梦~
驱动开发
并非每种块设备都会用到请求队列,从上节可以知道,请求队列的作用是管理和调用IO请求,那么反过来想,如果IO请求较少,那就可以无需使用请求队列。在以下情况中,可以不使用请求队列。单任务环境:当系统中只有单个任务(线程或进程)需要对存储设备进行读写操作时,IO操作可以直接被发起,而无需经过请求队列进行调度。IO操作不频繁:当系统中的IO操作非常稀少并且不频繁时,IO操作可以被直接发起,并由底层设备来处
- 嵌入式Linux开发---RS485通信驱动硬件编程
牛马大师兄
嵌入式Linux经验教程linux嵌入式硬件arm开发驱动开发mcu物联网
提醒:RS485的使用与UART串口的使用基本相同,差别在于使用485时需要手动切换485芯片的收发引脚模式。Linux驱动RS485通信的程序源码Demo见文末。1、RS485基础铺垫智能仪表随着80年代初单片机技术的成熟而发展起来,世界仪表市场基本被智能仪表所垄断,这归结于企业信息化的需要,而企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。最初是数据模拟信号输出简单过程量,后来仪表接
- linux驱动工作原理
金士顿
linuxlinux驱动开发
linux或者windows驱动是如何对上和对下工作的,请用中文回答在Linux系统中,设备驱动程序通过在/dev目录下创建文件系统条目与硬件通信。应用程序通过打开这些文件来获取描述符,以此来与设备交互。驱动程序内部使用主次设备号来标识设备。而在Windows系统中,驱动程序会为连接的设备创建设备对象(如PDO、FDO或FIDO),应用程序通过使用CreateFileAPI并使用设备名称或GUID
- 将TI的电量计Linux驱动从4.4内核移植到5.10
六个九十度
驱动开发linux驱动开发电量计库伦计
背景最近公司某产品用到了TI的电量计芯片BQ40Z50,我负责为其开发Linux驱动,搜了下,github上有TI为其写好的开源驱动,太好了。看了下代码,比较简单,连Makefile都没写,不过这也挺好,说明对编译环境没有要求。自己编写好Makefile后编译,出现3个编译错误:bq40z50_fg.c:609:2:error:'POWER_SUPPLY_PROP_RESISTANCE_ID'un
- 一个Kbuild工程生成多个ko文件及其在驱动单元测试上的应用
六个九十度
驱动开发单元测试linuxkunitkbuild
背景Linux驱动是基于Kbuild框架开发的,一般情况下只会生成一个ko文件,如果想添加单元测试(UnitTest即UT),用户要么在模块入口函数的末尾添加UT代码,要么额外创建一个单独的UT工程,前者把测试代码跟驱动代码放置于同一个文件比较混乱,后者创建额外的工程维护比较麻烦。能否既避免混乱,又避免麻烦呢?可以的。思路Kbuild支持生成多个ko,只需要给Makefile变量obj-m追加一个
- 如何给work回调函数传递用户参数
六个九十度
驱动开发内核linux驱动workqueuework_struct
背景Linux驱动开发中,经常会用到workqueue,该数据结构管理的是一个个的work_struct结构体:structwork_struct{atomic_long_tdata;structlist_headentry;work_func_tfunc;#ifdefCONFIG_LOCKDEPstructlockdep_maplockdep_map;#endif};最近在做pcie驱动开发,有
- 用devmem2读写设备IO内存
六个九十度
驱动开发linux软件linux嵌入式驱动开发utility
背景有时候定位Linux驱动的BUG时,如果能看到外设的寄存器那就很便于调试,但是临时写ioctl命令字不太现实,如果有一个像netcat那样的通用目的网络调试工具,是极好的。devmem2国外已经有人做了这个工具,名叫devmem2,体积很小,零依赖,代码也很简单,所以只有源码,没有编译好的deb、rpm等二进制包。用法:Usage:devmem2{address}[type[data]]add
- Rust初体验
有理叔
RustRust编程语言
前段时间,无意中看到了有关Rust的一系列新闻,比如Fuchsia底层开发使用Rust,Linux驱动可以采用Rust进行开发,Rust的代码安全性比C/C++更高,而性能与C/C++更加接近,等等。而且Rust在编程语言中的排名上升速度还是值得肯定的,对嵌入式开发非常友好,所以最近也学习了解了一下Rust,有机会再尝试使用。目前学习Rust的感觉,语法还不算太过生僻,可能是之前经历过Swift,
- nvme Linux driver 学习之二pcie设备枚举原理
1哥
首先任何Linux驱动的加载入口都是xxx_init()接口,卸载入口是xxx_exit().对于nvme驱动同样,它的驱动加载入口是nvme_init()接口。其内部实现的一个关键的地方在于使用pci_register_driver()接口和它的接口参数来注册其支持的设备的pcie设备。其参数是nvme_driver,其取值如下:staticstructpci_drivernvme_driver
- I.MX6u嵌入式linux驱动开发
vv不说话
MX6U嵌入式linuxlinux驱动开发运维
1:Ubuntu系统入门当Ubuntu系统入门以后,我们重点要学的就是如何在Linux下进行C语言开发,如何使用gcc编译器、如何编写Makefile文件等等首先安装虚拟机软件VM:VmwareWorkstation软件可以在Wmeare官网下载,下载地址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluat
- 裸机开发及开发环境搭建
vv不说话
MX6U嵌入式linuxlinux
ARM的裸机开发,也就是不带操作系统开发,就和我们开发STM32一样,如果有STM32开发经验的话学起本篇会很容易1、裸机开发是了解所使用的CPU最直接、最简单的方法,裸机开发是直接操作CPU的寄存器。Linux驱动开发最终也是操作的寄存器,但是在操作寄存器之前要先编写一个符合Linux驱动的框架。同样一个点灯驱动,裸机可能只需要十几行代码,但是Linux下的驱动就需要几十行代码。2.Linux驱
- linux container 作用,linux container_of 宏作用
范奕信
linuxcontainer作用
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/***container_of-castamemberofastructureouttothecontainingstructure*@ptr:thepointertothemember.*@type:thetypeofthecontainerstr
- 嵌入式linux驱动开发之网络设备驱动
稚肩
嵌入式linuxlinux驱动开发php
https://bbs.csdn.net/topics/612247295简介Linux网络设备驱动是Linux内核中的一个重要组成部分,它负责网络设备的底层数据传输和设备控制。与字符设备驱动和块设备驱动相比,网络设备驱动的特点和功能如下:首先,网络设备驱动不再是对文件进行操作,而是通过网络接口structnet_device来实现。这个接口为网络设备提供了统一的数据结构和操作接口,使得不同的硬件
- 百面嵌入式专栏(面试题)驱动开发面试题汇总1.0
内核笔记
嵌入式岗位笔试面试真题讲解面试题
沉淀、分享、成长,让自己和他人都能有所收获!本篇我们将介绍驱动开发面试题。1、Linux驱动程序的功能是什么?对设备初始化和释放。进行内核与硬件的数据交互。检测和处理设备出现的错误。2、内核程序中申请内存使用什么函数?答案:kmalloc()、kzalloc()、vmalloc()。解读:void*kmalloc(size_tsize,gfp_tflags);①申请连续的物理内存,这对于要进行DM
- Linux驱动工作原理
慕诗客
Linuxlinux运维服务器
首先列一张Linux下应用程序对驱动的调用图本次讨论内核是如何操作具体硬件的。从图中可知,内核是通过驱动程序中的open(),close()等函数去实现硬件操作的,单从这一点来看,似乎跟单片机通过库函数操作外设差不多。但是Linux内核不是为某一款芯片去设计的,它可以在许多芯片上运行,很明显,它不可能将每款芯片的具体操作函数都写进去,这样的话内核得爆炸。从软件设计层面上来说,分层是必不可少的,为此
- linux驱动开发之常见面试问题
墨染 锦年
Linux内核驱动C语言学习linux驱动开发面试
linux驱动开发之常见面试问题新增驱动的基本操作寄存器基址怎么映射?probe里的常规操作。驱动中通常会定义一个私有结构体,里面包含一些内核结构体,但注册的时候只注册了某个成员,怎么找到这个私有结构体。什么是container_of如何给应用层提供接口什么是ioctl?如何在shell下调用驱动如何解决内核启动时卡死问题简述MMU的工作原理新增驱动的基本操作先在设备树里新建一个节点,填写comp
- Linux ARM平台开发系列讲解(IPCF异核通信) 2.11.3 IPCF异核通信驱动编译及其测试
嵌入式内核源码
LinuxARM平台从入门到精通linuxarm驱动开发IPCF异核通信
1.概述LinuxIPCF共享内存内核驱动程序支持通过共享内存与运行在同一处理器的不同核心上的RTOS进行通信。该驱动程序伴随着一个示例应用程序,该应用程序也是一个树外内核模块,它演示了与RTOS应用程序的乒乓信息通信(更多细节请参阅示例目录中的自述文件)。驱动程序和示例应用程序被集成为NXPAutoLinuxBSP中的树外内核模块。这个Linux驱动程序的源代码发布在source.codeaur
- rockchip的yocto编译环境搭建
良知犹存
作者:良知犹存转载授权以及围观:欢迎添加微信公众号:Conscience_Remains总述嵌入式的朋友们,应该知道Linux驱动开发过程中,需要进行搭建交叉编译工具链环境、移植u-boot、kernel、根文件系统的几个部分工作。最开始我们的学习是把几个模块分开使用学习使用,各个部分生成代码,然后进行烧录,有时候我们会用脚本去把各个部分的代码打包到一起进行烧录。后来随着工具的发,我们只需要一个S
- 日常开发记录
VernonJsn
C++
2024-01-29Linux驱动程序学习好网站:Linux设备驱动程序教程Linux设备驱动程序——read()、write()以及ioctl():这个图很关键,对深入理解这个驱动过程有着很重要的帮助。通过上面的图来看,为了是实现程序,使用ictI函数的时候必须使用共同的头文件,而该头文件.上定义了想ioctl传送的命令以及互换处理命令的辅助信息的结构体,驱动程序上的ioct()函数调用file
- 如何测试Linux内核
测试界媛姐
软件测试技术分享自动化测试linux运维服务器
概述在本文中,我们将讨论用于测试Linux内核的各种框架和工具。首先,我们将介绍LTP(LinuxTestProject)项目。然后,我们将讨论其他测试工具和框架。最后,我们将讨论我们无法使用常规内核测试工具测试的新Linux驱动程序的测试。LTP网址:GitHub-linux-test-project/ltp:LinuxTestProjecthttp://linux-test-project.g
- Android 中的property_get/property_set
wwwlyj123321
嵌入式Linux应用编程androidjava开发语言
背景在安卓中调试Linux驱动层以及应用层之间的一些功能时,需要获取一些属性。参考:property_get函数使用_那颗流星的博客-CSDN博客_property_get函数使用property_get/property_set_JianqunXu的博客-CSDN博客介绍属性(property)被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。
- java观察者模式
3213213333332132
java设计模式游戏观察者模式
观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。
在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。
这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。
老鹰会变成观察者,母鸡和小鸡是
- TFS RESTful API 模拟上传测试
ronin47
TFS RESTful API 模拟上传测试。
细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown
模拟POST上传一个图片:
curl --data-binary @/opt/tfs.png http
- PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
dcj3sjt126com
设计模式PHP
// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法
abstract class Tiger {
public abstract function climb();
}
class XTiger extends Tiger {
public function climb()
- hibernate
171815164
Hibernate
main,save
Configuration conf =new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session sess=sf.openSession();
Transaction tx=sess.beginTransaction();
News a=new
- Ant实例分析
g21121
ant
下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。
下面是build.xml的代码:
<?xml version="1
- [简单]工作记录_接口返回405原因
53873039oycg
工作
最近调接口时候一直报错,错误信息是:
responseCode:405
responseMsg:Method Not Allowed
接口请求方式Post.
- 关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别
程序员是怎么炼成的
真正完成类的加载工作是通过调用 defineClass来实现的;
而启动类的加载过程是通过调用 loadClass来实现的;
就是类加载器分为加载和定义
protected Class<?> findClass(String name) throws ClassNotFoundExcept
- JDBC学习笔记-JDBC详细的操作流程
aijuans
jdbc
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。
下面我们就来仔细看一看每一个步骤:
其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。
1、加载数据库驱动并建立到数据库的连接:
Html代码
St
- rome创建rss
antonyup_2006
tomcatcmsxmlstrutsOpera
引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W
- html表格和表单基础
百合不是茶
html表格表单meta锚点
第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,
html是一种标记语言,其实很简单都是固定的格式
_----------------------------------------表格和表单
表格是html的重要组成部分,表格用在body里面的
主要用法如下;
<table>
&
- ibatis如何传入完整的sql语句
bijian1013
javasqlibatis
ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。
解决办法:
<
- 精通Oracle10编程SQL(14)开发动态SQL
bijian1013
oracle数据库plsql
/*
*开发动态SQL
*/
--使用EXECUTE IMMEDIATE处理DDL操作
CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2)
is
sql_statement varchar2(100);
begin
sql_statement:='DROP TABLE '||table_name;
- 【Linux命令】Linux工作中常用命令
bit1129
linux命令
不断的总结工作中常用的Linux命令
1.查看端口被哪个进程占用
通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息
netstat -anp | grep 8085
察看进程ID对应的进程占用的端口号
netstat -anp | grep 进程ID
&
- 优秀网站和文档收集
白糖_
网站
集成 Flex, Spring, Hibernate 构建应用程序
性能测试工具-JMeter
Hmtl5-IOCN网站
Oracle精简版教程网站
鸟哥的linux私房菜
Jetty中文文档
50个jquery必备代码片段
swfobject.js检测flash版本号工具
- angular.extend
boyitech
AngularJSangular.extendAngularJS API
angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数:
- java-谷歌面试题-设计方便提取中数的数据结构
bylijinnan
java
网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。
以下分别用排序数组和大小堆来实现。
使用大小堆:
import java.util.Arrays;
public class MedianInHeap {
/**
* 题目:设计方便提取中数的数据结构
* 设计一个数据结构,其中包含两个函数,1.插
- ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本
Chen.H
ajaxFileUploadie6ie7ie8ie9
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
- [机器人制造原则]机器人的电池和存储器必须可以替换
comsci
制造
机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....
另外,如果一
- Oracle Multitable INSERT 的用法
daizj
oracle
转载Oracle笔记-Multitable INSERT 的用法
http://blog.chinaunix.net/uid-8504518-id-3310531.html
一、Insert基础用法
语法:
Insert Into 表名 (字段1,字段2,字段3...)
Values (值1,
- 专访黑客历史学家George Dyson
datamachine
on
20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来
- 小学6年级英语单词背诵第一课
dcj3sjt126com
englishword
always 总是
rice 水稻,米饭
before 在...之前
live 生活,居住
usual 通常的
early 早的
begin 开始
month 月份
year 年
last 最后的
east 东方的
high 高的
far 远的
window 窗户
world 世界
than 比...更
- 在线IT教育和在线IT高端教育
dcj3sjt126com
教育
codecademy
http://www.codecademy.com codeschool
https://www.codeschool.com teamtreehouse
http://teamtreehouse.com lynda
http://www.lynda.com/ Coursera
https://www.coursera.
- Struts2 xml校验框架所定义的校验文件
蕃薯耀
Struts2 xml校验Struts2 xml校验框架Struts2校验
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 15:54:59 星期六
http://fa
- mac下安装rar和unrar命令
hanqunfeng
mac
1.下载:http://www.rarlab.com/download.htm 选择
RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar
- 三种将list转换为map的方法
jackyrong
list
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String des
- 年轻程序员需要学习的5大经验
lampcy
工作PHP程序员
在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加
- 评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓
nannan408
先来看南方网的一则报道:
再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。
粗暴手术让人发寒
2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。
12月5日,
- 使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件
Everyday都不同
jspinput回车键绑定clickenter
假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:
function search() {
//监听函数略......
}
为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():
//回车绑定
$(".search").keydown(fun
- EXT学习记录
tntxia
ext
1. 准备
(1) 官网:http://www.sencha.com/
里面有源代码和API文档下载。
EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。
(2)帮助文档:
想要查看EXT的官方文档的话,可以去这里h
- mybatis3的mapper文件报Referenced file contains errors
xingguangsixian
mybatis
最近使用mybatis.3.1.0时无意中碰到一个问题:
The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d