Java
文章平均质量分 88
Java技术分享专栏
大脑补丁
怕什么真理无穷,进一寸有一寸的欢喜。
展开
-
Java CPU或内存使用率过高问题定位教程
Spring cloud微服务广泛应用后,服务的监控和运维压力也与日俱增,经常有服务出现CPU或者内存使用率过高的告警,那么遇到这样的问题我们该如何排查呢?本文介绍了通过系统日志、java JDK工具、JVM参数、linux系统命令、Arthas诊断工具等方法,定位和解决线上CPU使用率过高、内存使用率过高的方法,大家可以根据自己的环境灵活搭配使用上述方法,解决性能问题。原创 2024-01-04 14:17:26 · 4686 阅读 · 0 评论 -
SpringCloud使用log4j日志框架教程
Log4j2是一款流行的Java日志框架,它提供了高度可配置的日志记录功能,支持多种不同的输出格式和目标,比如文件、控制台、数据库等等。Log4j2的设计目标是提供高性能、低延迟的日志记录功能,能够满足各种不同的应用场景。本文接将讲解下log4j2在spring Cloud或spring boot中的使用方法,让你5分钟上手原创 2023-07-21 12:28:12 · 1635 阅读 · 0 评论 -
Java中BigDecimal工具类(支持空值运算版)
前言需要计算的场景绕不过去会使用BigDecimal类,可频繁的判空让代码可读性下降也使代码冗余度增高,不判空又容易报空指针异常,而且有些场景下的计算,结果为空时需要返回null,所以也不可以将将BigDecimal类型的值都初始化为0,会让运算结果产生歧义。为解决上述痛点,于是整理了一个工具类供所有项目一起使用。一.工具类支持功能加减乘除、累加、倍数运算。Integer、Long、Float、Double、String、Object转为BigDecimal。除法四舍五入小数点,并禁止用科学计数原创 2020-10-11 17:37:55 · 10231 阅读 · 5 评论 -
为什么Java编程语言用一种咖啡名做名字
在整个团队的集思广益下,有一个成员偶然发现:Java中的类被编译成`.class`文件中,打开任意的`.class`文件,发现此16进制的文件中,开头的4个字母碰巧是`cafe`(咖啡)。所以开发团队,就想选一个咖啡的名字来做这门语言的名字。于是问题变成了选哪种咖啡做为名字呢?爪哇(英文:Java)这个名字在西方,几乎就是印尼咖啡的代名词!于是选择了当时火遍全球咖啡市场的印尼爪哇咖啡名,作为此编程语言的名字,所以就被命名为`Java`。原创 2020-08-26 17:02:52 · 1516 阅读 · 0 评论 -
Freemarker整合poi导出带有图片的Excel教程
序言前一篇文章《Freemarker导出复杂Excel图文教程》,讲解了使用Freemarker导出复杂的Excel,本文将在前文的基础之上,讲解使用Freemarker导出Excel后,在整合poi插入图片到Excel,从而实现Freemarker导出带有图片的Excel工具。为什么要做这个工具呢?因为Freemarker是不支持导出带有图片的Excel的,不支持的原因是Freemarke...原创 2020-04-22 10:34:59 · 5106 阅读 · 29 评论 -
Freemarker导出复杂Excel图文教程
简介使用Freemarker导出Excel,比用poi操作Excel的方式要简单的很多,尤其像那种首行是表头,剩余行是数据的Excel,Freemarker几行代码就可以搞定。可是如果出现合并单元格、合并行的复杂Excel导出时,Freemarker的模板的插值也会变得复杂,但还是要比poi简单的多,用过Freemarker后,只要Freemarker能做到的,再也不想用poi导出Excel了。...原创 2020-04-20 13:42:45 · 5634 阅读 · 22 评论 -
RESTful介绍和使用教程
REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想)。...原创 2018-07-21 10:09:49 · 103081 阅读 · 29 评论 -
Spring boot常用注解详解和示例
前言:本文主要介绍Spring boot中常用的注解,及其在项目开发中实际使用位置和示例。一.注解对照表 注解 使用位置 作用 @Controller 类名上方 声明此类是一个SpringMVC Controller 对象 @RequestMapping 类或方法上 用在类上,表示所有响应请求的方法都是以该地址作为父路径 @Re...原创 2018-07-15 22:59:31 · 5662 阅读 · 1 评论 -
Springboot中使用多线程
前言:Spring boot中使用多线程的方式有很多种,最简单的方式就是使用@Async注解来实现。本文重点讲解多线程的使用和使用多线程注解出现循环依赖的的问题及解决方案。一.在SpringBoot的启动类开启多线程 必须添加@EnableAsync注解,来开启对多线程的支持,否则@Async注解无效。在启动类中创建出对象,调用方法,即会创建两个线程来执行各自的方法了...原创 2018-07-21 20:07:31 · 22363 阅读 · 6 评论 -
Java之Excel导出工具类使用教程
本工具类经过PostMan和web页面严格测试可用,经过了多个版本迭代优化,可以直接使用,也方便大家根据自己的业务需求,修改定制自己的导出工具。市面上有很多封装好的导出工具(如:阿里的easyExcel,GitHub上xxl-excel等),但如果直接引用依赖,扩展性和定制性比较差,所以博主通过apache.poi,自己实现一款Excel导出工具,方便定制使用。原创 2019-03-20 17:34:02 · 11888 阅读 · 37 评论 -
Java导入Excel工具类使用教程
本工具类提供了Excel导入功能,通过反射机制将Excel中数据映射到实体类中,从而获取Excel数据,工具类依赖`org.apache.poi`包。支持RESTful API,支持Spring MVC中使用。本工具类支持功能:- 支持File类型导入- 支持MultipartFile类型导入- 支持Excel2003及以上版本原创 2019-03-26 11:06:43 · 8063 阅读 · 30 评论 -
Java旋转图片工具类
前言:本文提供可以任意角度(最小精度1度),旋转图片的Java工具类,旋转后的图片不会失真或丢失边角,根据角度参数,重新绘制图片,达到无损旋转的目的。一.图片工具类import java.awt.Dimension;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Rectangle;import ...原创 2018-06-23 17:24:07 · 9199 阅读 · 7 评论 -
Java获取网络图片转化为输入流
一.通过URL获取网络图片import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * 获取网络图片流 * * @param url * @return */ ...原创 2018-06-23 16:22:16 · 20319 阅读 · 0 评论 -
通过反射获取Spring定时器@Scheduled注解中fixedDelay时间
前言:如何获取Spring的定时器注解@Scheduled中的时间值(即获取3000):@Scheduled(fixedDelay = 3000)注:定时器类:org.springframework.scheduling.annotation.Scheduled1.定时任务类public class AlarmTask { @Scheduled(fixedDelay...原创 2018-04-28 20:53:16 · 2185 阅读 · 0 评论 -
Java自动初始化类的成员变量详解
前言:为什么Java类中初始化成员变量不用赋值,而初始化局部变量就要赋值呢?Java的默认初始化成员变量,自动会给成员变量赋值。原创 2017-07-18 11:49:31 · 6470 阅读 · 3 评论 -
Java对象的深复制和浅复制详解
前言:本文以实例介绍Java对象的深复制和浅复制使用对比。 浅复制:被复制的对象的所有变量都含有原来对象的相同值,对象中对其他对象的引用,仍指向原对象。 深复制:将引用对象的变量指向新对象,而不是原对象。浅复制所复制的是对象的引用,对象的数据结构和数据都被复制,修改原对象也会对浅复制的对象也会发生同样的改变。如:Object a = b;即为浅复制。深复制(克隆)所复制对象的数据结构,跟原创 2017-07-20 16:32:13 · 699 阅读 · 0 评论 -
Java用JFrame、JPanel、Graphics绘图案例讲解
本文将介绍Java绘图工具的使用,通过具体示例,演示通过Java的Graphics类在JFrame中的JPanel上绘制图形的步骤和方法。JFrame类,是存放组件的容器。相当于相框。JPanel类,是面板容器类。相当于画板。Graphics类,是Java用绘图类,相当于画笔。原创 2017-08-19 18:51:59 · 38902 阅读 · 9 评论 -
设计模式之建造者模式
前言: 建造者模式(Builder Pattern)是将一个复杂对象的的构建和它的表示分离,使得同样的构建过程可以创建么不同的表示。一.建造者模式简介:建造者模式(Builder Pattern)是为解决在软件系统中,对一个复杂对象的创建过程和算法进行封装,隐藏该对象是如何组装的。该模式又称为生成器模式。二.建造者模式的实例讲解:案例:通过建造者模式,绘制不同风格人物图像。1.产品设计UML类原创 2017-08-20 14:26:05 · 399 阅读 · 0 评论 -
Java时间字符串与日期的转换
前言:将时间字符串转换为日期格式,将时间戳转换为日期的方法,简单封装,直接使用。一. 将时间字符串转化为日期格式。例1:将字符串“20160325160000”转换为为“2016-03-25 16:00:00”的实现方法原创 2017-06-16 15:14:03 · 8820 阅读 · 0 评论 -
设计模式之观察者模式
前言: 观察者模式(Observer Pattern)定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自己更新自己。一.观察者模式简介:观察者模式(Observer Pattern)应用在当一个对象的改变,需要同时改变其他对象的时候,实现了两个相互协作的对象不会为了保持一致性而耦合在一起,这两个对象都依赖于各自的原创 2017-09-02 11:56:19 · 328 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式(Adapter Pattern)将一个类的接口转化为客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式(Adapter Pattern)适配器模式主要应用于希望复用一些现存的类,但是接口与复用环境要求不一致的情况。原创 2017-09-12 14:38:26 · 317 阅读 · 0 评论 -
Java数组转List的三种方式及对比
本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析。原创 2018-03-18 00:10:04 · 377392 阅读 · 31 评论 -
Java循环删除List中元素的正确方式
前言:最近整理笔记时,发现有几个有意思的常犯错误,在此分享下。问题:如何批量删除List中的元素呢? 比如:List大小为100,只删除前50个,怎么办?一.通过for循环删除(错误)List<Integer> list = new ArrayList<Integer>(Arrays.asList(10,20,30,40,50,60,70,80))...原创 2018-03-18 12:31:49 · 8116 阅读 · 0 评论 -
Java中原始类型、泛型、无限通配类型
前言:如何通过泛型,消除Type safety的警告,使得代码更优雅?本文将介绍Java对象的三种类型,了解三中类型的区别,根据情境,灵活运用。一.原始类型List<>为原始类型,但不指定元素类型,会出现不安全的警告:List is a raw type. References to generic type List<E> should be parame...原创 2018-03-18 21:56:16 · 2331 阅读 · 0 评论 -
Java定时器(实现每月1号、每日、每15分钟自动执行任务)
需求:在tomcat中,每月一号、每日、每分钟自动执行指定的任务。开发环境:java1.7+ tomcat实现思路:在tomcat中,添加监听器,在监听器中设置定时任务。1.监听:新建监听类implents ServletContextListener,实现其中的方法即可。讲解:1.1:创建一个基准时间defaultdate(每日8点),用于参照,在此时间以...原创 2017-03-20 14:48:39 · 48306 阅读 · 24 评论