
java
文章平均质量分 57
Dream_xun
越努力,越幸运!
展开
-
Java打印异常的正确方式
Java如何正确的打印异常日志原创 2023-02-02 11:03:49 · 5164 阅读 · 1 评论 -
阿里巴巴编码规范认证
休息日去考了一个阿里巴巴编码规范认证证书,题目还是偏难的,50个题,差不多44个多选题。如果平时编码注意规范,那么在看上1-2遍还是好考过的。原创 2022-02-26 22:21:27 · 1412 阅读 · 0 评论 -
判断一个数是否为整数、正整数、小数通用算法
思路用它本身减去它保留0位小数(建议不要四舍五入,直接舍去小数部分)的值和0去比较如果大于0,说明这个数是小数如果等于0,说明这个数是整数不会出现小于0的情况。如果还要判断是否是正整数,那么在加一个条件,这个数是否大于0public class TestMain { public static void main(String[] args) { BigDecimal a = BigDecimal.valueOf(12.00); BigDecimal b原创 2022-01-07 15:35:20 · 7367 阅读 · 0 评论 -
问题:Feign调用的服务配置了server.servlet.context-path时,调用出现404
问题:Feign调用的服务配置了server.servlet.context-path时,调用出现404先说明一下情况:我现在有两个服务:order服务和聚合服务oms,order服务配置了server.servlet.context-path为/order。提供了一个接口:/token/timestamp,访问这个接口的完整路劲是:order/token/timestampFeignClient配置:有的人可能觉得我这个路劲有问题,应该写成这样子:/order/token/timestamp但是原创 2021-11-04 11:35:14 · 2254 阅读 · 0 评论 -
Java中的偏向锁,轻量级锁, 重量级锁解析
原文链接:https://blog.youkuaiyun.com/lengxiao1993/article/details/81568130作者:萧萧九宸 文章目录 参考文章Java 中的锁一些先修知识synchronized 关键字之锁的升级(偏向锁->轻量级锁->重量级锁)无锁 -> 偏向锁偏向锁的撤销(Revok原创 2021-10-23 11:05:12 · 407 阅读 · 0 评论 -
Mybatis/Mybatis-Plus 使用流式查询优化大量数据导出
前言相信小伙伴们工作当中肯定会经常遇到导出数据的需求,做这个导出需求的话相信大家肯定很多人用easypoi工具包,这个工具包用起来是真的方便,爽。但是如果数据量大,产品又要你导出很多数据,这时候就不爽了,因为如果数据量大的话,服务器配置又不是很高,那么很容易就把服务器导挂了。今天就教大家一招(有能力的小伙伴也可以自行研究使用其它方式优化导出),使用mybatis/mybatis-plus中的流式查询结合阿里的easyexcel做到一边查询一边写入流的方式优化大量数据导出,这样做写入流后的数据内存就可原创 2021-08-03 00:50:41 · 10738 阅读 · 11 评论 -
JVM线上CPU 100%、内存泄露问题排查
原文链接:https://www.toutiao.com/i6881508437667086856/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1×tamp=1620435813&app=news_article&utm_source=weixin&utm_medium=toutiao_ios&use_new_style=1&req_id=20210508090333原创 2021-06-15 01:55:11 · 2112 阅读 · 5 评论 -
利用Java8 stream 求对象两个属性计算后的和,利用Java8 stream 求BigDecimal的和
今天工作遇到一个问题,花了不少时间,业务是统计一个List 中对象的两个属性计算之后的总和,解决代码如下:public class SingleThreadTest{ public static void main(String[] args) { Apple a1 = new Apple(10, 5); Apple a2 = new Apple(10, 5); Apple a3 = new Apple(10, 5); Apple原创 2021-04-14 09:40:22 · 4120 阅读 · 0 评论 -
缓存双写一致性问题:先操作数据库还是先操作缓存?
原文连接:https://mp.weixin.qq.com/s/2ZvPScfbpl85ZGCDbifY1w作者:捡田螺的小男孩前言在分布式系统中,缓存和数据库同时存在时,如果有写操作,先操作数据库还是先操作缓存呢?本文将分5种方案展开阐述对比,谢谢阅读~github地址,衷心感谢每一颗star❝https://github.com/whx123/JavaHome❞缓存维护方案一如果是一读(线程B)一写(线程A)操作,「先操作缓存,再操作数据库」。流程图如下所示:原创 2020-11-04 00:21:56 · 397 阅读 · 0 评论 -
白话讲线程池原理
原文连接:https://mp.weixin.qq.com/s/2dlWmcE3YZkPtU7mzTk8wQ作者:捡田螺的小男孩本文以程序员做需求的例子,比喻线程池的工作过程。以故事白话的方式展开,跟大家阐述线程池工作原理,以方便大家更好理解线程池,谢谢阅读哈~ 什么是线程池? 什么是核心线程? 什么是阻塞队列? 什么是非核心线程? 什么是空闲存活时间? 什么是饱和策略? 线程池工作原理流程图&源码概览 github地址,原创 2020-11-03 23:37:54 · 211 阅读 · 0 评论 -
深入分析ReentrantLock理解AQS同步队列的细节和设计模式
参考文章:https://www.jianshu.com/p/baeb74654df8https://blog.youkuaiyun.com/l18848956739/article/details/98037356ReentrantLock介绍ReentrantLock 叫互斥锁也叫可重入锁,ReentrantLock采用内部自己定义的一个抽象静态类Sync 来管理锁,ReentrantLock 内部通过继承Sync抽象静态类,实现了两种锁一种是公平锁,一种是非公平锁,Sync是如何来管理锁,这里就会涉及原创 2020-09-27 01:39:28 · 881 阅读 · 0 评论 -
再有人问你什么是ThreadLocal,就把这篇文章甩给他!
原文链接:https://blog.youkuaiyun.com/Lammonpeter/article/details/105175187作者:itlemon前言ThreadLocal是JDK1.2提供的一个工具,它为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,解决共享参数的频繁传递与线程安全等问题。如果开发者掌握了ThreadLocal用法与原理,那么使用起来将得心应手,那么请跟随本文的节奏,拨开迷雾,探究本质吧!本文将带领读者深入理解Threa原创 2020-08-10 01:24:53 · 244 阅读 · 0 评论 -
Docker搭建YApi环境 及使用
1.YApi介绍YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。(引用官方)2.特点基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性 类似 postman 的接口调试 自动化测试原创 2020-06-27 19:59:26 · 1886 阅读 · 6 评论 -
Supervisor工具安装教程,批量管理java应用
1.Supervisor介绍介绍1:supervisor是一个管理进程的工具,使用python语言开发的通用的管理程序,可以管理和监控Linux上的指定进程,能将进程变成后台的daemon,并监控进程状态,出现异常退出时能自动重启。介绍2:在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常、报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务。所以,就需要一个工具,时刻监控 web 应用的运行情况,管理该进程。Supervisor 就是解决这种需求的工原创 2020-06-27 19:02:45 · 1404 阅读 · 0 评论 -
看懂这6张图,理解JVM内存布局就没问题了!
原文链接:https://segmentfault.com/a/1190000021424972作者:Richard_Yi 转载于:https://mp.weixin.qq.com/s/7bGtO9NfakQNHHcT26Ia7Q目录:目录前言概览一、Heap (堆区)1.1 堆区的介绍1.2 堆区的调整1.3 堆的默认空间分配1.4 堆溢出 演示创建一个新对象 内存分配流程二、Metaspace 元空间三、 Java 虚拟机栈1. 局部变量表.原创 2020-05-18 01:50:09 · 1130 阅读 · 0 评论 -
Java Hashmap基础知识。学习笔记
一.Hashmap基础知识1.Hashmap的底层数据结构是什么?数组+链表+红黑树(jdk>1.7,产生hash冲突时,链表长度>=8时候,链表转换为红黑树)2.为啥使用hash值计算索引?Put一个key,value的时候:根据key计算出一个hash散列值作为map中的元素下标,Index=hash%length 得到下标,这样查找非常快3.什么是hash...原创 2020-04-18 22:44:29 · 426 阅读 · 0 评论 -
Spring Bean实例化过程,怎么解决循环依赖
1.Spring是什么?Spring有很庞大的家族,Spring一般指的其实就是SpringFramework! Ioc和aop包含在SpringFramework中!SpringFramework介绍和特点:可以看到SpringFramework包含了我们通常使用的ioc,aop有兴趣的童鞋可以把源码下载下来研究,下载下来的源码可以修改Springframe...原创 2020-04-07 13:12:12 · 1025 阅读 · 0 评论 -
JMM模型图,Java内存模型图
暂时只有我自己才能看懂的JMM模型图,哈哈原创 2020-03-15 13:32:04 · 590 阅读 · 2 评论 -
Springboot通过HttpServletRequest获取用户真实ip
Springboot通过HttpServletRequest获取用户真实ippublic String getVisitorIp(HttpServletRequest request){ // 优先取 X-Real-IP String ip = request.getHeader("X-Real-IP"); if (i...原创 2019-11-10 14:25:39 · 3442 阅读 · 0 评论 -
HttpServletRequest获取接口请求路劲等相关方法
例如接口请求地址:http://192.168.1.6:8080/api/category/query?pageSize=5&pageNum=1System.out.println(request.getRequestURL().toString()); //http://192.168.1.6:8080/api/category/querySystem.out.printl...原创 2019-11-10 03:19:39 · 3563 阅读 · 0 评论 -
PageHelper分页插件源码及原理剖析
原文:https://my.oschina.net/zudajun/blog/745232作者:祖大俊PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件,其实我并不想加上好用两个字,但是为了表扬插件作者开源免费的崇高精神,我毫不犹豫的加上了好用一词作为赞美。原本以为分页插件,应该是很简单的,然而PageHelper比我想象的要复杂许多,它做的很强大,也很彻底,强...原创 2019-10-24 23:52:23 · 353 阅读 · 0 评论 -
idea集合docker实现镜像打包一键部署
一.服务器安装dockeryum install docker修改配置文件,打开2375端口[root@microservice ~]# vim /usr/lib/systemd/system/docker.service在ExecStart=/usr/bin/dockerd-current 后面加上-H tcp://0.0.0.0:2375 -H unix://var/run/...原创 2019-07-15 19:00:54 · 2106 阅读 · 1 评论 -
Java8 替换for循环的方法,Java8简洁的for循环
Java 8 开始,我们有多个强大的新方法可以帮助我们简化复杂的迭代。在本文中,您将了解如何使用 InStream 方法、range、iterate 和 limit 来迭代范围和跳过范围中的值。还将了解新的 takeWhile 和 dropWhile 方法。我们看这样一个示例:java8以前一个for循环这样写的:public class Demo { public st...原创 2019-07-29 16:11:47 · 18319 阅读 · 0 评论 -
运行Maven项目时出现invalid LOC header (bad signature)错误,Tomcat不能正常启动
作为Maven小白,今天这问题困扰了我好久,经过多次在网上查询,终于找到了原因。明明一个小问题却耗费很多时间,着实不应该,所以必须记录一下。报错信息如下:对话框:控制台:严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.Lif...原创 2019-08-13 09:12:59 · 345 阅读 · 0 评论 -
springboot项目配置拦截器后访问不了swagger2接口测试地址,swagger2接口测试地址被拦截
解决方案:只要swagger的访问路径和资源加到拦截器的排除列表中即可代码:package com.cloud.user.config;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuratio...原创 2019-09-16 15:13:29 · 2729 阅读 · 2 评论 -
java8流式编程拼接数组/List中对象的某个属性值
1.场景需求有一个list<Object>,需要将每个对象的一个属性(key)对应的值(value)使用一个符号(*@#¥%_-)拼接起来,那么就可以使用这种方式代码:package com.study.three;import com.alibaba.fastjson.JSONArray;import java.util.*;import java.util....原创 2019-09-26 17:01:21 · 16191 阅读 · 0 评论 -
springboot 实现单文件上传/多文件上传/文件下载
java 开发经常需要用到文件上传,接下来博主就创建一个springboot项目,实现单文件上传/多文件上传/文件下载功能1.先看一下博主的项目结构图2.application.yml主要配置3.如上图创建项目创建FileUpload类:package com.study.controller;import lombok.extern.slf4j.Slf4j;i...原创 2019-09-29 22:59:39 · 711 阅读 · 0 评论 -
Java中的各种锁,容易理解
转载自WX公众号:https://mp.weixin.qq.com/s/WSZV5l5dlieJ8YxSit6Qug作者:乱敲代码说到了锁我们经常会联想到生活中的锁,在我们日常中我们经常会接触到锁。比如我们的手机锁,电脑锁,再比如我们生活中的门锁,这些都是锁。锁有什么作用呢?说了这么多还是不清楚锁到底有什么用处?这一点就要深思我们为什么要使用锁,我们用手机锁是为了保障我们的隐私安全...原创 2019-10-09 23:22:13 · 234 阅读 · 0 评论 -
Springboot项目整合swagger2在线API文档
由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、Androi...原创 2018-12-30 22:24:39 · 611 阅读 · 0 评论