Java
个人对Java基础知识学习的手记
至学者
有道无术,术尚可求,有术无道,止于术!
展开
-
StopWatch使用注意S
StopWatch进行耗时统计原创 2022-08-21 13:59:52 · 1007 阅读 · 0 评论 -
Java实现字符串多字符替换
MessageFormat类进行占位符替换逻辑原创 2022-08-21 13:54:51 · 5727 阅读 · 0 评论 -
java.sql.SQLException: Zero date value prohibited
Zero date value prohibited原创 2022-08-13 09:14:04 · 597 阅读 · 0 评论 -
关于BigDecimal 转化字符串toEngineeringString、toPlainString和toString的区别
关于BigDecimal 转化字符串toEngineeringString、toPlainString和toString的区别原创 2022-07-16 09:14:10 · 403 阅读 · 0 评论 -
BigDecimal详解
Java BigDecimal原创 2022-07-11 23:46:22 · 158 阅读 · 0 评论 -
List中subList的add造成的死循环
List中subList的add造成的死循环原创 2022-06-23 12:41:41 · 244 阅读 · 0 评论 -
Java提取字符串中的汉字
Java获取字符串中的中文原创 2022-06-12 17:11:35 · 3482 阅读 · 0 评论 -
了解规则引擎
Drools、Easy Rules、Mandarax、IBM ILOG。使用最为广泛并且开源的是 Drools。原创 2022-06-04 15:57:32 · 259 阅读 · 0 评论 -
Java实现List随机顺序
一 概述今天我通过异步编排的方式将一个List数据通过5个线程处理,按每个数据都处理10秒钟,由于需要保证已经处理过的数据不需要再处理,所以按照顺序处理会导致后面的线程执行比较慢,所以我们可以将List顺序进行随机打乱。二 实现 我们可以使用Collections.shuffle(List<?> list)方法方法来将list数据的顺序随机打乱。 参考:如何使用Collections.shuffle随机打乱List顺序_太平洋学习网|一个最全的jav...原创 2022-05-21 14:32:05 · 3091 阅读 · 0 评论 -
近期了解的
IDEA中使用SVN IDEA配置SVN步骤_Nice2cu_Code的博客-CSDN博客_idea svnhttps://blog.csdn.net/weixin_49343190/article/details/112519073Redis 7.0 发布 (baidu.com)https://baijiahao.baidu.com/s?id=1731409047489203106&wfr=spider&for=pcJava之父:尽快弃用JDK 8!https://mp.weixin.原创 2022-05-15 11:34:05 · 245 阅读 · 0 评论 -
Windows11 安装JDK指南
一 JDK地址链接:https://pan.baidu.com/s/1-RMVY4oRf9Opxb9PME_rrQ提取码:4qf5二 Windows11的系统属性设置 WIN+E 查看此电脑属性: 进入高级设置: 添加JAV...原创 2022-05-09 17:12:09 · 2662 阅读 · 0 评论 -
SprintBoot项目写测试类报错
一 实例代码@SpringBootTestpublic class CodeTest { @Resource MD5Utils md5Utils; @Test public void test(){ String pass = md5Utils.getMD5Offset("e10adc3949ba59abbe56e057f20f883e"); System.out.println("pass = " + pass); }}原创 2022-04-25 17:05:14 · 383 阅读 · 0 评论 -
Arrays类部分详解详解
在Java中有一个类可以简化对数组的操作,它就是Arrays类,该类是从JDK1.2开始就存在的工具类。常用的结果方法:排序public static void sort(int[] a) { DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0); }指定数组索引范围内值的排序 public static void sort(int[] a, int fromIndex, int toIndex) {原创 2022-04-21 23:21:48 · 208 阅读 · 0 评论 -
Java实现图片指定区域裁剪
一 概述 待续。二 代码实例 Java实现:import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;public class Image { public static void main(String[] args) { try { //注意image要...原创 2022-03-08 16:53:42 · 1396 阅读 · 0 评论 -
Java计算RGB数值
一 概述前提:Java实现根据分量计算rgb值,并分离rgb分量_百度知道 (baidu.com)https://zhidao.baidu.com/question/2079674468685898308.html二 计算RGB的值 代码实例:import java.awt.*;public class RGB { public static void main(String[] args) { rgb(); } ...原创 2022-03-08 15:07:54 · 1213 阅读 · 3 评论 -
了解Java反编译工具JAD
一 概述 下载JAD Java Decompiler Download Mirror (varaneckas.com)https://varaneckas.com/jad/二 回顾javap反编译java的class文件javap实现java程序的反编译_calm_encode的博客-CSDN博客_javap反编译一 概述对于Java程序而言,我们可以利用javac命令对源码进行编译,使得源文件转换成含有字节码的class文件,而对于class文件我们既可以使用java命令通过JV...原创 2022-02-28 22:11:58 · 351 阅读 · 0 评论 -
Base64是文件变大
一 概述今天在使用七牛接口的时候,当文件经过byte[]通过Convert.ToBase64String转换成Base64编码字符串之后,文件大小变大了。 文件从30M左右变成了40M左右的文件二 Base64编码表首先我们了解一下Base64为的编码表三 Base64编码是如何使得图片变大Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以...原创 2022-02-28 19:35:47 · 2652 阅读 · 1 评论 -
简单回顾Java中的final关键字
一 概述 在Java中,final关键字可以被用来修饰类,方法和变量(包括成员变量和局部变量)。我们在使用匿名内部类的时候需要使用final关键字来保证局部变量的不变性。为什么局部内部类和匿名内部类只能访问 final 的局部变量? | 菜鸟教程 (runoob.com)https://www.runoob.com/w3cnote/inner-lambda-final.html二 使用final关键字的原因 1. 将方法进行锁定以达到禁止继承类修改它的含义。...原创 2022-02-07 22:34:53 · 198 阅读 · 0 评论 -
回顾Java中运算符的优先级
一 整体情况表格运算符的优先级 优先级 运算符 结合性 1 ()、[]、{} 从左向右 2 !、~、++、-- 从右向左 3 *、/、% 从左向右 4 +、- 从左向右 5 «、»、>>> 从左向右 6 <、<=、>、>=、instanceof 从左向右 7 ==、!= 从左向右 8 & 从左向右 9原创 2022-02-07 22:11:57 · 345 阅读 · 0 评论 -
代码优化之静态方法
一 概述我们通过static关键字来描述一个方法,这样的方法被称为静态方法。二 静态方法与实例方法与静态方法先比,实例方法的调用需要消耗更多的系统资源,这是因为实例方法需要维护一张类似虚拟函数导向表的结构,这样可以方便的实现对多态的支持。而对于一些工具类方法,我们并没有对其重载的必要,那么我们可以通过将方法声明为static,即静态方法,从而加速方法的调用。三 代码示例 相同的方法,一个是静态方法,一个是实例方法,都执行10亿次 @Test public...原创 2022-02-07 08:42:21 · 266 阅读 · 0 评论 -
微信H5配置测试的appId和secret
一 进入公众号平台找到开发者工具,然后进入公众号测试账号二 配置自己使用的域名三 关注测试号 这个只是大概配置,详细配置不方便给出,注意测试号是不可以测试支付功能。注意微信小程序支付和微信H5支付使用的OpenID不一样。...原创 2022-01-19 08:13:48 · 1157 阅读 · 1 评论 -
IDEA常用的启动配置
一 IDEA启动配置二 启动配置解析-Xms512M //堆内存配置最小-Xmx512M //堆内存配置最大-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\dump\tmp OOM异常文件生成目录 个人常用配置。原创 2022-01-18 04:02:05 · 3940 阅读 · 1 评论 -
JsonProperty.Access.READ_ONLY 导致查询字段为null
一 概述今天我在通过OpenFeign远程调用的时候,ServiceA调用ServiceB的时候,ServiceB完成数据库的查询操作,ServiceA则会调用ServiceB。实际情况是ServiceB将字段查出来了,但是服务ServiceA中通过返回对象进行通过JSON转成接收对象接收的时候没有接收到,即获取该字段为空。这个问题导致的原因的配置如下:/** * ID */ @TableId(value = "id", type = IdType.AUTO)原创 2022-01-18 03:56:28 · 1533 阅读 · 0 评论 -
生成随机数和随机串
一 实例 /** * 生成随即4位随机数 */ public String getRandomNum() { return (int) ((Math.random() * 9 + 1) * 1000) + ""; }二 生成随机串/** * 根据用户id生成不重复邀请码 小于id 754137930为6位,超出后邀请码位数将大于6 **/public class generateCode { /** 邀请码最小长度,生成原创 2022-01-17 08:41:23 · 788 阅读 · 0 评论 -
获取Jar包中resource目录下的文件
一 概述本次将Jar包中的文件获取之后,然后将文件转成图片。jar包中文件为:String imgPath = AppLoanImageDealServiceImpl.class.getClassLoader().getResource("common/images/white.png").getPath(); imgPath:file:/xx/xx.jar!/BOOT-INF/classes!/common/pic/source.pngBufferedImage...原创 2022-01-14 23:40:45 · 1883 阅读 · 2 评论 -
command line is too long
一 详细信息Error running 'order' Error running order. Command line is too long. Shorten the command line via JAR manifest or via a classpath file and rerun.二 解决方法实际上报错信息中已经给了解决方法,就是红色部分,直接点击就好了。背景:今天我照着往常打开项目运行,突然...原创 2022-01-14 08:31:52 · 2850 阅读 · 0 评论 -
获取网络文件的MD5值
一 示例 private String md5Value(String path) { InputStream inputStream = null; String md5 = ""; try { //url路径 URL url = new URL(path); //获取连接 HttpURLConnection connection = (HttpURLCo原创 2022-01-14 08:20:45 · 1190 阅读 · 0 评论 -
Java获取ClassPath下的预存文件之空指针异常
一 异常情况二 正常情况 根据两者的不同为relativePath是否是/开始,上一篇文章没有注意该问题:Java获取ClassPath下的预存文件_calm_encode的博客-CSDN博客https://blog.csdn.net/calm_encode/article/details/122355305?spm=1001.2014.3001.5502 作为修改错误补充一下。。。...原创 2022-01-11 20:20:45 · 280 阅读 · 0 评论 -
no main manifest attribute, in /app/app.jar
一 概述今天在发布项目到docker容器中的时候,项目启动灭有报错,但是日志提示:no main manifest attribute, in /app/app.jar二 修复 增加配置: <build> <finalName>${project.name}</finalName> <plugins> <plugin> &...原创 2022-01-08 14:23:25 · 7663 阅读 · 0 评论 -
回顾List中获取子List方法
一 概述 代码 List<Integer> list = new ArrayList<>(); list.add(0); list.add(1); list = list.subList(0,1); System.out.println("list = " + list); 结果原创 2022-01-06 23:56:37 · 763 阅读 · 0 评论 -
回顾String之trim()方法
一 概述今天突然想到需要去掉字符串中首尾的空格,突然想到方法trim(),特此记录一下。二 使用String s = " trim ";s = s.trim(); 此时得到的s = "trim"原创 2022-01-06 23:54:25 · 1253 阅读 · 0 评论 -
Java获取ClassPath下的预存文件
一 背景 在以前的单体应用中我们可以将文件存放在服务器中的指定目录,然后通过代码直接获取,而当我们在使用Docker容器发布的时候,由于每次镜像打包都会将文件清除(本人目前的理解),而挂载目录使用不是很熟练(我的理解挂载目录可以解决),所以通过下列方式来实现ClassPath下预存文件处理。二 示例分析 直接向ClassPath目录下的文件读成文件流import org.springframework.core.io.ClassPathResource;imp...原创 2022-01-06 23:45:26 · 924 阅读 · 1 评论 -
实现获取阿里云STS上传token
一 配置概述 移动端配置快速搭建移动应用直传服务 (aliyun.com)https://help.aliyun.com/document_detail/31920.html配置获取STS权限使用STS临时访问凭证访问OSS (aliyun.com)https://help.aliyun.com/document_detail/100624.htm?spm=a2c4g.11186623.0.0.15541cd5FVNiAy#concept-xzh-nzk-2gb...原创 2022-01-01 16:54:04 · 1659 阅读 · 0 评论 -
FastJson解析对象字符串中的某个字段
一 概述 有时候我们需要对对象字符长进行解析然后获取其中的某个字段的值。二 实例 解析Map<String,Object>对象字符串中value中的某个值String json = "{\"17db7ff07da\":{\"productImg\":\"https://cdn.91jiekuan.com/FgKrNyt_otG8HTyzDVCVhcBG4VMq\",\"x\":161,\"y\":42,\"w\":430,\"h\":659,\"fi...原创 2021-12-15 23:09:52 · 1296 阅读 · 0 评论 -
记一次线上服务导致cpu飙升问题排查
一 概述 突然收到线上服务器的CPU占用过高,接近80%。二 排查过程 先通过TOP命令查看占有CPU的进程信息。 top命令参考资料:TOP命令输出完全解释_欣宇专栏-CSDN博客https://blog.csdn.net/lv_xinmy/article/details/8574226linux下top命令详细介绍 - DiYong - 博客园 (cnblogs.com)https://www.cnbl...原创 2021-11-02 14:17:54 · 227 阅读 · 0 评论 -
回顾toString(),String.valueOf(),(String)
1、toString(),可能会抛空指针异常在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。2、String.valueOf(),推荐使用,返回字符串“null”String.valueOf()方法是小编推荐使用的,因为它不会出原创 2021-10-28 11:52:01 · 378 阅读 · 0 评论 -
ExceptionConverter: java.io.IOException: The document has no pages.
一 概述 itextpdf实现pdf文件生成的时候提示以下异常:ExceptionConverter: java.io.IOException: The document has no pages.二 错误代码 Document document = new Document(new Rectangle(1000,1000)); PdfWriter writer = PdfWriter.getInstance(docu...原创 2021-10-22 17:30:14 · 4283 阅读 · 0 评论 -
Java实现png图片转pdf
一 概述 实现原理为将图片放入指定的pdf文件中。参考文档https://pan.baidu.com/s/11DpS-DOyRrwrYuEIGl7vWw提取码:yfs2二 依赖引入 <!--png to pdf--> <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --> <dependency> ...原创 2021-10-22 17:19:14 · 1887 阅读 · 0 评论 -
BigDecimal实现元转分时去掉无用小数位
一 实现代码Double data = 11.4;BigDecimal bigDecimal = new BigDecimal(data.toString());System.out.println(bigDecimal.multiply(new BigDecimal("100")));System.out.println(bigDecimal.multiply(new BigDecimal("100")).stripTrailingZeros().toPlainString());二原创 2021-10-22 14:59:11 · 1278 阅读 · 0 评论 -
Java通过反射获取类的属性值
一 概述 每个定义的类都是java.lang.Class的实例对象,Java在运行时,只会生成一个Class对象。对于关键字new创建的对象为静态加载的对象,而在编译时就应该将所有可能用到的类都加载。二 反射实现获取类的属性的属性值import java.lang.reflect.Method;public class BeanUtil { /** * 根据标准javaBean对象的属性名获取其属性值 * @param obj * @param property...原创 2021-10-19 13:33:13 · 3233 阅读 · 0 评论