自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zzh3864的博客

个人成长、技术分享

  • 博客(24)
  • 收藏
  • 关注

原创 stream Collectors.toMap 空指针异常

List集合转Map,用到的是Stream中Collectors的toMap方法:Collectors.toMap具体用法实例如下:正常情况下hashMap是允许value为null的,但是toMap方法使用了Map.merge方法可以过滤掉value为null的值

2022-06-13 17:36:50 354 1

原创 excel导入 java.io.FileNotFoundException

excel文件批量入库、获取文件输入流之前操作数据库报错

2022-06-13 11:04:51 428

原创 easy-excel导入

使用easy-excel做数据导入

2022-06-09 16:45:53 1733 1

原创 数据库缓存一致性解决方案

在日常开发当中为了提高响应率,减少响应时长,缓存是一定会用的。那么在修改数据库的时候缓存的更新肯定会有延迟,如何保存缓存和数据库数据的一致性是一个问题。方案1:同步删除顾名思义在修改数据库数据的时候,同步删除缓存缺点:1、不能保证每个入口都能同步删除2、如果直接修改数据库不能同步删除3、如果缓存删除失败,会出现脏数据方案2: 延迟双删删除缓存-》修改数据库-〉等待一段时间在删除一次缓存缺点:1、无法确定延迟时间(主从同步会出现延迟)2、无法绝对保障数据一致方案3: 异步监听binlo

2022-04-24 12:47:32 1606

原创 Spring三级缓存解决循环依赖

什么叫循环依赖?@Componentpublic class CircularDependencyA { private CircularDependencyB circB; @Autowired public CircularDependencyA(CircularDependencyB circB) { this.circB = circB; }}@Componentpublic class CircularDependencyB

2022-04-23 14:06:13 267

原创 springboot消费kafka Listener method could not be invoked with the incoming message

