当前位置: 首页 > news >正文

Java程序猿搬砖笔记(十五)

文章目录

    • 在Java中将类作为参数传递(泛型)
    • IDEA快捷键:查看该方法调用了哪些方法、被哪些方法调用
      • 快捷键:ctrl+alt+h
    • IDEA快捷键:快速从controller跳转到serviceImpl
    • IDEA快捷键:实现接口的方法
    • IDEA 快捷键:快速包裹代码
    • IDEA插件EasyYapi安装
    • IDEA生成接口文档插件Doc View
    • RunApi介绍
    • Java方法传参机制(Java只有值传递)
      • 实参和形参
      • 值传递和引用传递
      • 总结
    • Java只能值传递实际案例分析
    • Java 阻塞队列BlockingQueue提供的四种方法
    • Java 7批量关闭流工具类
    • Spring @Configuration注解
    • YAPI安装
    • MySQL所有数据库varchar字段长度不能超过65535
    • MySQL SUBSTRING_INDEX函数
    • MySQL 字符串截取函数
      • left: 从字符串左边开始,截取几位
      • right:从字符串右边开始,截取几位
      • substring:从字符串某个位置开始截取
    • SQLite3数据库相关操作
    • MySQL 查询结果为空(或者null)时,返回指定字符串
    • 不同种类个税缴纳比例(税率标准+计算公式)
    • Linux查看端口被哪个进程被占用的六个方法
    • Spring定时任务总结

在Java中将类作为参数传递(泛型)

示例代码如下:
// 示例方法
public <T> void downloadErrorData(Class<T> className){List<T> downloadList = new ArrayList<>();
}
// 调用示例
importService.downloadErrorData(PropositionExpertImportVo.class);

IDEA快捷键:查看该方法调用了哪些方法、被哪些方法调用

快捷键:ctrl+alt+h

查看该方法被哪些方法调用(即调用链)
在这里插入图片描述

查看该方法调用了哪些方法
在这里插入图片描述

IDEA快捷键:快速从controller跳转到serviceImpl

在这里插入图片描述
快捷键:CTRL+T

IDEA快捷键:实现接口的方法

进入到实现类中,按 ALT+SHIFT+P

IDEA 快捷键:快速包裹代码

实现快速生成if-else、for、try-catch-finally语句。
快捷键:CTRL+ALT+T

IDEA插件EasyYapi安装

参考链接、参考链接

IDEA生成接口文档插件Doc View

  • 支持文档预览、文档修改
  • 支持批量导出MarkDown文件到本地
  • 支持上传文档到YAPI、Show Doc、语雀平台
  • 支持Swagger和普通注释,支持多种字段必填配置

在这里插入图片描述
官网

RunApi介绍

介绍和下载地址、Github

Java方法传参机制(Java只有值传递)

实参和形参

1、实参:用于传递给方法的参数,必须有确定的值。
2、形参:用于定义方法、接收实参,不需要确定的值。

值传递和引用传递

1、值传递:方法接收的是实参值创建的一个副本,对形参的修改不会影响到实参。
2、引用传递:方法接收的值是实参所引用的对象在堆中的地址,不会创建副本,对形参的修改将影响到实参。

总结

  • Java只有值传递、Java只有值传递、Java只有值传递。
  • Java实参传递给方法实际上是传递了一个副本。基本数据拷贝值,引用类型数据拷贝引用。
  • Java实参和形参相当于遥控器,对象相当于电视机。遥控器可以改变电视机的内容,但是不能改变原来的遥控器。

参考链接、
参考链接

Java只能值传递实际案例分析

示例代码如下:

SaveRedisDto saveRedisDto = new SaveRedisDto();
List<ImportErrorVo>  errorList = new ArrayList<>();
saveRedisDto.setErrorList(errorList);

saveRedisDto.setErrorList会创建一个errorList的引用副本传递,这个引用副本一直指向最开始的对象。
后续如果改变errorList的引用指向,并不会影响saveRedisDto的getErroList的指向。

Java 阻塞队列BlockingQueue提供的四种方法

