Java小知识

news2025/2/10 8:16:04

一、lambda

()->{}
()中为接口唯一方法中的参数,可以任意取
{}为接口唯一方法中的执行语句,返回的结果类型必须符合接口中方法返回值的定义

原理理解:
Public interface Printable{
String print(String suffix);}

在函数式编程中有一个方法来找到这个字符串(前提是接口中只有一个抽象方法,称为泛函),即一个注解(@Functionallnterace),在通常情况下在调用时如果接口满足泛函,即使不显示的标识这个汪解,也会发挥作用;但如果我们在编与一个接口时显示标注此汪解,那么在定义超过一个抽象方法时,编辑器会报错

static void printThing (Printable thing){
thing print();}

理解:当我们通过printThin()方法去调用实现了Printable的类的print方法时,需要先定义一个实现了Printable 的类,重写print方法,然后new出这个类,传入printThing()方法中,从而获取结果优化:使用lambda允许我们直接传递一个方法的实现作为可打印参数

使用实例:
// 代码作为参数,直接传递具体实现
Printable lambdaPrintable = (s)> “MEOW” +s;
printThing(lambdaPrintable);

二、future

将任务提交给future去异步处理,然后获取结果
boolean.isDone()提供方法查询任务的执行情况
V.get()等待任务执行结束,然后获取结果

三、stream

1、什么是stream流:

类似一个迭代器,只能遍历一次,在流的过程中对元素执行操作,如过滤或者符合某个条件

2、数据源(数組成集合)

每次操作后返回一个新的流对象,方便进行链式操作,但原有的流对象不变

3、创建流

.stream()

4、操作流:

4.1过滤

.filte()
将流中的元素作为lambda表达式中的参数,执行箭头后的逻辑
例如:

list.stream().filter/element->element.cantains("王"));

就会得到包含王的元素数组的流

4.2映射

将流中的元素转化为新的流中的元素
.map()
例如:

list.stream().map(String:length);

得到流中元素的个数的数组的流

5、转换流

.collect()
例如:

