java
文章平均质量分 93
厌烦百分之百
这个作者很懒,什么都没留下…
展开
-
三步搞定OOM内存溢出,记一次使用Arthas处理OOM内存溢出问题java.lang.OutOfMemoryError: Java heap space
记录一次典型的OOM内存溢出问题,使用了Arthas和jvisualvm分析并查找问题的根源,三步搞定OOM内存溢出原创 2023-03-10 18:19:00 · 5169 阅读 · 2 评论 -
史上最强java的poi工具excel操作工具easyexcel
https://www.yuque.com/easyexcel/doc/easyexcel阿里开源组件,牛到不行!!!!!原创 2020-06-23 18:06:00 · 711 阅读 · 0 评论 -
java之jvm内存模型
原创 2020-05-02 01:46:37 · 148 阅读 · 0 评论 -
java内存结构
原创 2020-05-01 21:08:13 · 131 阅读 · 0 评论 -
java线程的等待与唤醒demo演示park,wait
import java.util.concurrent.locks.LockSupport;/** 三种线程协作通信的方式:suspend/resume、wait/notify、park/unpark */public class Demo6 { /** 包子店 */ public static Object baozidian = null; /** 正常的suspend/res...原创 2020-04-30 18:18:54 · 200 阅读 · 0 评论 -
线程生命周期及状态
/** * 示例2 - 多线程运行状态切换示例 <br/> */public class Demo2 { public static Thread thread1; public static Demo2 obj; public static void main(String[] args) throws Exception { // 第一种状态切换 - 新建 -&...原创 2020-04-30 15:04:27 · 189 阅读 · 1 评论 -
最全java线程池详解ThreadPoolExecutor
package com.study.hc.thread.chapter1.thread;import java.util.Collections;import java.util.List;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.RejectedExecutionHandler...原创 2020-02-23 21:11:23 · 148 阅读 · 0 评论 -
分布式事务解决方案RabbitMQ消息中间件,异步消息处理
分布式事务一直是集群环境和分布式架构的一个业界难点,就我目前已知的技术框架都没有完美的解决法案,本案例也只是一个模板类型的场景。场景:类似外卖下单,外卖员接单,下单server和运单server是分布式部署的。解决方案:rabbitMQ异步消息通知总体来说我认为分布式事务的痛点就是在与两个server的事务需要保证一直性,server_A失败了server_B也要做失败处理,server_A...原创 2019-12-09 18:47:06 · 947 阅读 · 0 评论 -
设计原则优化思路简单的模板模式
import com.service.springTest.VipCalculateService;import com.service.springTest.VipPriceService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.S...原创 2019-11-09 12:37:55 · 284 阅读 · 0 评论 -
spring监听器的实现及实现原理,观察者模式,发布订阅的实现机制
import org.springframework.context.ApplicationContext;import org.springframework.context.event.ApplicationContextEvent;public class MyEvent extends ApplicationContextEvent { private String eve...原创 2019-11-05 09:00:57 · 770 阅读 · 0 评论 -
Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试
一、工具类1, md5加密工具类2, base64加密工具类3, Bcrypt工具类二、加密测试MD5加密测试base64加密测试SHA加密测试BCrypt加密测试一、工具类1, md5加密工具类public class MD5Utils { private static final String hexDigIts[] = {"0","1","2","3","...原创 2019-10-18 11:22:55 · 316 阅读 · 0 评论 -
springBoot切面AOP注解实现开箱即用redis分布式锁
redis实现分布式锁简单又实用,这里是一个开箱即用redis分布式锁pom文件添加除springBoot相关依赖以外的以下依赖包<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --> <dependency> <groupId>cn.hutoo...原创 2019-10-07 22:02:30 · 325 阅读 · 0 评论 -
并发编程之ReentrantLock,Condition阻塞队列,尝试锁,获取锁时限时等待,可响应中断,公平锁,同步锁
并发编程的核心简单表述就是一下三点:1.原子性所谓原子性是指在一次的操作或者多次的操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行。i++不能保证原子性。synchronized关键字保证多个原子性操作合在一起就不是原子性操作了简单的读取和赋值操作是原子性的,将一个变量赋值给另外一个变量的操作不是原子性的由于synchronized是一种排他...原创 2019-10-06 20:32:44 · 1267 阅读 · 0 评论 -
ajax实战:(ajax异步下载文件)请求二进制流进行处理,下载文件不跳转页面
需求管理后台需要随时下载数据报表,数据要实时生成后转换为excel下载文件不大,页面放置“导出”按钮,点击按钮后弹出保存文件对话框保存说明:第一种方法使用a标签直接可以满足大部分人需求,第二种方法纯粹是在说实现方法以及更好的操作体验,不需要(举一个需要第二种方法的例子:如果生成很慢就需要生成过程中禁用按钮,防止连续生成)用到的可以不用看解决方案方法一请求文件的接口能改为GET则可以...原创 2019-04-16 08:50:58 · 637 阅读 · 0 评论 -
spring-boot集成tkmybatis通用mapper和逆向工程mybatis-generator-core生成实体
一,引入依赖<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-conn...原创 2019-10-05 13:31:50 · 1212 阅读 · 0 评论 -
java8新特性lambda和stream的学习和使用
一 java8 lambda表达式用法1 什么是lambda表达式 Lambda表达式有两个特点:一是匿名函数,二是可传递。匿名函数的应用场景是:通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用Lambda表达式。lambda表达式所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。可传递使用场景是:就是将L...原创 2019-09-30 17:01:09 · 743 阅读 · 0 评论