抛异常特定值阻塞超时
插入add(o)offer(o)put(o)offer(o, timeout, timeunit)
移除remove(o)poll(o)-jdk8不存在了take(o)poll(timeout, timeunit)
检查contains(o)

Java 7批量关闭流工具类

public static void close(AutoCloseable... t) {for (AutoCloseable closeable : t) {if (closeable != null) {try {closeable.close();} catch (Exception e) {log.error("批量关闭流异常:",e);}}}
}

适用于:不在try里面创建的流,也就是说需要手动关闭的
参考链接

Spring @Configuration注解

  • @ComponentScan就相当于spring配置文件中的context:component-scan,主要作用就是去扫描指定包下使用注解的类,然后将使用注解的类注入到spring容器中。
  • @Configuration注解的类就相当于spring配置文件,可以在该类中配置使用@bean注解将类注入容器中,相当于xml文件中的标签。 启动spring项目时只需要指定被@configuration标识的配置类就行,而不需要去加载繁琐的xml了。

YAPI安装

官网-部署文档、
Github-源代码

MySQL所有数据库varchar字段长度不能超过65535

在这里插入图片描述

MySQL SUBSTRING_INDEX函数

把字符串截取后,返回指定字符串。
如果字符串中没有分割符,会返回整个字符串。
示例:

-- 返回 ZGGX-MT-SH
select SUBSTRING_INDEX('ZGGX-MT-SH-20230013','-',3);
-- 返回 20230013
select SUBSTRING_INDEX('ZGGX-MT-SH-20230013','-',-1);-- 返回整个字符串 ZGGXMTSH20230013
select SUBSTRING_INDEX('ZGGXMTSH20230013','-',3);
-- 返回整个字符串 ZGGXMTSH2023-0013
select SUBSTRING_INDEX('ZGGXMTSH2023-0013','-',3);

MySQL 字符串截取函数

left: 从字符串左边开始,截取几位

示例:

-- 返回  这是要
select left('这是要截取的内容', 3); 

right:从字符串右边开始,截取几位

示例:

-- 返回的内容
select right('这是要截取的内容', 3);

substring:从字符串某个位置开始截取

示例:

-- 从字符串的第 4 个字符位置开始取,只取 2 个字符。
-- 返回  截取
select substring('这是要截取的内容', 4, 2); -- 从字符串的第 4个字符位置开始取,直到结束。
-- 返回  截取的内容
select substring('这是要截取的内容', 4);  -- 从字符串(倒数)的第 4个字符位置开始取,只取2个字符。
-- 返回  取的
select substring('这是要截取的内容', -4, 2); -- 从字符串(倒数)的第 4个字符位置开始取,直到结束。
-- 返回 取的内容
select substring('这是要截取的内容', -4);  

SQLite3数据库相关操作

参考链接

MySQL 查询结果为空(或者null)时,返回指定字符串

-- sql模板
SELECT IF(ifnull(字段名,'') = '', '返回的字符串', 字段名(或者指定字符)) AS 别名 
FROM tableName;-- 示例sql
SELECT IF(ifnull(introduce,'') = '', '1', '2') AS introduceEmpty
FROM t_achievement_application;

不同种类个税缴纳比例(税率标准+计算公式)

参考链接
公司上班适用于:
在这里插入图片描述
在这里插入图片描述
所以会出现前几个月税率3%,后几个月税率10%、20%的情况

Linux查看端口被哪个进程被占用的六个方法

参考链接
参考链接

Spring定时任务总结

  • 定时任务默认是单线程的。如果任务执行时间超过定时任务间隔时间,不管是同一个定时任务还是不同的定时任务,下一个任务都会被阻塞。
    待上一个执行完后,下一个定时任务不是立刻执行,而是需要等待(定时任务cron时间)才会执行。可以理解成是上一个任务执行完,才会开始计时
  • 【推荐该方式】实现SchedulingConfigurer接口后,定时任务会变成多线程执行。不同的定时任务之间互不影响,同一个定时任务(方法)依然会有被阻塞的机制。
    配置类代码如下:
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {taskRegistrar.setScheduler(Executors.newScheduledThreadPool(8));}
}
  • 如果定时任务交给线程池处理,则下一个任务也不会被阻塞。