list.stream().map(String:length).collect(Collectors.tolist();

得到一个新的个数的list

6、流转map时键冲突处理

Map<String,MultipleClientNoMap>multiMap=multipleClientNoMaps.stream().collect(Collectors.toMap(m1-> m1.getCurrClientNo(),m2->m2,(v1,v2)->v2));

理解:
m1-> m1.getCurrClientNo()作为map的键
m2->m2作为map的值
(v1,v2)->v2:键冲突时保留原始的值

7、.findAny()

.findAny()
.orElse(StringUtils.EMPTY);
理解:
.findAny()用于查找任意一个元素井返回optional对象
如果流为空,则返回一个空optional对象
15-20230609
.orElse(StringUtils.EMPTY);用于获取Optional对象中的值,如果optional对象为空,则返回指定的默认值,这里返回一个空宇符串""

8、.groupingby()

根据属性进行分组
在这里插入图片描述
结合filter从分组结果中排除某些条目
在这里插入图片描述
配合mapping
在这里插入图片描述

四、Object…

可变个数的形参,允许一切继承Object的对象作为参数

五、indexOf()

indexOf(string str):返回指定字符str在字符串中(方法调用者) 第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回-1。

indexOf(string str, int index):返回从 index 位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回-1。

使用实例:

historyCoverage.getFullName.indexOf("安全")<0;

表示不包含“安全”这个司

六、SQL

6.1 count函数

用法:

# 查询符合条件的某列一共有多少行数据
select count(列名)from 表名 where 列名=#{字段名};
# 查询某表的总行数
select count(*) from 表名;
# 查询某列不同值的数目(相同的记为一个)
select count(distinct 列名)from 表名;

使用案例:

<select id="getSigniClaimRecord" parameterType="String" resultType="integer">
    select count('Y') from event_info el
    where exists (
        select 1 from claim_apply_cause cac
        where cac.claim_cause = '09' and cac.register_no = e1.regsno
    )
    and e1.case_state in ('10', '13', '14')
    and el.clientno = #{clientNo, jdbcType=VARCHAR}
</select>

count(‘Y’),表示统计满足条件的行数,但是并不关心具体的列或字段。'Y’是一个任意的字符串常量,作为参数传递给COUNT函数,它的实际值并不影响计数的结果。

6.2 select 1

select 1 from 表示如果返回结果为空,则表示条件不满足;如果返回结果为1,则表示条件满足。

七、 final类型的属性值可以改吗

final 修饰的引用类型属性本身是不可改变的,但是它所引用的对象的状态可以改变。

八 、bitset

使用位来存储Boolean信息,0表示假,1表示真
用法:

九、Optional.ofNullable()

作用:解决空值判断问题,避免空值(null)显示判断,避免空值导致的空指针问题

//if判断:判断好多层
	int count1 = 1;
	if(testDemo != null){
		if(testDemo.getCount() != null){
			count1 = testDemo.getCount();
		}
	}
	System.out.println(count1);
	
	//三目运算符:嵌套层数深,可读性不好
	int count2 = testDemo != null ? (testDemo.getCount() != null ? testDemo.getCount() : 1) : 1;
	System.out.println(count2);
	
	//Java8-Optional:优雅,可读性较好
	int count3 = Optional.ofNullable(testDemo).map(item -> item.getCount()).orElse(1);
	System.out.println(count3);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/640354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【哈佛积极心理学笔记】第6讲 乐观主义

第6讲 乐观主义 How can we create consciously and subconsciously a positive environment, where we actually can take out the most moral, the most successful self to appreciate that self. Create a powerful positive situation to bring out the best in people.…

STM32——08-STM32感应开关盖垃圾桶

项目二&#xff1a;感应开关盖垃圾桶 项目需求 检测靠近时&#xff0c;垃圾桶自动开盖并伴随滴一声&#xff0c; 2 秒后关盖 发生震动时&#xff0c;垃圾桶自动开盖并伴随滴一声&#xff0c; 2 秒后关盖 按下按键时&#xff0c;垃圾桶自动开盖并伴随滴一声&#xff0c; 2 秒后…

DAY19:二叉树(九)路径总和+已知中后序构造二叉树

文章目录 112.路径总和思路伪代码完整版写法1写法1必须分开两个函数的原因注意点 完整版写法2写法2不涉及到回溯的原因 106.中序和后序遍历构造二叉树思路伪代码后序数组如何切割出左右区间写法注意区间切割注意中序和前序如何唯一构造二叉树后序和前序能否唯一构造二叉树&…

03-踏入程序诗意:Golang 流程控制的优雅律动

&#x1f4c3;个人主页&#xff1a;个人主页 &#x1f525;系列专栏&#xff1a;Golang基础 &#x1f4ac;Go&#xff08;又称Golang&#xff09;是由Google开发的开源编程语言。它结合了静态类型的安全性和动态语言的灵活性&#xff0c;拥有高效的并发编程能力和简洁的语法。G…

Linux 安装Docker完整教程(六)

文章目录 背景一、Docker简介二、docker desktop 和 docker engin 区别三、Linux 安装Docker1. 安装docker的前置条件&#xff1a;2. 查看Docker版本3. 检查是否安装过Docker4. Docker的自动化安装 (不想自带化安装的可跳过本步骤&#xff0c;选择手动安装)5. Docker手动安装&a…

第二章CompletableFuture

文章目录 Future和Callable接口FutureTask实现类为什么引出FutureTask Future到CompletableFutureFuture优点Future的缺点get()阻塞isDone()轮询Future应用现状 CompletableFuture基本介绍CompletionStage核心的四个静态方法&#xff08;分为两组&#xff09;runAsync无返回值s…

数字人解决方案——实时对话数字人源码与环境配置

前言 1.从技术角度来看&#xff0c;现在的数学人就是一个缝合怪&#xff0c;把各种技术点都整合在一起&#xff0c;用来实现直播、对话等数字人。技术流程大概如下图&#xff1a; 其实最重要的一环应该属于LLM(大型语言模型)&#xff0c;LLM相当于一个人的意识&#xff0c;如果…

外卖订单管理系统(Javaweb+Mysql)

程序源码 可以通过上方代码包.rar文件下载&#xff0c;也可以在下方链接下载 链接: https://pan.baidu.com/s/1OruBEcEK70DtUbvA8UIE-w?pwddkdg &#xff08;数据库sql文件在项目根目录下data -> sql&#xff09; 设计报告 【金山文档】 外卖订单管理系统设计报告 http…

编译原理期末速成–正规式、NFA转DFA、DFA的简化

编译原理期末速成–正规式、NFA转DFA、DFA的简化 文章目录 编译原理期末速成--正规式、NFA转DFA、DFA的简化什么是DFA、NFA&#xff1f;看个题消化一下步骤一&#xff1a;步骤二&#xff1a;步骤三&#xff1a;步骤四&#xff1a;步骤五&#xff1a;步骤六&#xff1a;步骤七&a…

POJ The Game

原题目&#xff1a;传送锚点 1.题目 The Game Description A game of Renju is played on a 19*19 board by two players. One player uses black stones and the other uses white stones. The game begins in an empty board and two players alternate in placing black …

面对工作中的失误:从错误中学习与成长

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想…

C99的一些新特性记录

固长类型头文件<stdint.h> 由于历史原因&#xff0c;C语言中实现的整型数只保证了在不同硬件体系中的最小长度&#xff0c;因此在使用时&#xff0c;需要根据代码实际运行的平台来确定类型的长度&#xff0c;这导致代码非常不方便移植。C99标准通过增加固长类型头文件引入…

【Unity3D】屏幕深度和法线纹理简介

1 前言 1&#xff09;深度纹理和法线纹理的含义 深度纹理本质是一张图片&#xff0c;图片中每个像素反应了屏幕中该像素位置对应的顶点 z 值相反数&#xff08;观察坐标系&#xff09;&#xff0c;之所以用 “反应了” 而不是 “等于”&#xff08;或 “对应” &#xff09;&am…

chatgpt赋能python:Python浮点型转换为整型的方法和应用场景

Python浮点型转换为整型的方法和应用场景 介绍 Python的浮点型和整型在数值计算中应用广泛。有时候我们需要将一个浮点数转换为整数&#xff0c;这时候就需要使用Python提供的一些函数来完成转换。本文将介绍Python浮点型转换为整型的方法和应用场景。 浮点型和整型的区别 …

初探MyBatis实现简单查询

一、创建数据库与表 1、创建数据库 在Navicat里创建MySQL数据库 - testdb&#xff0c;采用utf8mb4字符集 2、创建用户表 CREATE TABLE t_user (id int(11) NOT NULL AUTO_INCREMENT,name varchar(50) DEFAULT NULL,age int(11) DEFAULT NULL,address varchar(255) DEFAULT…

SpringBoot的日志文件

文章目录 前言日志怎么用自定义打印日志⽇志级别 - 了解⽇志持久化Lombok提供的方法 前言 上文讲述了 SpringBoot项目的构建 与配置文件的使用 ,下面来介绍 SpringBoot 的日志文件 , 日志在程序 中起到的作用是很大的 , 谁写的程序能不报错误呢, 日志就是一种让你快速找到错误…

Linux环境变量配合权限维持手法

前言&#xff1a; 权限维持的时候有其中有两种&#xff0c;一种是alias别名、第二种是prompt_command&#xff0c;这里我们可以将其添加到环境变量中&#xff0c;每次运行的时候都可以使用&#xff0c;从而达到权限控制的效果&#xff0c;而不是临时执行的效果。 环境变量&am…

harbor仓库的搭建

harbor仓库的搭建 前言一、准备二、registry私有仓库拉取registry镜像上传镜像下载镜像添加私有仓库解析配置使用非加密端口拉取镜像 三、仓库加密域名保持一致部署客户端证书&#xff0c;不然会报错验证仓库认证删除registry&#xff0c;重建登录仓库&#xff0c;不然无法上传…

[论文阅读笔记76]GPT Understands, Too(P-tuning)

1. 基本信息 题目论文作者与单位来源年份GPT Understands, Too清华大学 Citations, References 论文链接&#xff1a;https://arxiv.org/pdf/2103.10385.pdf 论文代码&#xff1a; 2. 要点 研究主题问题背景核心方法流程亮点数据集结论论文类型关键字微调大模型采用传统微…

css空间转换

目录 1. 3D移动 translate3d 1.1 三维坐标系 1.2 3D移动 translate3d 1.3 透视 perspective 1.4 translateZ 2. 3D旋转 rotate3d 2.1 左手法则-判断元素旋转方向的取值正负 3. 3D呈现 transform-style【***】 4. 3D缩放 transform:scale3d 1. 3D移动 translate3d …