- vue中ref解析
肉肉不吃 肉
vue.jsjavascript前端
在Vue项目中,ref是一个非常重要的概念,用于创建对DOM元素或组件实例的引用。它在多种场景下都非常有用,特别是在需要直接操作DOM或与子组件进行交互时。ref的作用1.获取DOM元素使用ref可以获取到模板中的DOM元素,并对其进行操作。创建了一个对组件的引用,可以在脚本中通过loginForm.value访问该元素。示例:constloginForm=ref(null)//在setup函数中
- React学习笔记20
充气大锤
React学习笔记学习笔记javascript前端算法开发语言react.js
一、React.forward1.1、作用通过ref暴露子组件的DOM1.2、场景说明1.3、语法实现//子组件constInput=forwardRef((props,ref)=>{return})//父组件functionfather_component(){constinputRef=useRef(null)constfocus=(ref)=>{ref.current.focus()}ret
- Qt选择文件路径,并写入文件
水瓶丫头站住
Qtqt开发语言
以下是使用Qt的QFile和QFileDialog选择路径并写入文件的示例代码:#include#include#include#includevoidwriteFileExample(){//1.获取保存路径QStringfileName=QFileDialog::getSaveFileName(nullptr,//父窗口"保存文件",//对话框标题QDir::homePath(),//默认目录
- C或C++中实现数据结构课程中的链表、数组、树和图案例
小弟有话说1.0
数据结构c语言c++
1.双向链表(DoublyLinkedList)-----支持双向遍历。C++实现#includestructNode{intdata;Node*prev;Node*next;};classDoublyLinkedList{private:Node*head;public:DoublyLinkedList():head(nullptr){}//在链表末尾插入节点voidappend(intdata
- Oracle转化为MySQL数据库
袅沫
点兵之经数据库mysql
使用HttpClient调用Post方法的时候,EntityUtils.toString(response.getEntity());响应数据只能读取一次,读取多次会出现,Attemptedreadfromclosedstream错误。Oracle转化为MySQL数据库OracleMySQLORDERBYCREATED_TIMEDESCNULLSLASTORDERBYCREATED_TIMEDES
- linux环境下快速输出电脑的系统/硬件/显卡/网络/已安装软件等信息
Tipriest_
Ubuntulinux电脑网络信息输出
在Linux环境下,可以通过以下命令快速获取系统和硬件信息。最后将这些命令整合成一个脚本(如`sysinfo.sh``),一键输出所有信息。1.系统信息#内核信息uname-a#发行版信息lsb_release-a2>/dev/null||cat/etc/*release*#系统启动时间uptime#环境变量echo"PATH:$PATH"2.硬件信息#CPU信息lscpucat/proc/cpu
- C++ Map 查询时的两个小细节:`map[id]` 与 `map.value(id, nullptr)` 的区别
誰能久伴不乏
c++java开发语言
文章目录C++Map查询时的两个小细节:`map[id]`与`map.value(id,nullptr)`的区别1.`map[id]`—直接访问和自动插入新元素示例代码:关键点:适用场景:2.`map.value(id,nullptr)`—安全查询并避免插入新元素示例代码:关键点:适用场景:3.对比:`map[id]`与`map.value(id,nullptr)`的区别4.总结:选择合适的方式5
- Android第四次面试总结(基础算法篇)
每次的天空
android面试算法
一、反转链表//定义链表节点类classListNode{//节点存储的值intval;//指向下一个节点的引用ListNodenext;//构造函数,用于初始化节点的值ListNode(intx){val=x;}}classSolution{//反转链表的方法publicListNodereverseList(ListNodehead){//初始化前一个节点为nullListNodeprev=n
- Android 高频面试必问之Java基础
2401_83641443
程序员android面试java
BootstrapClassLoader:Bootstrap类加载器负责加载rt.jar中的JDK类文件,它是所有类加载器的父加载器。Bootstrap类加载器没有任何父类加载器,如果调用String.class.getClassLoader(),会返回null,任何基于此的代码会抛出NUllPointerException异常,因此Bootstrap加载器又被称为初始类加载器。ExtClassL
- C++高频面试问题
HJ_sky
C++
C++常见面试问题汇总一、指针和引用的区别1.指针有自己的一块空间,而引用只是一个别名;2.使用sizeof看一个指针的大小是4,而引用则是被引用对象的大小;3.指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象的引用;4.作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引用的修改都会改变引用所指向的对象;5.可以有const指针,但是没有const引用;6.指针在使
- MySQL(二):逻辑查询
2401_84003690
程序员mysqlandroid数据库
CREATETABLEt(aCHAR(5))ENGINE=INNODB;INSERTINTOt(a)VALUES(‘a’),(NULL),(‘b’),(‘c’),(NULL);SELECT*FROMtORDERBYa;//这也是一个小技巧,当想使用GROUPBY后,想统计各个组/块的数量,可以使用COUNT(1)SELECTa,COUNT(1)FROMtGROUPBYa;结果如上,很清楚可以看到o
- 数据库约束
墨香染城城
数据库
1.什么是数据库约束数据库约束是指对数据库表中的数据所施加的规则或条件,⽤于确保数据的准确性和可靠性。这些约束可以是基于数据类型、值范围、唯⼀性、⾮空等规则,以确保数据的正确性和相容性2.约束类型NOTNULL⾮空约束指定⾮空约束的列不能存储NULL值DEFALUT默认约束当没有给列赋值时使⽤的默认值UNIQUE唯⼀约束指定唯⼀约束的列每⾏数据必须有唯⼀的值PRIMARYKEY主键约束NOTNUL
- JavaScript相关面试题
努力的搬砖人.
javascript
以下是150道JavaScript相关面试题及详细答案:JavaScript基础1.JavaScript是什么?JavaScript是一种直译式脚本语言,主要用于网页开发,也可用于服务器端开发(如Node.js)。它是一种动态类型、弱类型、基于原型的语言,支持函数式编程和面向对象编程。2.JavaScript的基本数据类型有哪些?包括Undefined、Null、Boolean、Number、St
- Mysql数据库分表实现
微笑的曙光(StevenLi)
数据库mysql分表性能优化merge
本次主要采用MERGE分表法、对表进行水平拆分;第一步:创建数据库DROPTABLEIFEXISTSstudents;CREATETABLEstudents(idbigint(20)NOTNULLAUTO_INCREMENT,namevarchar(20)DEFAULTNULL,numvarchar(20)DEFAULTNULL,PRIMARYKEY(id))ENGINE=MyISAMAUTO_I
- 【Redis】什么是缓存穿透、击穿、雪崩?如何解决?
熏鱼的小迷弟Liu
Redis缓存redis数据库
1.缓存穿透定义:缓存穿透是指查询一个不存在的数据,由于缓存中没有该数据,请求会直接落到数据库上。如果大量这样的请求同时发生,数据库可能会被压垮。原因:恶意攻击:攻击者故意请求大量不存在的数据。业务逻辑问题:某些查询条件本身就不存在有效数据。解决方案:1.缓存空值:如果查询结果为空,扔将空值缓存起来,并设置一个较短的过期时间。if(data==null){cache.put(key,"NULL",
- 解决MybatisPlus updateById更新数据时将没传的数据也更新成了null
善我
后端java
首先,MybatisPlus在调用自带的更新接口updateById时,如果没加任何配置,默认是不会将前端没传的数据也更新成null的。即MyBatisPlus不会更新传入实体中为null的字段,只会更新设置了不为null的值。如果发现没传的也更新成null了的话,可以看看问题是否出在以下几个方面。可能原因1、后端定义的字段类型是否为包装类型?比如应该定义成Integer,结果你定义的是int,那
- 万字面试题助力春招(待补充)
~Yogi
刷题日记javajvm开发语言
JavaSE面试题1.JDKJRE区别JDKjavadevelop’skitjava开发工具包,包含了JRE和常见开发工具javacJRE包含了JVM和核心类库2.equals==区别首先equals()是Object类下的一个方法,比较的是引用类型。默认比较引用地址,重写比较其他东西。其次,==引用和基本数据类型都能比较引用比较的是地址,基本数据类型就是值3.如果hashCode()一样,equ
- MySQL--group by--聚合函数--内置函数--0415 22
Gosolo!
MySQLsql数据库
目录1.聚合函数1.1count1.2sum1.3avg1.4max和min2.groupby2.1groupby的条件筛选——having2.2总结3.日期函数4.字符串函数concatreplacesubstring以首字母大写,其余字母小写的方式显示员工的姓名5.数学函数formatrand()6.其他函数user()md5ifnull1.聚合函数函数说明count([DISTINCT]参数
- java自写代码--单链表的基本操作
葡葡小萄汽
数据结构数据结构java
内含单链表的头插法、尾插法、根据位置插入数据、根据位置删除数据、得到链表长度等操作。//基于单链表的一些基础操作importjava.util.Scanner;publicclasslnode{//单链表初始化publicintdata;publiclnodenext=null;lnodehead=null;//作为头结点//无参构造函数publiclnode(){}//带参构造函数publicl
- String类的常用方法
迈克尔龙
javaSEjava开发语言
StringStringstr=newString();//创建一个Null字符串对象;Stringstr=newString(“abc”);//创建一个为abc的字符串对象。API(注意:此字符串为调用API者)charcharAt(intindex);intcompareTo(Objecto);Stringconcat(Stringstr);将一个字符串连接到此字符串的末尾;booleaneq
- 使用MyBatis返回数据为null
测试开发小白变怪兽
服务端
问题:程序里面写的sql语句放到数据库控制台里能查询到数据,但是在MyBatis里查询结果为null。原因:查询出来的字段名与Java实体类的属性名没有一一对应。解决办法:在XML映射文件中使用resultMap将数据库属性名与实体类属性名映射:使用resultMap表明返回类型:select*fromuser_info;
- 给空间加载图标
weixin_30859423
//MFCday003Dlg.h:头文件//#pragmaonce#include"MylistCtrl.h"#include"afxcmn.h"//CMFCday003Dlg对话框classCMFCday003Dlg:publicCDialogEx{//构造public:CMFCday003Dlg(CWnd*pParent=NULL);//标准构造函数//对话框数据enum{IDD=IDD_MF
- Android开发——蓝牙与外部设备连接
阿饼240
android
一、获取蓝牙权限在Manifest.xml文件中添加蓝牙权限声明二、检查设备是否支持蓝牙BluetoothAdapterdefaultAdapter=BluetoothAdapter.getDefaultAdapter();if(defaultAdapter==null){Toast.makeText(MainActivity.this,"该设备不支持蓝牙",Toast.LENGTH_SHORT)
- Singleton 单例模式
后端
一、实现在javascript中,实现一个单例模式可以用一个变量来标志当前的类已经创建过对象,如果下次获取当前类的实例时,直接返回之前创建的对象即可,如下://定义一个类functionSingleton(name){this.name=name;this.instance=null;}//原型扩展类的一个方法getName()Singleton.prototype.getName=functio
- 使用python反射,实现pytest读取yaml并发送请求
南部余额
pythonpythonpytest
pytest+yamlyaml-feature:用户模块story:登录title:添加用户request:method:POSTurl:/system/user/listheaders:nullparams:nullvalidate:nullread_yaml_alldefread_yaml_all(path):withopen(path,'r',encoding='utf-8')asf:val
- easyexcel操作文件读取中某列为null
温馨提示
java
使用EasyExcel.read()方法读取出来某列为空的解决办法最近使用easyexcel操作文件,发现第一列取出来都是null值,排查了半天终于发现了问题,就是Data中属性值严格要求驼峰命名规则,否则识别不出来。@DatapublicclassExcelDateSubject{@ExcelProperty(value="一级标题",index=0)privateStringOneSubjec
- 数据结构笔记
月亮是我掰弯的!!!
笔记数据结构笔记算法c++c语言
17、循环链表(解决约瑟夫问题)1、定义链表typedefstruct_LinkNode{intdata;struct_LinkNode*next;}LinkNode,LinkList;2、初始化链表boolListInsert_back(linkList*&L,LinkNode*node){LinkNode*last=NULL;//防御性编程if(!L||!node)returnfalse;//
- 数据结构——环形数组
Book_熬夜!
数据结构与算法数据结构javascript算法
环形数组start指向第一个有效元素的索引,end指向最后一个有效元素的下一个位置索引。注意:start是闭区间,先左移后赋值,先赋值(null)后右移;end是开区间,先赋值再右移,先左移再赋值(null)。左移减一加size再取模,右移加一再取模。【JS代码实现:】classCycleArray{constructor(size=1){this.size=size;this.arr=newAr
- c# EasyModbus Modbus TCP 通讯
babala_s
c#服务器数据库
publicstaticModbusClientmodbusClient=null;publicMainViewModel(){modbusClient=newModbusClient("192.168.0.202",502);try{modbusClient.UnitIdentifier=1;//地址modbusClient.Baudrate=9600;modbusClient.Connecti
- 车载Android音频系统 CarAudioService
Code_onepage
android
CarAudioService是车载音频系统的核心服务,负责管理多音源协调、音频路由、音量策略、硬件控制等关键功能,处理车载环境下特有的音频场景(如倒车提示音、车门状态联动等)。一、核心功能模块1.音频焦点管理焦点栈机制(mFocusStack)使用Stack管理不同音源的优先级处理导航/USB/蓝牙等音源的抢占逻辑//示例:焦点切换时的音频路由switchSource(null,AudioAtt
- ASM系列五 利用TreeApi 解析生成Class
lijingyao8206
ASM字节码动态生成ClassNodeTreeAPI
前面CoreApi的介绍部分基本涵盖了ASMCore包下面的主要API及功能,其中还有一部分关于MetaData的解析和生成就不再赘述。这篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。
在介绍前,先要知道一点, Tree工程的接口基本可以完
- 链表树——复合数据结构应用实例
bardo
数据结构树型结构表结构设计链表菜单排序
我们清楚:数据库设计中,表结构设计的好坏,直接影响程序的复杂度。所以,本文就无限级分类(目录)树与链表的复合在表设计中的应用进行探讨。当然,什么是树,什么是链表,这里不作介绍。有兴趣可以去看相关的教材。
需求简介:
经常遇到这样的需求,我们希望能将保存在数据库中的树结构能够按确定的顺序读出来。比如,多级菜单、组织结构、商品分类。更具体的,我们希望某个二级菜单在这一级别中就是第一个。虽然它是最后
- 为啥要用位运算代替取模呢
chenchao051
位运算哈希汇编
在hash中查找key的时候,经常会发现用&取代%,先看两段代码吧,
JDK6中的HashMap中的indexFor方法:
/**
* Returns index for hash code h.
*/
static int indexFor(int h, int length) {
- 最近的情况
麦田的设计者
生活感悟计划软考想
今天是2015年4月27号
整理一下最近的思绪以及要完成的任务
1、最近在驾校科目二练车,每周四天,练三周。其实做什么都要用心,追求合理的途径解决。为
- PHP去掉字符串中最后一个字符的方法
IT独行者
PHP字符串
今天在PHP项目开发中遇到一个需求,去掉字符串中的最后一个字符 原字符串1,2,3,4,5,6, 去掉最后一个字符",",最终结果为1,2,3,4,5,6 代码如下:
$str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;
- hadoop在linux上单机安装过程
_wy_
linuxhadoop
1、安装JDK
jdk版本最好是1.6以上,可以使用执行命令java -version查看当前JAVA版本号,如果报命令不存在或版本比较低,则需要安装一个高版本的JDK,并在/etc/profile的文件末尾,根据本机JDK实际的安装位置加上以下几行:
export JAVA_HOME=/usr/java/jdk1.7.0_25  
- JAVA进阶----分布式事务的一种简单处理方法
无量
多系统交互分布式事务
每个方法都是原子操作:
提供第三方服务的系统,要同时提供执行方法和对应的回滚方法
A系统调用B,C,D系统完成分布式事务
=========执行开始========
A.aa();
try {
B.bb();
} catch(Exception e) {
A.rollbackAa();
}
try {
C.cc();
} catch(Excep
- 安墨移动广 告:移动DSP厚积薄发 引领未来广 告业发展命脉
矮蛋蛋
hadoop互联网
“谁掌握了强大的DSP技术,谁将引领未来的广 告行业发展命脉。”2014年,移动广 告行业的热点非移动DSP莫属。各个圈子都在纷纷谈论,认为移动DSP是行业突破点,一时间许多移动广 告联盟风起云涌,竞相推出专属移动DSP产品。
到底什么是移动DSP呢?
DSP(Demand-SidePlatform),就是需求方平台,为解决广 告主投放的各种需求,真正实现人群定位的精准广
- myelipse设置
alafqq
IP
在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的数倍。因此项目的可维护性、可复用性是衡量一个项目好坏的关键。而注释则是可维护性中必不可少的一环。
注释模板导入步骤
安装方法:
打开eclipse/myeclipse
选择 window-->Preferences-->JAVA-->Code-->Code
- java数组
百合不是茶
java数组
java数组的 声明 创建 初始化; java支持C语言
数组中的每个数都有唯一的一个下标
一维数组的定义 声明: int[] a = new int[3];声明数组中有三个数int[3]
int[] a 中有三个数,下标从0开始,可以同过for来遍历数组中的数
- javascript读取表单数据
bijian1013
JavaScript
利用javascript读取表单数据,可以利用以下三种方法获取:
1、通过表单ID属性:var a = document.getElementByIdx_x_x("id");
2、通过表单名称属性:var b = document.getElementsByName("name");
3、直接通过表单名字获取:var c = form.content.
- 探索JUnit4扩展:使用Theory
bijian1013
javaJUnitTheory
理论机制(Theory)
一.为什么要引用理论机制(Theory)
当今软件开发中,测试驱动开发(TDD — Test-driven development)越发流行。为什么 TDD 会如此流行呢?因为它确实拥有很多优点,它允许开发人员通过简单的例子来指定和表明他们代码的行为意图。
TDD 的优点:
&nb
- [Spring Data Mongo一]Spring Mongo Template操作MongoDB
bit1129
template
什么是Spring Data Mongo
Spring Data MongoDB项目对访问MongoDB的Java客户端API进行了封装,这种封装类似于Spring封装Hibernate和JDBC而提供的HibernateTemplate和JDBCTemplate,主要能力包括
1. 封装客户端跟MongoDB的链接管理
2. 文档-对象映射,通过注解:@Document(collectio
- 【Kafka八】Zookeeper上关于Kafka的配置信息
bit1129
zookeeper
问题:
1. Kafka的哪些信息记录在Zookeeper中 2. Consumer Group消费的每个Partition的Offset信息存放在什么位置
3. Topic的每个Partition存放在哪个Broker上的信息存放在哪里
4. Producer跟Zookeeper究竟有没有关系?没有关系!!!
//consumers、config、brokers、cont
- java OOM内存异常的四种类型及异常与解决方案
ronin47
java OOM 内存异常
OOM异常的四种类型:
一: StackOverflowError :通常因为递归函数引起(死递归,递归太深)。-Xss 128k 一般够用。
二: out Of memory: PermGen Space:通常是动态类大多,比如web 服务器自动更新部署时引起。-Xmx
- java-实现链表反转-递归和非递归实现
bylijinnan
java
20120422更新:
对链表中部分节点进行反转操作,这些节点相隔k个:
0->1->2->3->4->5->6->7->8->9
k=2
8->1->6->3->4->5->2->7->0->9
注意1 3 5 7 9 位置是不变的。
解法:
将链表拆成两部分:
a.0-&
- Netty源码学习-DelimiterBasedFrameDecoder
bylijinnan
javanetty
看DelimiterBasedFrameDecoder的API,有举例:
接收到的ChannelBuffer如下:
+--------------+
| ABC\nDEF\r\n |
+--------------+
经过DelimiterBasedFrameDecoder(Delimiters.lineDelimiter())之后,得到:
+-----+----
- linux的一些命令 -查看cc攻击-网口ip统计等
hotsunshine
linux
Linux判断CC攻击命令详解
2011年12月23日 ⁄ 安全 ⁄ 暂无评论
查看所有80端口的连接数
netstat -nat|grep -i '80'|wc -l
对连接的IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
查看TCP连接状态
n
- Spring获取SessionFactory
ctrain
sessionFactory
String sql = "select sysdate from dual";
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
String[] names = wac.getBeanDefinitionNames();
for(int i=0; i&
- Hive几种导出数据方式
daizj
hive数据导出
Hive几种导出数据方式
1.拷贝文件
如果数据文件恰好是用户需要的格式,那么只需要拷贝文件或文件夹就可以。
hadoop fs –cp source_path target_path
2.导出到本地文件系统
--不能使用insert into local directory来导出数据,会报错
--只能使用
- 编程之美
dcj3sjt126com
编程PHP重构
我个人的 PHP 编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考 PHP 手册。希望下面的代码,会更有利于对递归以及静态变量的理解
header("Content-type: text/plain");
function static_function () {
static $i = 0;
if ($i++ < 1
- Android保存用户名和密码
dcj3sjt126com
android
转自:http://www.2cto.com/kf/201401/272336.html
我们不管在开发一个项目或者使用别人的项目,都有用户登录功能,为了让用户的体验效果更好,我们通常会做一个功能,叫做保存用户,这样做的目地就是为了让用户下一次再使用该程序不会重新输入用户名和密码,这里我使用3种方式来存储用户名和密码
1、通过普通 的txt文本存储
2、通过properties属性文件进行存
- Oracle 复习笔记之同义词
eksliang
Oracle 同义词Oracle synonym
转载请出自出处:http://eksliang.iteye.com/blog/2098861
1.什么是同义词
同义词是现有模式对象的一个别名。
概念性的东西,什么是模式呢?创建一个用户,就相应的创建了 一个模式。模式是指数据库对象,是对用户所创建的数据对象的总称。模式对象包括表、视图、索引、同义词、序列、过
- Ajax案例
gongmeitao
Ajaxjsp
数据库采用Sql Server2005
项目名称为:Ajax_Demo
1.com.demo.conn包
package com.demo.conn;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;
//获取数据库连接的类public class DBConnec
- ASP.NET中Request.RawUrl、Request.Url的区别
hvt
.netWebC#asp.nethovertree
如果访问的地址是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree%3C&n=myslider#zonemenu那么Request.Url.ToString() 的值是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree<&
- SVG 教程 (七)SVG 实例,SVG 参考手册
天梯梦
svg
SVG 实例 在线实例
下面的例子是把SVG代码直接嵌入到HTML代码中。
谷歌Chrome,火狐,Internet Explorer9,和Safari都支持。
注意:下面的例子将不会在Opera运行,即使Opera支持SVG - 它也不支持SVG在HTML代码中直接使用。 SVG 实例
SVG基本形状
一个圆
矩形
不透明矩形
一个矩形不透明2
一个带圆角矩
- 事务管理
luyulong
javaspring编程事务
事物管理
spring事物的好处
为不同的事物API提供了一致的编程模型
支持声明式事务管理
提供比大多数事务API更简单更易于使用的编程式事务管理API
整合spring的各种数据访问抽象
TransactionDefinition
定义了事务策略
int getIsolationLevel()得到当前事务的隔离级别
READ_COMMITTED
- 基础数据结构和算法十一:Red-black binary search tree
sunwinner
AlgorithmRed-black
The insertion algorithm for 2-3 trees just described is not difficult to understand; now, we will see that it is also not difficult to implement. We will consider a simple representation known
- centos同步时间
stunizhengjia
linux集群同步时间
做了集群,时间的同步就显得非常必要了。 以下是查到的如何做时间同步。 在CentOS 5不再区分客户端和服务器,只要配置了NTP,它就会提供NTP服务。 1)确认已经ntp程序包: # yum install ntp 2)配置时间源(默认就行,不需要修改) # vi /etc/ntp.conf server pool.ntp.o
- ITeye 9月技术图书有奖试读获奖名单公布
ITeye管理员
ITeye
ITeye携手博文视点举办的9月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 9月试读活动回顾:http://webmaster.iteye.com/blog/2118112本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《NFC:Arduino、Andro