参考链接

相关文章:

Java程序猿搬砖笔记(十五)

文章目录 在Java中将类作为参数传递(泛型)IDEA快捷键&#xff1a;查看该方法调用了哪些方法、被哪些方法调用快捷键&#xff1a;ctrlalth IDEA快捷键&#xff1a;快速从controller跳转到serviceImplIDEA快捷键&#xff1a;实现接口的方法IDEA 快捷键&#xff1a;快速包裹代码ID…...

flask----内置信号的使用/django的信号/ flask-script/sqlalchemy介绍和快速使用/sqlalchemy介绍和快速使用

信号 内置信号的使用 # 第一步&#xff1a;写一个函数 def test(app, **kwargs):print(app)print(type(kwargs))# 请求地址是根路径&#xff0c;才记录日志&#xff0c;其它都不记录print(kwargs[context][request].path)if kwargs[context][request].path /:print(记录日志…...

Zookeeper 面试题

一、ZooKeeper 基础题 1.1、Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架&#xff0c;开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用&#xff0c;配合 Watcher 事件通知机…...

ELK 企业级日志分析系统(二)

目录 ELK Kiabana 部署&#xff08;在 Node1 节点上操作&#xff09; 1&#xff0e;安装 Kiabana 2&#xff0e;设置 Kibana 的主配置文件 3&#xff0e;启动 Kibana 服务 4&#xff0e;验证 Kibana 5&#xff0e;将 Apache 服务器的日志&#xff08;访问的、错误的&#x…...

Linux版本 centOS 7,java连接mysql

在Linux下 使用java 访问数据库 &#xff0c; java 1.7版本&#xff0c; mysql 8.0.33版本&#xff0c; 连接驱动 mysql-connector-java-5.1.49.jar 代码如下&#xff1a; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import ja…...

开发工具IDEA的下载与初步使用【各种快捷键的设置,使你的开发事半功倍】

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于IDEA的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.IDEA的简介以及优势 二.IDEA的下载 1.下…...

YoloV5/YoloV7优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

💡💡💡本文改进:感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 RFAConv| 亲测在多个数据集能够实现大幅涨点,有的数据集达到3个点以上 💡💡💡Yolov5/Yolov7魔术师…...

freeswitch的mod_xml_curl模块动态获取configuration

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 mod_xml_curl模块支持从web服务获取xml配置&#xff0c;本文介绍如何动态获取acl配置。 环境 centos&#xff1a;CentOS release 7.0 (Final)或以上版本 freeswitch&#xff1a;v1.6.20 GCC&#xff1a;4.8.5 web…...

CANdelaStudio 使用介绍

CANdela Studio使用_哔哩哔哩_bilibili 一.CANdelaStudio使用tips 1.开始菜单打开软件&#xff0c;避免软件字体是德文的 2.打开软件之后&#xff0c;用“Open”打开.cdd或者.cddt文件&#xff0c;不要双击文件打开&#xff0c;这样容易报错 3.查看软件版本信息 4.只有Admin版…...

锚框【动手学深度学习】

生成多个锚框 假设输入图像高为h,宽为w,我们以图像每个像素为中心生成不同形状的锚框,缩放比 s∈(0,1],宽高比为r>0。那么锚框的宽度和高度分别为和。当中心位置给定时, 已知宽和高的锚框是确定的。缩放比为锚框高与图像高的比值,然后得到一个正方形锚框面积。 ​​…...

Qt扫盲-Qt Model/View 理论总结 [上篇]

Qt Model/View 理论总结 [上篇] 一、概述1.model / view 架构2. Model3. View4. Delegate5. 排序6. 快捷类 二、使用model/view1. Qt包含两种 model2. 在现有 model 中使用 view 三、Model 类1. 基本概念1.model 索引2. 行和列2. item 的父 item3. Item roles4. 总结 2. 使用mo…...

【猿灰灰赠书活动 - 01期】- 【Python网络爬虫入门到实战】