bug背景:使用mysql cdc kafka 处理消息,当mysql删除一条记录时会触发此bug错误信息:org.springframework.kafka.listener.ListenerExecutionFailedException: Listener method could not be invoked with the incoming messageEndpoint handler details:Method [public void com.flex.notify.listen

2022-03-23 15:43:45 4376

原创 FeignClient List<xxObject> java.lang.ClassCastException

bug场景:1、使用feginClient调用业务系统获得List<xxObecjt>2、遍历List执行业务逻辑List<xxObecjt> xxObecjtLsit = feginClient.getList();for (xxObject obecjt : xxObecjtLsit) { .......}报错信息:java.lang.ClassCastException: class com.alibaba.fastjson.JSONObject cannot

2022-03-23 14:05:53 3505

原创 springboot整合sentry记录异常信息

springboot整合sentry平台

2021-12-09 18:17:02 644

原创 java.lang.UnsupportedOperationException

今天刷题时遇到一个问题,代码如下: public static void main(String[] args) { List<String> strList = Arrays.asList("dag","cag","ctg","cot"); strList.remove("dag"); }执行结果:Exception in thread "main" java.lang.UnsupportedOperationException at java

2021-12-04 18:32:46 286

原创 redis之分布式锁

Jedis + ThreadLocal 实现分布式可重入锁import redis.clients.jedis.Jedis;import redis.clients.jedis.params.SetParams;import java.util.HashMap;import java.util.Map;public class RedisWithReentrantLock { private final ThreadLocal<Map<String, Integer>&

2021-11-30 12:36:21 715

原创 Failed to find Electron v4.2.12 for darwin-arm64

今天运行一个前端项目,报错Failed to find Electron v4.2.12 for darwin-arm64搞了一个小时是因为我的电脑时 m1版本的mac ,目前 Electron 仅11以及以后的版本支持m1这是m1的悲哀吗,唉????‍????

2021-11-29 17:10:36 2035 8

原创 并行与并发

并行cpu就好比一条高速公路,如果公路有四个车道,那么它可以并行行驶四辆车,cpu的核心数就是车道数。并发谈论并发的时候必须在单位时间内讨论,俗话说一心不能二用,cpu也是如此。原则上来说一个cpu只能分配给一个进程,如果想“一心多用”,就只能使用并发技术,常见的就是“时间片轮转进程调度算法”。在我们的操作系统上肯定不止打开了一个软件,那么是如何做到一心多用的呢,实际上cpu的运行速度是非常快的,他可以飞速的每个进程之间切换,每个进程执行一个时间片,然后切换下一个进程。由于切换速度非常快,所以我们

2021-11-22 13:42:36 998

原创 成为优秀架构师的必备技能

扎实的基础知识,空余时间多看一些书,设计模式、算法、数据结构。有时间维护自己的博客,一个优秀的架构师要学会分享自己的技术和知识。1、熟练使用各种框架,并知道它们实现的原理。2、jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;3、池技术,什么对象池,连接池,线程池……Java反射技术,写框架必备的技术,遇到有严重的性能问题,替代方案java字节码技术;4、nio,没什么好说的,值得注意的是"直接内存"的特点,使用场景;java多线程同步异步;java各种集合对象的实现原理,了解这些可以让你

2021-11-22 10:58:49 5977

原创 volatile的实现原理

volatile关键字在多线程场景中使用,其底层实现原理是:当对volatile变量执行写操作后,JMM会把工作内存中的最新变量值强制刷新到主内存写操作会导致其他线程中的缓存无效操作系统的缓存行(cacheline)默认是64bytes,声明一个变量x,volatile int x,当两个线程同时对x进行 x++ 操作时,会先将x加载到自己的缓存中,修改之后强制刷新到公共的缓存中,以此来保证一致性。...

2021-11-22 10:08:23 244

原创 daemon 守护线程

Daemon线程是一种支持性线程,因为它主要用作程序中台调度以及支持性工作。这意味着,当一个Java虚拟机中不存在非Daemon线程的时候,Java虚拟机将会推出。可以通过调用Thread.setDaemon(true)将线程设为Daemon线程。(Daemon属性需要在线程启动之前设置)在Java虚拟机退出时finally块不一定会执行。public class Test1 { static class DaemonRunner implements Runnable{ @Ove

2021-11-21 16:26:08 1062

原创 zookeeper之分布式锁

import com.zzh.zookeeper.config.ZKUtils;import com.zzh.zookeeper.lock.WatchCallBack;import org.apache.zookeeper.ZooKeeper;import org.junit.After;import org.junit.Before;import org.junit.Test;/** * @Author:zzh * @Date: 2021/06/22/ 15:28 * @Descrip

2021-06-22 17:00:43 90

原创 zookeeper之分布式配置中心

import org.apache.zookeeper.ZooKeeper;import java.io.IOException;import java.util.concurrent.CountDownLatch;/** * @Author: zzh * @Date: 2021/6/21 18:01 * @Description:zk的工具类,获取连接 */public class ZKUtils2 { private static ZooKeeper zkCli; p

2021-06-22 16:56:32 133

原创 Join condition is missing or trivial.Use the CROSS JOIN syntax to allow cartesian products between t

报错信息:Join condition is missing or trivial.Use the CROSS JOIN syntax to allow cartesian products between these relations.;原因:spark默认不支持笛卡尔积操作解决:通过参数spark.sql.crossJoin.enabled开启,方式如下:spark.conf.set("spark.sql.crossJoin.enabled", "true")...

2020-08-06 10:42:18 2748

原创 Centos7 安装和配置MySQL5.7

https://blog.csdn.net/WYA1993/article/details/88890883

2020-06-20 16:02:28 110

原创 Java Thread 线程的创建方法及生命周期

线程的概念程序: Program,是一个指令的集合进程: Process,(正在执行中的程序)是一个静态的概念进程是程序的一次静态执行过程,占用特定的地址空间每个进程都是独立的,由3部分组成 cpu data code**缺点:**内存的浪费,cpu的负担**线程:**是进程中一个“单一的连续控制流程”(a single Thread,equential flow of control)/执行路径线程又被称为轻量级进程(lightweight process)Threads run

2020-06-08 10:28:36 122

原创 IDEA设置类和方法注释模板

类注释settings-》editor-》file and code templates/** * @Author: zzh * @Date: ${DATE} ${HOUR}:${MINUTE} * @Description: */点击应用,效果方法注释settings-》editor-》 live templates1、新建自己的模板分组2、新建模板3、选择应用范围4、添加注释模板,修改快捷键为enter* * @author: zzh * @descrip

2020-06-07 11:38:55 163

原创 java.lang.NoClassDefFoundError: Could not initialize class

//代码ImageIO.read(ResourceMgr.class.getClassLoader().getResourceAsStream("images/tankU.gif"));//错误信息java.lang.NoClassDefFoundError: Could not initialize class目录结构错误原因idea与eclipse不同,静态资源文件需要放在resource目录下,修改目录结构为解决问题...

2020-06-02 13:14:45 356

原创 僵尸进程和孤儿进程

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <assert.h>#include <sys/types.h>int main(

2020-05-31 16:49:37 100

原创 idea设置自动生成serialVersionUID

1、在类名处alt+enter2、设置自动生成在setting中搜索点击ok即可

2020-01-31 12:37:00 68

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除