随笔分类 - Java
摘要:使用场景 CPU占用:如果你有某些应用需要消耗大量的cpu去计算,比如正则表达式,如果你使用正则表达式比较频繁,而其又占用了很多CPU的话,那你就应该使用缓存将正则表达式的结果给缓存下来。 数据库IO性能:如果发现有大量数据需要频繁查询使用,或者某些数据不会频繁变更时,为了提高数据库IO性能,可以使
阅读全文
摘要:背景 在使用BigDecimal除法运算divide报错:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result 原因 除法运算结果为无限小数,用户
阅读全文
摘要:错误 org.openqa.selenium.WebDriverException: unknown error: cannot find Chrome binary 背景 Java一个项目,使用selenium打开chrome浏览器,进行系统截图。 原因 ubuntu系统下未安装chrome。 先
阅读全文
摘要:错误 Ubuntu下运行一个selenium调用无头chrome浏览器,出现问题:DevToolsActivePort file doesn't exist 背景 在Java项目中,使用selenium模拟谷歌浏览器打开系统页面,进行截图,在windows环境下运行都没有问题,可是部署到生成环境后,
阅读全文
摘要:背景 在一次项目开发中,使用Map接收参数; 在参数中,需要将参数值转化成int格式; 代码如下 int hashbord = Integer.valueOf(minerMap.getOrDefault("hashbord", "0").toString()); 错误如下 当参数值为空字符串时,Ma
阅读全文
摘要:背景 一直在想,list使用foreach遍历时,需不需要进行空指针校验,今天做个测试 测试 List is NULL 测试代码如下 public static void testForeach() { List<String> testList=null; testList.forEach(str
阅读全文
摘要:背景 一次开发过程中,一个业务需要后端完成任务后,将结果主动推动到前端展示,刚开始想在前端使用一个定时触发器定时访问后端接口获取任务结果,可是这样一来就会造成接口访问流量过大,影响系统性能,处理起来也不是很完美。后来发现了websocket,可以实现后端主动向前端推送数据,完美。 定义 WebSoc
阅读全文
摘要:环境 Ubuntu Nginx安装:apt install nginx 背景 当我们有了一个服务器之后,为了不浪费服务器的资源,我们可以在一个服务器上放置多个网站项目,它们共同使用80端口,通过不同的servername,来区分不同的网站项目,在实际上线的项目中,这个servername就是我们的域
阅读全文
摘要:空字符串分割后长度为1,分割后的数组判断不为空 背景 一次开发中,使用,对空字符串""进行分割,得到的数字长度为1,且不为空 验证 代码如下 public static void main(String[] args) throws ParseException { try { String fan
阅读全文
摘要:模块 介绍 hutool-aop JDK动态代理封装,提供非IOC下的切面支持 hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤 hutool-cache 简单缓存实现 hutool-core 核心,包括Bean操作、日期、各种Util等 hutool-cron 定时任
阅读全文
摘要:背景 一次开发,将SimpleDateFormat作为参数传参到各个方法中,结果报错java.lang.NumberFormatException: multiple points 原因 SimpleDateFormat是线程不安全的,只能在单线程中使用
阅读全文
摘要:Iterable To List List<ReceiverMiner> receiverMiners = new LinkedList<>(); Iterable<ReceiverMiner> receiverMinerIterable = receiverMinerRepository.find
阅读全文
摘要:在foreach()中使用return 效果:退出当前条件下的循环并执行下一次循环 List<Integer> testList = new LinkedList<>(); testList.add(0); testList.add(1); testList.add(2); testList.add
阅读全文
摘要:概念 加密/解密: 可以使用对称加密和非对称加密两种方式对数据进行操作。加密/解密更注重于对发送信息私密性的保护,只会将加密后的明文发送给目标,目标不解密是无法知道其具体内容的 签名/验签: 本质上也是一种加密,使用非对称加密对数据进行操作。签名/验签更注重于对发送信息正确性的验证,会同时将明文和加
阅读全文
摘要:背景 想从字符串”50T“中单独截取出来50这个数字 方法 String code = "50T"; //匹配非数字字符,然后全部替换为空字符,剩下的自然只有数字啦 String str = Pattern.compile("[^0-9]").matcher(code).replaceAll("")
阅读全文
摘要:根据某个属性分组 返回值:Map<key,List<>> 举例:根据userSex分组 Map<Integer, List<User>> collect = list.stream().collect(Collectors.groupingBy(User::getUserSex)); 根据某个属性过
阅读全文
摘要:摘要 定义 摘要是哈希值,我们通过散列算法比如MD5算法就可以得到这个哈希值。 摘要只是用于验证数据完整性和唯一性的哈希值,不管原始数据是什么样的,得到的哈希值都是固定长度的。 不管原始数据是什么样的,得到的哈希值都是固定长度的,也就是说摘要并不是原始数据加密后的密文,只是一个验证身份的令牌。所以我
阅读全文
摘要:随笔目录 Java内存模型定义 并发编程线程通信与同步 Java内存模型定义 定义:Java内存模型(JMM)是一个规范,主要规定了以下两点 规定了一个线程如何以及何时可以看到其他线程修改过后的共享数据,即线程之间共享变量的可见性 规定了如何在需要的时候对共享变量进行同步 并发编程线程通信与同步 定
阅读全文
摘要:随笔目录 线程分类 线程模型 各语言使用线程模型 线程分类 内核线程:有操作系统内核支持的线程,这种线程有内核来完成线程切换 用户线程:从广义上来讲,一个线程不是内核线程,就是用户线程;额下一上的用户线程是建立在用户空间的线程库上,系统内核不感知线程存在的实现,用户线程的加你、同步、销毁和调度完全在
阅读全文
摘要:Commons BeanUtils 提供对Java反射和自省API的包装。 Commons Codec 是编码和解码组件,提供常用的编码和解码方法,如DES、SHA1、MD5、Base64、URL和Soundx等。 Commons Collections 是一个集合组件,扩展了Java标准Colle
阅读全文