说明&#xff1a;博文为大家争取福利&#xff0c;与机械工业出版社合作进行送书活动 图书&#xff1a;《Python网络爬虫入门到实战》 一、好书推荐 图书介绍 本书介绍了Python3网络爬虫的常见技术。首先介绍了网页的基础知识&#xff0c;然后介绍了urllib、Requests请求库以及X…...

小兔鲜项目 uniapp (1)

目录 项目架构 uni-app小兔鲜儿电商项目架构 小兔鲜儿电商课程安排 创建uni-app项目 1.通过HBuilderX创建 2.通过命令行创建 pages.json和tabBar案例 uni-app和原生小程序开发区别 用VS Code开发uni-app项目 拉取小兔鲜儿项目模板代码 基础架构–引入uni-ui组件库 操…...

盛弘电气2021秋招笔试题

笔试时间:2020.09.16,60分钟 宣讲会后直接笔试,若通过会有两轮面试,7-15 天出结果。 题型:简答题8道,每题5分,共40分。编程题4道,每题15分,共60分。 公司介绍:公司现阶段主要产品为充电桩,专注于电力电子技术控制电能,交直流变换。 薪资待遇:本科8-15K,研究生…...

Poco框架(跨平台自动化测试框架)

Poco基于UI控件搜索原理 &#xff0c;适用于Android、iOS原生和各种主流的游戏引擎应用。 中文官方文档&#xff1a;欢迎使用Poco (ポコ) UI自动化框架 — poco 1.0 文档 参考文档&#xff1a; Poco介绍 - Airtest Project Docs 环境准备 安装库&#xff1a;pip install po…...

使用RANSAC算法在点云中拟合原始3D形状:pyRANSAC-3D的介绍和应用

随机样本共识(RANSAC)是一种强大的算法,用于从数据集中估计数学模型的参数,特别是在数据包含大量异常值时。在3D计算机视觉中,RANSAC常用于从点云数据中拟合原始形状,例如平面、长方体和圆柱体。本文将介绍一个名为pyRANSAC-3D的开源库,它提供了RANSAC算法的Python实现,…...

GPT-3.5 人工智能还是人工智障?——西红柿炒钢丝球!!

人工智能还是人工智障&#xff1f;——西红柿炒钢丝球 西红柿炒钢丝球的 基本信息西红柿炒钢丝球的 详细制作方法材料步骤 备注幕后花絮。。。。。。。。。关于GPT-3.5&#xff0c;你的看法&#xff1a; 西红柿炒钢丝球的 基本信息 西红柿炒钢丝球是一道具有悠久历史的传统中式…...

移动技术相关基本概念

信息网络隔离装置 一种能够保障企业信息网络安全的高级网络设备&#xff0c;主要作用是隔离内外网&#xff0c;阻隔外界攻击&#xff0c;保护企业网络不遭受黑客攻击、木马病毒入侵、信息泄露等安全威胁。同时还能对企业内部的流量进行监视&#xff0c;保护企业敏感数据不被内…...

数学建模—分类模型

本讲将介绍分类模型。对于而分类模型&#xff0c;我们将介绍逻辑回归&#xff08;logistic regression&#xff09;和Fisher线性判别分析两种分类算法&#xff1b;对于多分类模型&#xff0c;我们将简单介绍Spss中的多分类线性判别分析和多分类逻辑回归的操作步骤下。 本题按水…...

腾讯云SA3服务器AMD处理器CPU网络带宽性能详解

腾讯云AMD服务器SA3实例CPU采用2.55GHz主频的AMD EPYCTM Milan处理器&#xff0c;睿频3.5GHz&#xff0c;搭载最新一代八通道DDR4&#xff0c;内存计算性能稳定&#xff0c;默认网络优化&#xff0c;最高内网收发能力达1900万pps&#xff0c;最高内网带宽可支持100Gbps。腾讯云…...

LLMs 系列科普文(11)

