编程手记【2023-6-25-2023-6-30】

news2024/12/25 13:08:00

1、Call to ‘toArray()’ with pre-sized array argument ‘new Integer[list.size()]’

问题:

// 将List转为数组
List<Integer> list = Arrays.asList(1,2,3,4,5,6);
Integer[] array = list.toArray(new Integer[list.size()]);
System.out.println(Arrays.toString(array));

如果这样去将List转为Array,会发现在IDEA中toArray方法下有一条黄色的波浪线,提示:Call to ‘toArray()’ with pre-sized array argument ‘new Integer[list.size()]’

解决:
我们可以将toArray(new Integer[list.size()])变为toArray(new Integer[0]),这样这个黄色的波浪线就会消失。

原因:
大概原因就是因为使用预先确定大小的数组对于并发情况来说是不安全的。
详细参考此文:https://stackoverflow.com/questions/53284214/toarray-with-pre-sized-array

请求返回乱码(unicode码)

问题:
今天在解析json数据的时候得到了一堆这样的数据:{“errNum”:0,“errMsg”:“success”,“retData”:[{“title”:“\u6536\u5e9f\u54c1\u5927\u53d4\u521a\u4e0a\u53f0\uff0c\u5c31\u60e8\u906d\u8bc4\u59d4\u706d\u706f\uff0c\u4f46\u63a5\u4e0b\u6765\u5168\u573a\u90fd\u9707\u60ca\u4e86\uff01”,“url”:“http://toutiao.com/group/6263036756505920002/”,“abstract”:“\u8ba2\u9605\u6211\u83b7\u53d6\u66f4\u591a\u7cbe\u5f69\u5185\u5bb9\uff01”,“image_url”:“http://p1.pstatp.com/list/2f90009a31a7ee8bb15”}]}

解决:
1、直接使用JSONObject.parseObject(str)解析就变为正常字符,然后操作JSONObject对象

JSONObject jsonObject = JSONObject.parseObject(str);

在这里插入图片描述
2、使用JSONObject.parseObject(str).toJSONString()转为String即可,这个String数据为正常数据

String resultCur = JSONObject.parseObject(str).toJSONString();

在这里插入图片描述

原因:
这是因为,为了更好的传输,json进行了Unicode编码。

总结SpringBoot请求参数校验注解

参考此文:https://blog.csdn.net/sinat_36645384/article/details/123672082

去除字符串空格,校验身份证和手机号方法

hutool
校验身份证号:IdcardUtil类
校验手机号:PhoneUtil类

apache.commons
去除字符串前中后空格:StringUtils.deleteWhitespace()

在开发过程中一定要将捕获的异常再抛出去,不能只记录日志,不然会产生意想不到的问题

public class Demo {
    public static void main(String[] args) {
        A a = new A();
        a.a();
        System.out.println("执行a结束");
    }
}

public class A {

    public void a() {
        System.out.println("执行a方法开始");
        try {
            B b = new B();
            b.b();
        } catch (Exception e) {
            System.out.println("报错了");
        }
        System.out.println("执行a方法结束");
    }
}

public class B {
    public void b() {
        System.out.println("执行b方法");
        int a = 10/0;
    }
}

在这里插入图片描述

上面的代码我们在B.b方法中抛出了异常,但是调用B.b方法的A.a方法捕获了异常且没有抛出,Demo类中的方法全部运行了,不要在代码中去抑制这些错误,业务报错一定要尽可能的抛出。

分布式事务

如果项目没有引入分布式事务,那一定要将得不到事务控制的方法放在最后执行。这样前面代码的报错我们是可控的,报错了程序就会中断,不会执行最后的方法,这样可以尽可能的保证数据一致性。

SQL中判断两个时间段是否有交集

条件时间:condition.start和condition.end
数据库字段:db.start和condition.end

下面是伪代码:

if (condition.start != null && condition.end != null) {
	(condition.start <= db.start and condition.end >= db.start)
	or
	(conditon.start >= db.start and condition.end <= db.end)
	or
	(conditon.start <= db.end and conditon.end >= db.end)
} else if (conditon.start != null && condion.end == null) {
	condition.start <= db.end
} else if (conditon.start == null && condion.end != null) {
	conditon.end >= db.start
} else {
	all数据
}

不同基本数据类型进行比较,一定要注意!!!

1、不同基本数据类型比较,总是返回true
2、不同引用包装基本类型比较,总是返回false
3、一个包装一个基本,使用==比较返回true,使用equals返回false

多数据源使用事务会导致多数据源失效

多数据源使用SpringBoot注解@Transactional来保证事务是不行的,只能保证一个数据库的事务。

MySQL使用同一个地址,不同的username看到的库是不同的

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

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

相关文章

《移动互联网技术》 第二章 无线网络技术: 掌握各种近距离通信的基本概念和工作原理

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

ECShop 权限管理

如何增加一个新的权限 1、配置菜单所对应的权限code admin/includes/inc_priv.php $purview[02_cost_list] cost_list; 2、配置菜单的语言 languages/zh_cn/admincommon.php $_LANG[02_cost_list] 成本明细; 3、配置权限code的语言 languages/zh_cn/admin/priv_action.p…

制作电子宣传册详细教程?掌握技巧,让你0基础也能上手

企业电子宣传册是现代企业进行品牌推广和宣传的重要手段&#xff0c;随着互联网的发展&#xff0c;越来越多的企业开始使用电子宣传册来替代传统的纸质宣传册。电子宣传册可以通过互联网&#xff0c;微信公众号等传播渠道进行发布和传播&#xff0c;可以更加快速、便捷地传递企…

碳排放预测模型 | Python实现基于LR线性回归的碳排放预测模型

文章目录 效果一览文章概述研究内容源码设计参考资料效果一览 文章概述 碳排放预测模型 | Python实现基于LR线性回归的碳排放预测模型 研究内容 碳排放被认为是全球变暖的最主要原因之一。 该项目旨在提供各国碳排放未来趋势的概述以及未来十年的全球趋势预测。 其方法是分析这…

二叉树刷题总结

题单&#xff1a; 一&#xff0c;相同的树 题目&#xff1a; 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 题目接口&#xff1a; /*** Defin…

Tensorflow神经网络模型-鲜花种类识别

必应壁纸供图 Tensorflow神经网络模型-鲜花种类识别 数据集&#xff1a;https://download.csdn.net/download/weixin_53742691/87982215 导入相关依赖 import warnings import re from IPython.display import clear_output, display from tkinter import Tk, filedialog fro…

无序中的秩序之美:集合数据为编程世界增添新的维度

文章目录 集合数据简介集合数据特点常见的集合数据类型1. 列表&#xff08;List&#xff09;2. 元组&#xff08;Tuple&#xff09;3. 集合&#xff08;Set&#xff09;4. 字典&#xff08;Dictionary&#xff09; 集合数据简介 集合数据是指将多个元素组合在一起的数据结构。…

【数据库原理】MyShop 商城数据库设计(SQL server)

MyShop 商城数据库设计 项目背景定义课程设计要求概念结构设计逻辑结构设计数据结构的描述用户信息数据结构的描述地址信息数据结构的描述商品类别数据结构的描述商品数据结构的描述购物车数据结构的描述订单数据结构的描述订单项数据结构的描述 物理结构设计用户表结构地址表结…

机器视觉检测中的图像预处理方法:平滑模糊处理,锐化

一、平滑模糊处理 以Dalsa sherlock软件为例,一起来了解一下视觉检测中平滑模糊的图像处理方法。 1、观察灰度分布来描述一幅图像称为空间域,观察图像变化的频率被称为频域。 2、频域分析:低频对应区域的图像强度变化缓慢,高频对应的变化快。低通滤波器去除了图像的高频部…

【支付系统】java springboot 生成二维码,二维码中文乱码

支付系统必不可少的就是生成二维码,有时我们会需要将支付链接转换为二维码.用户通过移动设备扫描二维码调起支付. 该篇文章主要使用的是hutool自带的二维码生成功能. 1. 引入依赖(hutool 可以按需引入这里就直接使用all了) <dependency><groupId>com.google.zxing&…

conda环境里用不了电脑系统环境里的应用ffmpeg;ffmpeg调用本地windows麦克风读取

1、 ffmpegzai conda环境里执行不了&#xff0c;在系统可以运行 import ffmpegstream ffmpeg.input(rD:\sound\222.mp4) stream ffmpeg.filter(stream, fps, fps25, roundup) stream ffmpeg.output(stream, rD:\sound\dummy2.mp4) ffmpeg.run(stream)会报错&#xff1a; Fi…

分布式配置 Config

一、Config 简介 1、Config的组成 Server&#xff1a;分布式配置中心&#xff0c;是独立运行的微服务应用&#xff0c;连接配置仓库(Git、SVN、本地化文件等)并为客户端提供获取配置信息、加密信息和解密信息的访问接口。Client&#xff1a;各个微服务&#xff0c;通过 Serve…

ChatGLM2-6B发布,位居C-Eval榜首

ChatGLM-6B自2023年3月发布以来&#xff0c;就已经爆火&#xff0c;如今6月25日&#xff0c;清华二代发布&#xff08;ChatGLM2-6B&#xff09;&#xff0c;位居C-Eval榜单的榜首&#xff01; 项目地址&#xff1a;https://github.com/THUDM/ChatGLM2-6B HuggingFace&#xf…

java开发必备技能之Java泛型

简介 泛型的优点 1、泛型的本质是为了参数化类型&#xff0c;也就是在在不创建新的类型的情况下&#xff0c;通过泛型指定的不同类型来控制形参具体限制的类型&#xff0c;很明显这种方法提高了代码的复用性(比如List因为使用泛型可以添加任意类型的对象&#xff0c;而不需要…

《PyTorch深度学习实践》第八讲 加载数据集

b站刘二大人《PyTorch深度学习实践》课程第八讲加载数据集笔记与代码&#xff1a;https://www.bilibili.com/video/BV1Y7411d7Ys?p8&vd_sourceb17f113d28933824d753a0915d5e3a90 Dataset用于构造数据集&#xff0c;该数据集能够支持索引 DataLoader用于从数据集中拿出一个…

深入理解计算机系统(3)_计算机指令

深入理解计算机系统系列文章目录 第一章 计算机的基本组成 1. 内容概述 2. 计算机基本组成 第二章 计算机的指令和运算 3. 计算机指令 4. 程序的机器级表示 5. 计算机运算 6. 信息表示与处理 第三章 处理器设计 7. CPU 8. 其他处理器 第四章 存储器和IO系统 9. 存储器的层次…

金融基础知识(三):期权

1.认购期权与认沽期权 认购期权和认沽期权都是交易所常见的期权合约。 认购期权&#xff08;Call Option&#xff09;是一种给予持有人以在未来某个时间或特定事件发生时购买底层标的资产的权利。认购期权的持有人在行权日&#xff08;Expiration Date&#xff09;可以按照期…

B/S架构的C#云检验系统源码 实验室信息管理系统源码

科技的飞速发展为实验室信息管理带来了新机遇&#xff0c;云计算技术的应用更是为实验室信息管理打开了新的大门。云 LIS 实验室信息管理系统&#xff0c;作为一种新型的信息化管理方案&#xff0c;已经在多个实验室的信息化管理中得到应用&#xff0c;并且具有广阔的应用前景。…

Python3 命名空间和作用域 | 菜鸟教程(十七)

目录 一、命名空间 &#xff08;一&#xff09;简介 1、命名空间(Namespace)是从名称到对象的映射&#xff0c;大部分的命名空间都是通过 Python 字典来实现的。 2、命名空间提供了在项目中避免名字冲突的一种方法。 3、各个命名空间是独立的&#xff0c;没有任何关系的&a…

访问者模式(Vistor)

定义 访问者是一种行为设计模式&#xff0c;它能将算法与其所作用的对象隔离开来。 前言 1. 问题 假如你的团队开发了一款能够使用巨型图像中地理信息的应用程序。图像中的每个节点既能代表复杂实体&#xff08;例如一座城市&#xff09;&#xff0c; 也能代表更精细的对象…