
java
文章平均质量分 78
小爽帅到拖网速
不相信自己的人,连努力的价值都没有。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java容器的fail-fast fail-safe策略详细解读
fail-fast的容器是不允许在遍历或者迭代的时候修改值 ,每次指针下移的时候都会判断modCount!= expectedModCount,如果不一致则抛出并发修改异常ConcurrentModificationException迭代器一旦创建就会记录当前modCount的值,所以可能出现多个迭代器遍历出的结果不一样的情况。原创 2023-03-14 21:42:01 · 487 阅读 · 0 评论 -
SpringAop+注解实现SpringBoot动态数据源切换&&AbstractRoutingDataSource源码解析
通过Spring AOP + 注解来替换当前线程ThreadLocal中的值,并且通过重写AbstractRoutingDataSource类重写determineCurrentLookUpKey()方法,实现动态数据源切换,满足功能实现的代码0侵入性,并且高度解耦,实现可拔插功能效果原创 2023-02-27 12:34:50 · 1466 阅读 · 0 评论 -
高并发多级缓存架构解决方案 && OpenResty、canal搭建及使用流程
本文提供了高并发多级缓存架构解决方案,梳理客户端发送请求到响应处理请求的整个链路流程,并且详细描述了高并发下如何将请求流程进行拆分,充分利用Nginx、OpenResty、Redis高并发读写能力,以及为保证中间件服务高可用性而搭建集群,并且通过设置多级缓存,规避了tomcat高并发能力不足的缺陷,足以经受大规模并发考验原创 2023-01-14 21:04:04 · 1367 阅读 · 0 评论 -
阿里云镜像仓库org.springframework.boot:spring-boot-maven-plugin版本更新导致打包失败问题&&class file version 61.0 适配失败
由于生产环境的pom文件没有指定该插件的版本号,导致一直拉取的都是最新的版本,而最新的spring-boot-maven-plugin 支持Class编译版本号为61,只有jdk17才能够适配。maven打包失败的最主要问题就是,生产环境构建服务时使用了阿里云镜像,昨晚阿里云更新最新的 spring-boot-maven-plugin 插件版本如下。解决方案:指定spring-boot-maven-plugin verion号,与当前环境jdk版本适配就行。Maven 打包时出错,完整错误日志如下。原创 2022-11-25 15:08:32 · 6129 阅读 · 3 评论 -
jdk 线程池任务提交机制&&任务执行流程详解
线程池执行任务主要有两种方式:execute()、submit():execute() 执行任务时,如果有异常没有被捕获会直接抛出 submit() 执行任务时,会吞并异常,除非调用get() 获取计算结果,当抛出异常时会捕获异常。原创 2022-11-24 17:55:45 · 1060 阅读 · 0 评论 -
深入分析 Java对象进入老年代的四种方式
Java对象进入老年代的四种方式,包括幸存区不能容纳大对象、对象存活年龄达到设定年龄阈值、对象判定为大对象、动态年龄分配这四种情况,其中带有jvm参数解析原创 2022-11-04 11:23:09 · 3353 阅读 · 0 评论 -
什么时候字面量会主动加入到stringtable&&new String(“xx“)到底创建了几个对象实例
先来几道题,看看大家是否都能答对代码块1如果上面的题你都能答对,那下面的题呢代码块2为什么s1都能通过intern()方法主动放入StringTable中,而ab却不能呢?下面我将通过字节码的角度为大家分析。原创 2022-10-03 10:55:50 · 626 阅读 · 0 评论 -
JSONObject的底层原理&&常见方法的使用以及项目中的使用场景
JSONObject中是可以无限套娃的,只是每嵌套一次,就需要给除最外面的JSONObject以外的其他JSONObject中添加唯一的key,如果key重复了,会按照Map的处理方式去解决,一般都是判断如果key的hashCode相同,并且equals返回true,则会新值替换旧值,并且返回旧值,所以这里涉及到了数据覆盖的问题,需谨慎处理key是否相同的情况。最常见的就是使用getString,这也是我们在工作中经常使用的方式,可以发现最终都是通过map来完成一些列操作。...原创 2022-08-09 09:29:59 · 2350 阅读 · 0 评论 -
HashMap的内部类Node与Map的内部类Entry的关系以及Node与Entry、EntrySet三者之间的关系
Entry这个集合中包含两类,一类是Set类型的KeySet,用来存放Key值,另一类是存放在value值,然后他们里边各自的值存放的是地址,一个指向真正Node节点的key和value的地址;原创 2022-06-16 13:52:09 · 5506 阅读 · 9 评论 -
e.hash & oldCap == 0 详细解读
e.hash & oldCap == 0 HashMap源码中,数组扩容时判断新旧数组扩容后索引下标位置是否对齐的一个重要计算方法原创 2022-06-15 15:53:35 · 2335 阅读 · 0 评论 -
tab[i = (n - 1) & hash] 的详细解读
tab[i = (n - 1) & hash] 的详细解读,在HashMap底层源码中遇到类似取余操作的,计算数据在数组中的下标位置,本文详解其原理原创 2022-06-15 15:46:10 · 1816 阅读 · 0 评论 -
springboot实现多级嵌套并返回json格式的数据处理
菜单功能列表嵌套菜单解决方案1、通过mapper定义sql的自循环,在查询时就完成菜单的嵌套数据库字段分析首先我们来看看数据库中的表字段显然parentId就是用来做嵌套的切入点完善表字段在IDE中我们需要为Menu这个实体类定义个Lis列表数组,用来装载菜单嵌套的数据注意:我们使用的持久层框架是MybatisPlus,所以添加注解告诉mybatisplus,这个List字段在数据库不存在接下来我们在mapper.xml文件中定义sql语句,这里建议在Navicat或者sqlyog中编写原创 2021-06-13 11:24:40 · 5922 阅读 · 7 评论 -
SpringBoot整合RabbitMQ 5种模式的注解绑定
1、导入依赖<!--AMQP依赖,包含RabbitMQ--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency><!--对象转换--> <dependency> <group原创 2022-05-03 20:03:15 · 4316 阅读 · 0 评论 -
Docker容器部署项目少了8个小时,问题解决&&Dockerfile修改linux时区
Docker容器部署项目少了8个小时,问题解决&&Dockerfile修改linux时区情景回顾打包好的jar包通过Dockerfile构建成一个镜像后,通过docker-compose.yml文件实现对 Docker 容器集群的快速编排,当这一切都很顺利进行时,发现在走业务的时候,产生的时间戳存放在通过Docker启动的mysql容器中,时间比当前系统时间少了8个小时;可能原因如下:1、时区问题在数据库连接的url中如果设置了serverTimezone=UTC,连接时不报错,但原创 2022-03-03 16:57:51 · 3272 阅读 · 0 评论 -
jdk8 Stream流的使用及其技巧
1、创建Stream的方法1.1、通过 java.util.Collection.stream() 方法用集合创建流(推荐使用)List<String> list = Arrays.asList("1","2","3");Stream<String> stream = list.stream();1.2、使用java.util.Arrays.stream(T[] array)方法用数组创建流String [] arr={"1","2","3","4"};Stream&l原创 2021-09-30 00:17:26 · 623 阅读 · 1 评论 -
线程池的三大方法、七大参数、四种拒绝策略详解
线程池的三大方法、七大参数、四种拒绝策略1、什么是线程池线程池:三大方法、七大参数、四种拒绝策略OOM:Out of memory 内存溢出池化技术程序的运行,本质:占用系统的资源!优化资源的使用!=>池化技术线程池、连接池、内存池、对象池、常量池 //… 创建、销毁、池化技术:事先准备好一些资源,有人要用,就来我这里拿,用完之后还给我线程池的好处:降低资源的消耗提高响应的速度方便管理线程复用、控制最大并发数、管理线程强制----线程资源必须通过线程池提供,不允许在原创 2021-08-06 00:45:33 · 5599 阅读 · 0 评论 -
equals&&==详解和区别以及对equals方法的重写
== 是一个比较运算符既可以判断基本类型,又可以判断引用类型如果判断基本类型,则判断值是否相等如果判断引用类型,则判断地址是否相等,即判断是不是同一个对象equals方法equals:是Object类中的方法,只能判断引用类型默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等Obejct类的equalsObject的equals方法默认就是比较对象的地址是否相同,也就是判断两个对象是不是同一个对象public boolean equals(Object obj)原创 2021-05-17 12:58:44 · 314 阅读 · 3 评论 -
Shiro整合SpringBoot案例实现
Shiro 实战教程1、权限的管理1、什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括用户身份认证 和 授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。2、什么是身份认证 身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式就是系统通过核对原创 2021-03-30 15:37:56 · 1806 阅读 · 0 评论 -
JWT最详细教程以及整合SpringBoot的使用(简洁易上手)
JWT1、什么是JWTJSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally sig原创 2021-03-30 15:26:51 · 33251 阅读 · 8 评论 -
Error:(2, 35) java: 程序包org.springframework.context不存在 或者其他包不存在
Error:(2, 35) java: 程序包org.springframework.context不存在问题描述(对症下药,如果你是这种情况就请继续看下去):编写代码时IDE不报红,并且对类或者方法进行Ctrl+鼠标点击能进行跳转,但是运行就是报错找不到包解决方法1:点击箭头所指方框如若不行,在点击如下箭头,缓存将在下次启动时失效并重建方法2:注释掉自定义的中央仓库在重新创建一个新的中央仓库最后在Maven中进行刷新...原创 2021-02-01 22:35:25 · 359 阅读 · 1 评论 -
IDEA安装并配置Tomcat跟Maven(入门级教学)详细讲述了Tomcat及maven的目录结构、配置以及maven的阿里镜像配置
一、Tomcat1、安装tomcat2、Tomcat启动和配置启动 关闭 Tomcat访问测试:http://localhost:8080可能遇到的问题:java环境变量没有配置闪退问题:需要配置兼容性乱码问题:需要.3、配置可以配置启动的端口号tomcat的默认端口号为:8080mysql:3306http:80https:443<Connector prot = "8080" protocol = "HTTP/1.1"原创 2020-12-23 01:12:06 · 524 阅读 · 0 评论 -
什么是JavaWeb概念及定位 入门级(为什么要学习javaweb)
JavaWeb 基本概念&&为什么要学习JavaWeb1、基本概念1.1、前言web开发:web,网页的意思 ,www.baidu.com静态webhtml,css提供给所有人看的数据始终不会发生变化!动态web几乎所有网站提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同技术栈:Servlet(小程序服务)/JSP, ASP, PHP在java中,动态web资源开发的技术统称Javaweb1.2、web应用原创 2020-12-23 00:59:47 · 852 阅读 · 0 评论 -
创建多模块后,有的模块在右侧maven中找不到对应的maven组件,找不到右侧maven组件管理
问题描述:IDEA,在父项目中建立多个子项目,有的子项目在右侧Maven模块中找不到对应的组件原创 2021-03-07 21:18:20 · 242 阅读 · 0 评论