JDK8新特性

zynq+LWIP 裸机双网口实现(MIO+EMIO)+程序下载 芯片型号: ZYNQ: XC7Z010clg400开发软件:Vivado2022 + Xilinx Vitis 2022网卡芯片:RTL8211FDI(需要根据网口芯片型号修改对应的硬件配置代码。 阅读详情
@Override
public void importPerson(String imp_projectid, List<DoorGuardPerson> subList, ImportMode mode)
		throws Exception {
	//取出待导入的人员编号
	List<String> personids = subList.stream().map(p -> p.getPersonid()).collect(Collectors.toList());
	//查询已经存在的项目设备
	List<DoorGuardPerson> existPersons = doorGuPersonMapper.queryPersons(personids);
	//追加模式或者全部模式
	if (mode.isAppendMode() || mode.isAppendAndUpdateMode()){
		//查找不存在的人员
		List<DoorGuardPerson> noneExistPersons = subList.stream().filter(p -> !isPersonExist(existPersons, p.getPersonid())).collect(Collectors.toList());
		if (noneExistPersons != null && noneExistPersons.size() > 0){
			//将formbean转换为person对象
			List<DoorGuardPerson> noneExistPerson = noneExistPersons.stream().map(p -> p.toDoorGuardPerson()).collect(Collectors.toList());
			if (noneExistPerson != null && noneExistPerson.size() > 0){
				doorGuPersonMapper.batchInsert(noneExistPerson); //批量插入
			}
		}
	}
	//更新模式或者全部模式
	if (mode.isUpdateMode() || mode.isAppendAndUpdateMode()){
		if (existPersons != null && existPersons.size() > 0){
			for (DoorGuardPerson existPerson : existPersons){
				innerFullSet(existPerson, innerFind(subList, existPerson.getPersonid()));
			}
			//批量更新
			doorGuPersonMapper.batchUpdate(existPersons);
		}
	}
	//批量删除模式(分为普通的批量删除和强制批量删除)
	if (mode.isDeleteMode()) {
		/*String[] perids = existPersons.stream().map(p -> p.getPersonid()).collect(Collectors.toList()).toArray(new String[0]);
		List<String> personidList = new ArrayList<String>();
		if (perids != null && perids.length > 0){
			for(String perid : perids){
				personidList.add(perid);
			}
			doorGuPersonMapper.removeDoorGuardPersons(personidList);
		}*/
		//已经有了,不需要数组转list了
		doorGuPersonMapper.removeDoorGuardPersons(personids);
	}
	
}


private void innerFullSet(DoorGuardPerson existPerson, DoorGuardPerson innerFind) {
	if (existPerson == null){
		return;
	}
	
	/*
	personid	人员编号	VARCHAR(50)		N	主键
	name	姓名	VARCHAR(100)		N	
	idcard	身份证号码	VARCHAR(20)		Y	
	sex	性别	Byte	1	N	1--男;0--女;
	age	年龄	Byte	0	Y	
	job	职务	Varchar(100)		Y	
	department	单位或部门	Varchar(100)		Y	
	birthday	出生日期	Date		Y	
	addr	住址	VARCHAR(100)		Y	
	telephone	手机号码	VARCHAR(50)		Y	
	email	EMAIL邮箱	VARCHAR(100)		Y	
	edu	学历	VARCHAR(20)		Y	
	flag	人员类别	Int	0	Y	0--持卡人;1--管理人员;2--临时访客;
	photo	照片文件路径	VARCHAR(200)		Y	
	areaid	所在区域	VARCHAR(200)		Y	
	projectid	项目ID	VARCHAR(200)		N	归属项目
	remark	备注	VARCHAR(200)		Y	附加信息     
	*/

	if (!StringUtils.isEmpty(innerFind.getName())){
		existPerson.setName(innerFind.getName());
	}
	
	if (!StringUtils.isEmpty(innerFind.getIdcard())){
		existPerson.setIdcard(innerFind.getIdcard());
	}
	
	if (innerFind.getSex()!=null){
		existPerson.setSex(innerFind.getSex());
	}
	
	if (innerFind.getAge()!=null){
		existPerson.setAge(innerFind.getAge());
	}
	
	if (!StringUtils.isEmpty(innerFind.getJob())){
		existPerson.setJob(innerFind.getJob());
	}
	
	if (!StringUtils.isEmpty(innerFind.getDepartment())){
		existPerson.setDepartment(innerFind.getDepartment());
	}
	
	if (innerFind.getBirthday()!=null){
		existPerson.setBirthday(innerFind.getBirthday());
	}
	
	if (!StringUtils.isEmpty(innerFind.getAddr())){
		existPerson.setAddr(innerFind.getAddr());
	}
	
	if (!StringUtils.isEmpty(innerFind.getTelephone())){
		existPerson.setTelephone(innerFind.getTelephone());
	}
	
	if (!StringUtils.isEmpty(innerFind.getEmail())){
		existPerson.setEmail(innerFind.getEmail());
	}
	
	if (!StringUtils.isEmpty(innerFind.getEdu())){
		existPerson.setEdu(innerFind.getEdu());
	}
	
	existPerson.setFlag(innerFind.getFlag());
	
	if (!StringUtils.isEmpty(innerFind.getAreaid())){
		existPerson.setAreaid(innerFind.getAreaid());
	}
	
	if (!StringUtils.isEmpty(innerFind.getProjectid())){
		existPerson.setProjectid(innerFind.getProjectid());
	}

	if (!StringUtils.isEmpty(innerFind.getRemark())){
		existPerson.setRemark(innerFind.getRemark());
	}
	
}


private DoorGuardPerson innerFind(List<DoorGuardPerson> subList, String personid) {
	for (DoorGuardPerson bean : subList){
		if (StringUtils.equals(bean.getPersonid(), personid)){
			return bean;
		}
	}
	return null;
}


private boolean isPersonExist(List<DoorGuardPerson> existPersons, String personid) {
	for (DoorGuardPerson existPerson : existPersons){
		if (StringUtils.equals(existPerson.getPersonid(), personid)){
			return true;
		}
	}
	return false;
}

 

Pulseaudio之同步/异步(十一) PulseAudio是一个声音服务器,一个后台进程从一个或多个音源(进程或输入设备)接受声音输入 然后重定向声音到一个或多个槽(声卡,远程网络PulseAudio服务,或其他进程)。 PulseAudio的主要特点包括: 可对每一个应用程序进行音量控制Per-application volume controls 可扩展的插件与支持可装载模块架构 兼容性许多流行的音频应用程序 支持多重音源和多重输出 低延时操作和支持延迟测量 一个对处理器资源效率零拷贝内存架构 能够发现本地网络上使用PulseAu 阅读详情

相关推荐

COMSOL解的继承

COMSOL解的继承1. 应用场景2. 实现方法2.1. 添加研究步骤2.2. 引用研究 根据参考文献整理而来,原文见: http://blog.sina.com.cn/s/blog_4a0a8b5d010126w5.html https://www.zhihu.com/question/371867999/answer/1309194094 个人学习笔记,如有疏漏,欢迎补充 1. 应用场景 在COMSOL模拟中,一次求解之后往往遇到以下几种情况需要用到解的继承: 1)瞬态求解的继续运算。例如初始设定求解1

jessica0307的博客 1万+

Cursor AI编程实验指南:超越官方文档的提示词工程与工作流重构

提示词工程是引导大语言模型生成高质量代码的核心技术,其原理在于通过结构化、角色化的自然语言指令,精准控制AI的输出逻辑与内容质量。在AI辅助编程领域,有效的提示词能显著提升代码生成的相关性、安全性与工程规范性,其技术价值在于将开发者意图高效转化为可执行、可维护的代码资产。实际应用场景涵盖代码生成、重构、审查及自动化脚本编写等多个开发环节。本文以Cursor编辑器为例,深入探讨如何通过高级提示词设计、上下文引用(@)技巧及自定义指令配置,系统化构建超越基础功能的AI编程实验工作流,并分享如何建立可复用的提示词

weixin_30613433的博客 670

工程创新训练大赛智能网联车辆赛道LKA+自动驾驶9000+分数分案例

/获取主车在主车路径上的ST坐标。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。

handsomeboyou的博客 1134

使用API获取json格式数据解析后插入数据库(过程详解)

这周在开发中遇到一些所需数据但是不在数据库中,需要我们调用API接口向服务器请求信息下来,但是那些信息都是json格式的数据不能直接插入到数据库中。 一、首先在pom.xml中的dependencies标签中copy下面的代码,导入gson的jar包: <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -...

JJBOOM425的博客 5297

汉字跨越三千年的生命力与数字时代适应性

文字作为文明载体,其演变规律始终遵循实用性与适应性的平衡。汉字作为现存最古老的文字系统,凭借形义结合的六书构造原理,实现了超方言的文化统一功能。在计算机处理方面,五笔输入法与Unicode支持证明了其技术兼容性,而视觉识别效率的先天优势使其在信息时代更具传播效力。从甲骨文识别AI到现代书法设计,汉字系统持续展现强大的文化承载力与技术适应性,这种活态传承为数字人文研究提供了独特样本。

weixin_29058331的博客 355

女同事问我JDK8以后有哪些新特性?给我整不会了

整理了JDK9 - JDK16有用的新特性,让你在欢声笑语中掌握它!

陈哈哈的菜园子 1万+

VMware 17+Win10 22H2全栈配置指南|UEFI优化+GPU直通实战

​VMware下载:下载官网版本的Wmare 17 Pro (点击直达链接 )企业用户可选永久许可证,个人学习也可以直接安装使用,Win10镜像:微软官网下载22H2版ISO文件(附官方纯净版渠道 )

waicsdn_haha的博客 4021

JDK21 vs JDK8 新特性

摘要: JDK 21作为最新LTS版本,相比JDK 8实现了全面革新。核心差异包括: 语言特性:新增虚拟线程(百万级轻量级并发)、结构化并发、记录模式(深度解构对象)及增强的模式匹配(switch/instanceof); 性能优化:ZGC低延迟垃圾回收、向量API(SIMD加速计算)、紧凑字符串存储; 开发体验:简化单文件程序(无类名main方法)、标准HTTP客户端、字符串模板(类似f-string); 安全性:强制封装内部API、默认TLS 1.3加密; 移除内容:Applet、RMI激活等老旧功能。

csdn_tom_168的博客 3294

【论文复现】——基于欧式聚类的车载点云道路提取

针对车载激光点云道路信息提取的问题,提出了一种基于欧式聚类的道路提取方法。首先通过统计滤波去除噪点以免对后续处理结果产生影响,然后用坡度滤波去除路坎点,使道路边界与人行道、绿化带等与路坎相连的地物形成10~25 cm的高程阶跃,最后用欧式聚类将路面点云与其他地物点云聚类为一簇或多簇并保留道路簇,从而实现道路点云的精确提取。

点云侠的博客 1135

【GEOS-Chem模拟教程第二期下】全球生物质燃烧 GFAS 数据配置

本博客详细介绍全球生物质燃烧 GFAS 数据下载及在 GEOS-CHEM 模型中的配置

WW、forever的博客 1396

Jdk8新特性

Java 8 (又称为 JDK 8或JDK1.8) 是 Java 语言开发的一个主要版本。 Java 8 是oracle公司于2014年3月发布,可以看成是自Java 5 以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。

Java100q的博客 1901

YOLO26 改进 | 基于特征蒸馏 | 知识蒸馏 (Response & Feature-based Distillation)

本文系统介绍了YOLO26中的知识蒸馏技术,包含五大核心方法:基于响应的蒸馏(学习分类概率)、基于特征的蒸馏(学习中间层表示)、基于关系的蒸馏(学习特征关联)、通道维度蒸馏(CWD)和前景背景分离蒸馏(FGD)。文章深入解析了每种方法的数学原理与实现细节,并提出动态训练策略,包括一致性匹配和蒸馏权重退火机制。通过教师模型向学生模型传递"暗知识",在保持模型轻量化的同时逼近大模型性能。配套代码支持模块化组合不同蒸馏方法,为YOLO26模型压缩提供了一套完整的解决方案。

weixin_51988935的博客 275

JDK17新特性深度解析:从 JDK8 到现代 Java 的进化之路

JDK8与JDK17作为Java的长期支持版本,分别代表了不同时代的核心特性。JDK8凭借Lambda、Stream API等革新成为经典,而JDK17通过Record类型、Sealed类、模式匹配、ZGC等新特性,在性能、安全性和开发效率上实现全面提升。

m0_46421522的博客 2524

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JDK8、JDK17、JDK21新特性

Java 8 使得Java 平台又前进了一大步,尤其是 Stream 流操作,使用的时候非常的爽,整个代码看起来也更加的简洁、直观、舒服!Java21虚拟线程,多线程性能更快、更稳定

longzhutengyue的博客 2271

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JDK 8 和 JDK 17 的区别和新特性

本文介绍了Java Development Kit (JDK) 8和JDK 17之间的区别和差异,以及它们各自的优势和特点。JDK 8是一种较老的JDK版本,它在性能和稳定性方面得到了广泛的验证和应用。JDK 17是最新版本的JDK,它包括许多新的特性和改进,如基于类的记录(Records)、弱引用垃圾回收器(ZGC)等,这些新特性和改进为Java开发者提供了更多的选择和机会,同时也需要不断学习和更新自己的知识和技能,以适应Java技术的发展和变化。文章提供了部分简单代码使用示例

qq_37686995的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JDK17 vs JDK8 新特性

JDK17相比JDK8带来了重大革新:语言特性方面新增模式匹配、密封类、记录类、文本块和Switch表达式,大幅简化代码;API升级包括HTTP Client标准化、集合框架增强和NIO优化;性能上引入ZGC和Shenandoah垃圾回收器,提升JIT编译器;安全方面禁用SHA-1并支持新加密算法。建议新项目直接采用JDK17,存量项目可逐步迁移以利用新特性和性能优势,同时注意移除功能的替代方案。JDK17在代码简洁性、现代化API、性能优化和安全性方面全面超越JDK8。

csdn_tom_168的博客 1917

jdk8新特性(jdk8新特性面试)

jdk8.101和jdk8.102的区别 在JDK1.7的新特性方面主要有下面几方面的增强: 1.jdk7语法上 1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头。 1.2 Switch语句支持string类型 1.3 Try-with-resource语句 注意:实现java.la...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 1352

【JavaSE之JDK8新特性】三万字详文带你了解JDK8新特性

1.了解了什么是lambda 表达式,lambda 表达式和匿名内部类的区别; 2.了解了默认方法是个啥,JDK8使得接口里也可以有静态方法了; 3.介绍了四个函数式接口,Supplier,Consumer,Function,Predicate; 4.方法引用的概念以及其中的语法格式; 5.引入了Stream流(遍历数据集的高级迭代器); 6.介绍了Stream的常用方法,学习了如何更好的处理数据

qq_63691275的博客 2753

探索JDK8的新特性

Java 8这个版本提供了很多实用的新特性,针对接口推出了接口默认方法,接口静态方法以及函数式接口,同时为了简化代码编写,推出了lambda表达式,为了增强对数据的操作,还定义了Stream操作等。这个版本目前是市场上一个应用最广泛,也是最重要的一个版本。JDK8中对接口规范进行了新的定义,允许在接口中定义默认方法(使用default关键字修饰),静态方法,同时还推出了函数式接口(使用@FunctionInterface注解描述)设计。

南 阳 的博客 1920

JDK8升级到JDK17的新特性

随着 AI 时代的浪潮席卷而来,人工智能技术在各行各业的应用愈发广泛,开发领域也迎来了新的变革。为了更好地适配 AI 场景的开发需求,SpringAI 已正式发布,它为开发者提供了构建 AI 应用的强大工具和框架。而要使用 SpringAI,与之配套的 Springboot 需要升级到 3.X 版本,这就对 JDK 的版本提出了新的要求 ——Springboot 3.X 明确要求 JDK 必须在 17 及以上版本。​。

LLLLLiSHI的博客 1229

JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的?

Java依然是服务器端开发、Android移动应用和大数据处理等领域的首选语言之一。凭借其稳定性、广泛的生态系统及不断的技术改进,Java维持着强大的生命力和竞争力。

Tamate的博客 1166

jdk8新特性_JDK8的十大新特性介绍

Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。JDK8新特性: 1.Lambda表达式 2.新增Stream类 3.引入Optional 4.使用Base64...

weixin_39714191的博客 914

JDK 8 新特性详解

JDK 8 是 Java 语言的一次重大更新,引入了许多新特性,使得 Java 更加现代化和简洁。从 Lambda 表达式、Stream API 到新的日期时间 API,JDK 8 不仅提升了开发效率,还改善了代码的可读性和可维护性。随着这些新特性的不断普及,Java 变得更加适应现代编程需求,尤其在并发、函数式编程和数据处理方面提供了强大的支持。

L13290287351的博客 2671

jdk8的十大新特性

了解jdk8的新特性首先要了解jdk7的新特新都有哪些方面增强: 1.jdk语法上 1.1二进制变量的表示,支持将整数类型用二进制来表示,用Ob开头。 1.2Switch语句支持String类型 1.3Try-with-resource语句 注意:实现Java.lang.AutoCloseable接口的资源都...

super_weilin的博客 9755
上一篇: js中return、return true、return false的区别
下一篇: 注意:qq邮箱不要开通CardDAV/CalDAV服务
ZHOU_VIP
博客等级 码龄11年 1万+粉丝 1779原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZHOU_VIP

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值