目前我们已经介绍了大语言模型训练的两个主要阶段。第一阶段被称为预训练阶段&#xff0c;主要是基于互联网文档进行训练。当你用互联网文档训练一个语言模型时&#xff0c;得到的就是所谓的 base 模型&#xff0c;它本质上就是一个互联网文档模拟器&#xff0c;我们发现这是个…...

数学建模期末速成 主成分分析的基本步骤

设有 n n n个研究对象&#xff0c; m m m个指标变量 x 1 , x 2 , ⋯ , x m x_1,x_2,\cdots,x_m x1​,x2​,⋯,xm​&#xff0c;第 i i i个对象关于第 j j j个指标取值为 a i j a_{ij} aij​,构造数据矩阵 A ( a i j ) n m A\left(\begin{array}{c}a_{ij}\end{array}\right)_{…...

意识上传伦理前夜:我们是否在创造数字奴隶?

当韩国财阀将“数字永生”标价1亿美元准入权时&#xff0c;联合国预警的“神经种姓制度”正从科幻步入现实。某脑机接口公司用户协议中“上传意识衍生算法归公司所有”的隐藏条款&#xff0c;恰似德里达预言的当代印证&#xff1a;“当意识沦为可交易数据流&#xff0c;主体性便…...

go的工具库:github.com/expr-lang/expr

github.com/expr-lang/expr 是一个 Go 语言的表达式求值库&#xff0c;它允许你在运行时安全地执行表达式。主要用途包括&#xff1a; 1.表达式求值&#xff1a; program, err : expr.Compile("2 2") if err ! nil {// 处理错误 } result, err : expr.Run(program…...

如何打造一款金融推理工具Financial Reasoning Workflow:WebUI+Ollama+Fin-R1+MCP/RAG

在之前的文章中&#xff0c;我探讨了如何使用具身人工智能&#xff0c;让大语言模型智能体来模仿[当今著名对冲基金经理的投资策略]。 在本文中&#xff0c;我将探讨另一种方法&#xff0c;该方法结合了经过金融推理训练的特定大语言模型&#xff08;LLM&#xff09;&#xff0…...

如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问

​ 内网IP只能在本地内部网络连接访问&#xff0c;当本地搭建服务器部署好相关网站或应用后&#xff0c;在局域网内可以通过内网IP访问&#xff0c;但在外网是无法直接访问异地内网IP端口应用的&#xff0c;只有公网IP和域名才能实现互联网上的访问。那么需要如何把本地服务器变…...

MYSQL(二) ---MySQL 8.4 新特性与变量变更

MySQL 8.4 新特性与变量变更 作者&#xff1a;程序员LSP 分类&#xff1a;MySQL 8.4 教程 / 新特性 / 升级指南 更新时间&#xff1a;2025年6月 &#x1f4cc; 前言 MySQL 8.4 是当前最新的稳定版本&#xff0c;相较于 8.0 系列&#xff0c;在审计日志、高可用、性能调优、认证…...

WINUI——Magewell视频捕捉开发手记

背景 因需要融合视频&#xff0c;并加载患者CT中提取出的气管镜与病变&#xff0c;以便能实时查看气管镜是否在正确位置。 开发环境 硬件&#xff1a;Magewell的USB Capture HDMI Gen 2 IDE&#xff1a;VS2022 FrameWork: .Net6 WINUI Package: MVVMToolKit NLog Ma…...

9.进程间通信

1.简介 为啥要有进程间通信&#xff1f; 如果未来进程之间要协同呢&#xff1f;一个进程要把自己的数据交给另一个进程&#xff01;进程是具有独立性的&#xff0c;所以把一个进程的数据交给另一个进程----基本不可能&#xff01;必须通信起来&#xff0c;就必须要有另一个人…...

计算机组成与体系结构:补码数制二(Complementary Number Systems)

目录 4位二进制的减法 补码系统 &#x1f9e0;减基补码 名字解释&#xff1a; 减基补码有什么用&#xff1f; 计算方法 ❓为什么这样就能计算减基补码 &#x1f4a1; 原理揭示&#xff1a;按位减法&#xff0c;模拟总减法&#xff01; 那对于二进制呢&#xff1f;&…...