需要做一个简单的订单号生成规则,并发量不是特别高,从订单号上不要体现出订单的真实数量(例如自增长的ID就会暴露订单数量给用户看到) 示例我是写的订单号生成器,生成类似这样子的的16位订单号。 /** * @author Terry E-mail: yaoxinghuo at 126 dot com * @date 2022/3/4 22:57 * @description */ public class OrderUtils { private static int serial = 0; // 序列号倒数5位的前…

2022-09-18 0条评论 455点热度 0人点赞 admin 阅读全文

分布式 id 生成器 在分布式场景中,唯一 id 的生成算比较重要。 而通常在高并发场景中,需要类似 MySQL 自增 id 一样不断增长且又不会重复的 id,即 MySql 的主键 id。 比如,在电商 618 或者双 11 搞活动的时候,一般在 0 点 开始,会有千万到亿级的订单量写入,每秒大概需要处理 10 万加的订单。 而在将订单插入数据库之前,我们在业务上需要给订单一个唯一的 id,即利用 idMaker 生存唯一的订单号,再插入数据库内。如果生成的 id 是随机且没有含义的纯数字的话,在大订单量的情况下…

2022-09-14 0条评论 526点热度 0人点赞 admin 阅读全文

使用海康的SDK长传JPG格式的图片到人脸库,总是上传不成功,SDK:hCNetSDK.NET_DVR_GetUploadState的返回值是19。相同的照片(用电脑能正常打开并查看)用海康自带的网页后台上传,提示:图片格式错误 因为JPG也有编码问题,怀疑是某种编码的JPG海康设备并不支持。所以再使用Java通过BufferedImage再转一次就可以了。 工具方法代码如下: public static byte[] bufferedImageToBytes(BufferedImage image) throws…

2022-09-02 0条评论 702点热度 0人点赞 admin 阅读全文

Java中截取文件名的后缀名有几种方式,整理如下: 使用String的 查找最后一个.的位置,然后截取 /** * 获取文件名的扩展名 * @param fileName * @return 例如test.jpg 返回的扩展名是jpg */ private static String getExtension(String fileName) { String extension = ""; int i = fileName.lastIndexOf('.'); if (i > 0) { extension =…

2022-08-31 0条评论 1159点热度 0人点赞 admin 阅读全文

在使用Java的BufferedImage处理图片的时候,需要使用ImageIO读入图片文件: BufferedImage bufferedImage = ImageIO.read(new File("/path/to/image.jpg")); 发现就最开始读入的时候,报错: Exception in thread "main" javax.imageio.IIOException: Unsupported Image Type at java.desktop/com.sun.imageio.plugins.jp…

2022-08-16 0条评论 907点热度 0人点赞 admin 阅读全文

有一些原始图片,需要将他们的图片尺寸按比例缩小,并使尺寸缩小后的文件大小压缩到指定大小以内,例如海康的设备(考勤机、超脑)上传人脸底图,要求的图片文件大小尺寸在200KB以内。 我是使用的BufferedImage将图片长宽循环执行缩小到一定的比例,然后检测图片文件大小是否达到200KB以内(详见:https://blog.terrynow.com/2022/08/14/java-calculate-buffered-image-estimated-file-size/) 干货代码如下: public class …

2022-08-15 0条评论 569点热度 0人点赞 admin 阅读全文

Java使用BufferedImage处理图片的时候,想实时知道处理后的图片占用的文件的大小。 比较传统的做法是先把BufferedImage存成文件,然后读取文件的bytes大小。不过这种做法显然有点迂回。下面是我使用的计算图片大小的方法,思路是先把BufferedImage转成图片字节流到ByteArrayOutputStream,然后计算ByteArrayOutputStream的字节数,这样就不用经过再保存文件到磁盘再读取的过程了。 代码如下: // bufferedImage 之前的处理代码忽略 // B…

2022-08-14 0条评论 948点热度 0人点赞 admin 阅读全文

前面介绍了Java原生无依赖使用HttpURLConnection实现Get的例子,有时候需要是POST,所以给出POST的例子(内容Payload是JSON String) /** * * @param url 请求地址 * @param headers 请求头,多个用key,value的形式存储,key为header的名称,value为header的值,可以为null * @param json 请求体,json格式的字符串 * @return 服务器返回值 */ public static String ht…

2022-08-06 0条评论 643点热度 0人点赞 admin 阅读全文

例如一个ArrayList里面存有students,要按照student的某个属性(例如序号或者年龄)排序。 Student示例: public class Student implements Serializable { private Integer no; // 学号 private int age; // 年龄 private String name; // 姓名 public Student(Integer no, String name, int age) { this.no = no; this.n…

2022-08-04 0条评论 491点热度 0人点赞 admin 阅读全文

我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒? 某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么? 我们先回顾一下操作系统原理。 操作系统中,CPU竞…

2022-08-03 0条评论 354点热度 0人点赞 admin 阅读全文
13456720