![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 57
Arthur-Ji
不要崇拜,不要自卑
不要盲目相信高势能
不要随波逐流
脚踏实地
展开
-
二分查找整理
int binary_search(int[] nums, int target) { int left = 0, right = nums.length - 1; while(left <= right) { int mid = left + (right - left) / 2; if (nums[mid] < target) { left = mid + 1; } else if (nums[mid.转载 2021-12-20 15:46:19 · 444 阅读 · 0 评论 -
面试还不知道BeanFactory和ApplicationContext的区别?
日拱一兵 2019年07月01日 阅读 2243 关注 面试还不知道BeanFactory和ApplicationContext的区别? 接口 BeanFactory 和 ApplicationContext 都是用来从容器中获取 Spring beans 的,但是,他们二者有很大不同我看到过很多问 BeanFact...转载 2021-04-12 20:33:47 · 161 阅读 · 0 评论 -
填坑之路!SpringBoot导包坑之spring-boot-starter-parent
填坑之路!SpringBoot导包坑之spring-boot-starter-parent大誌 2018-11-14 21:03:25 104522 收藏 83分类专栏: Bug 文章标签: SpringBoot版权2020/02/12 补充:本人版本maven-3.3.92020/04/29 补充:如果你是公司项目,用的是公司私有仓库,那你应该先问问公司负责仓库管理的同事,仓库内有没有这个包,或者有没有开启云仓库拉取前言在新建springboot项目引入RELEASE版本时,有几率从远程转载 2021-04-12 18:00:18 · 8302 阅读 · 2 评论 -
java8的ConcurrentHashMap为何放弃分段锁
转载 2021-04-08 17:39:03 · 383 阅读 · 0 评论 -
Java线程和操作系统线程的关系
文章目录 1.操作系统线程模型1.1 线程实现在用户空间下1.2 线程实现在操作系统内核中1.3使用用户线程加轻量级进程混合实现 2.Java线程2.1 Java线程在操作系统上本质:2.2 Java中的线程2.2.1 操作系统中的进程(线程)状态**(区分和JVM中的线程状态)**2.2.2 操作系统中线程和Java...转载 2021-04-05 15:47:13 · 857 阅读 · 0 评论 -
一文告诉你Spring是如何利用“三级缓存“巧妙解决Bean的循环依赖问题的【享学Spring】
每篇一句 你今天的优势会被明天的趋势所取代,所以务必好好学理论,一通则百通 前言 循环依赖:就是N个类循环(嵌套)引用。 通俗的讲就是N个Bean互相引用对方,最终形成闭环。用一副经典的图示可以表示成这样(A、B、C都代表对象,虚线代表引用关系): 注意:其实可以N=1,也就是极限情况的循环依赖:自己依赖自己...转载 2021-03-21 21:08:36 · 267 阅读 · 0 评论 -
Spring中BeanFactory与FactoryBean的区别
Spring中BeanFactory与FactoryBean的区别在Spring中有BeanFactory和FactoryBean这2个接口,从名字来看很相似,比较容易搞混。一、BeanFactoryBeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean()、containsBean()等管理Bean的通用方法。Spring的容器都是它的具体实现如:DefaultListableBeanFactoryXmlBeanFactor转载 2021-03-16 15:01:48 · 190 阅读 · 0 评论 -
实战CGLib系列文章 MethodInterceptor和Enhancer
实战CGLib系列文章本篇介绍通过MethodInterceptor和Enhancer实现一个动态代理。一、首先说一下JDK中的动态代理:JDK中的动态代理是通过反射类Proxy以及InvocationHandler回调接口实现的,不了解的同学请参考我的这篇Blog:Java动态代理详解 http://shensy.iteye.com/blog/1698197但是,JDK中所要进行动态代理的类必须要实现一个接口,也就是说只能对该类所实现接口中定义的方法进行代理,这在实际编程中具有一定的局限性,而且使转载 2021-03-12 21:21:26 · 296 阅读 · 0 评论 -
Java三种代理模式:静态代理、动态代理和cglib代理
一、代理模式介绍代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。简言之,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。代理模式UML类图举个例子,我们生活中经常到火车站去买车票,但是人一多的话,就会非常拥挤,于是就有了代售点,我们能从代售点买车票了。这其中就是代理模式的体现,代售点代理了火车站对象,提供购买车票的方法。二、静态代理这种代理方.转载 2021-03-09 21:28:55 · 192 阅读 · 0 评论 -
BigInteger
BigInteger在Java中,由CPU原生提供的整型最大范围是64位long型整数。使用long型整数可以直接通过CPU指令进行计算,速度非常快。如果我们使用的整数范围超过了long型怎么办?这个时候,就只能用软件来模拟一个大整数。java.math.BigInteger就是用来表示任意大小的整数。BigInteger内部用一个int[]数组来模拟一个非常大的整数:BigInteger bi = new BigInteger(“1234567890”);System.out.println(bi转载 2021-03-07 13:23:04 · 310 阅读 · 0 评论 -
同步异步与阻塞非阻塞:
同步异步与阻塞非阻塞: 同步异步与阻塞非阻塞都是和IO相关的概念,阻塞非阻塞是与调用方相关的概念、而同步异步是被调用被相关的概念。同步异步说的是被调用者结果返回时通知进程的一种通知机制,阻塞非阻塞说的是调用结果返回前进程的状态,是挂起还是继续处理其他任务。同步和异步: 同步请求,A调用B,B的处理是同步的,在处理完之前他不会通知A,只有处理完之后才会明确的通知A。 异步请求,A调用B,B的处理是异步的,B在接到请求后先告诉A我已经接到请求了,然后异步去处理,处理完之后通过回调等方.转载 2021-03-05 16:31:27 · 162 阅读 · 0 评论 -
select、poll、epoll之间的区别总结
select、poll、epoll之间的区别总结[整理] </h1> <div class="clear"></div> <div class="postBody"> <div id="cnblogs_post_body" class="blogpost-body blogpost-body-html"> select,poll,e...转载 2021-03-05 16:09:11 · 208 阅读 · 0 评论 -
arraylist<Integer> 变成 int[]
int[] array = list.stream().mapToInt(i->i).toArray();//或者//int[] array = list.stream().mapToInt(Integer::intValue).toArray();原创 2021-02-19 23:51:08 · 264 阅读 · 0 评论 -
BeanPostProcessor和BeanFactoryProcessor浅析
1、简介BeanPostProcessor和BeanFactoryProcessor是Spring中很重要的了两个接口。我们先来看看Spring的文档中对BeanPostProcessor的定义:The BeanPostProcessor interface defines callback methods that you can implement to provide your own (or override the container’s default) instantiation lo转载 2021-02-03 11:49:49 · 550 阅读 · 0 评论 -
Spring中的aware接口
Spring中有很多继承于aware中的接口,这些接口到底是做什么用到的。awre.pngaware,翻译过来是知道的,已感知的,意识到的,所以这些接口从字面意思应该是能感知到所有Aware前面的含义。先举个BeanNameAware的例子,实现BeanNameAware接口,可以让该Bean感知到自身的BeanName(对应Spring容器的BeanId属性)属性,举个例子:BeanNameAware接口的定义public interface BeanNameAware ext转载 2021-02-03 11:37:15 · 208 阅读 · 0 评论 -
响应式Spring的道法术器(Spring WebFlux 教程)
Spring WebFlux 2小时快速入门 Spring 5 之使用Spring WebFlux开发响应式应用。 lambda与函数式(15min)Reactor 3 响应式编程库(60min)Spring Webflux和Spring Data Reactive开发响应式应用(45min) 通过以上内容相信可以对Spring...转载 2021-01-27 15:05:20 · 164 阅读 · 0 评论 -
(5)Spring WebFlux快速上手——响应式Spring的道法术器
本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | lambda与函数式 | Reactor快速上手 1.3.3 Spring WebFlux Spring WebFlux是随Spring 5推出的响应式Web框架。 1)服务端技术栈 Spring提供了完整的支持响应式的服务端技术栈。...转载 2021-01-26 13:45:49 · 321 阅读 · 1 评论 -
(4)Reactor 3快速上手——响应式Spring的道法术器
本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | lambda与函数式 1.3.2 Reactor Reactor与Spring是兄弟项目,侧重于Server端的响应式编程,主要 artifact 是 reactor-core,这是一个基于 Java 8 的实现了响应式流规范 (Reacti...转载 2021-01-26 10:34:28 · 422 阅读 · 0 评论 -
解决 Intellij IDEA Cannot Resolve Symbol ‘XXX’ 问题的三板斧
1.一把斧https://blog.csdn.net/qq_32040767/article/details/77096680二把斧https://blog.csdn.net/lesaqiu/article/details/548469603.三把斧点击菜单中的 “File” -> “Invalidate Caches / Restart”,然后点击对话框中的 “Invalidate and Restart”,清空 cache 并且重启。语法就会正确的高亮了。1 删除父项目的.i转载 2021-01-23 14:14:10 · 160 阅读 · 0 评论 -
spring boot 使用@ConfigurationProperties
有时候有这样子的情景,我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类 首先在配置文件里面,这些信息是这样子滴 connection.username=adminconnecti...转载 2021-01-22 11:49:09 · 185 阅读 · 1 评论 -
Springboot应用中@EntityScan和@EnableJpaRepositories的用法
文章目录 @EntityScan@EnableJpaRepositories 在Springboot应用开发中使用JPA时,通常在主应用程序所在包或者其子包的某个位置定义我们的Entity和Repository,这样基于Springboot的自动配置,无需额外配置,我们定义的Entity和Repository即可被发现和...转载 2021-01-18 17:23:15 · 1289 阅读 · 0 评论 -
JVM中的直接引用和符号引用
在JVM中,类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。而解析阶段即是虚拟机将常量池内的符号引用替换为直接引用的过程。1.符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。例如,在Class文件中它以CONSTANT_Class_info、CONSTANT_Fieldref_info、CONSTANT_Methodref_i转载 2021-01-11 20:03:16 · 175 阅读 · 0 评论 -
Unsafe类compareAndSwapInt
package com.wenc.keywords; import java.lang.reflect.Field;import java.util.concurrent.locks.AbstractQueuedSynchronizer; import sun.misc.Unsafe; public class CompareAndSwapTest { static class Target{ public int value = 10; } public static vo转载 2021-01-07 20:50:33 · 573 阅读 · 0 评论 -
Java中TreeMap和TreeSet的底层实现
TreeSet底层则采用NavigableMap这个接口来保存TreeSet集合,而实际上NavigableMap只是一个接口,实际上TreeSet还是用TreeMap来保存set元素。TreeSet初始化的时候会new 一个TreeMap进行初始化;private transient NavigableMap<E,Object> m;TreeSet(NavigableMap<E,Object> m) {this.m = m;}public TreeSet() {thi转载 2021-01-07 10:21:46 · 345 阅读 · 0 评论 -
OAuth 2.0 的四种方式
<!-- div class="asset-body" --> <p><a href="http://www.ruanyifeng.com/blog/2019/04/oauth_design.html" target="_blank">上一篇文章</a>介绍了 OAuth 2.0 是一种授权机制,主要用来颁发令牌(token...转载 2020-12-23 13:50:52 · 331 阅读 · 0 评论 -
使用Maven Helper解决Maven插件冲突
1、何为依赖冲突Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。但是A依赖的C的版本是1.0,B依赖的C的版本是2.0。这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C,这时Maven会依据依赖路径最短优先原则,来决定使用哪个版本的Jar包,而另一个无用的Jar包则未被使用,这就是所谓的依.转载 2020-12-21 15:35:06 · 149 阅读 · 0 评论 -
花了3天总结的RabbitMQ实用技巧,有点东西!
转载 2020-12-21 14:10:14 · 146 阅读 · 0 评论 -
Elasticsearch快速入门,掌握这些刚刚好!
记得刚接触Elasticsearch的时候,没找啥资料,直接看了遍Elasticsearch的中文官方文档,中文文档很久没更新了,一直都是2.3的版本。最近又重新看了遍6.0的官方文档,由于官方文档介绍的内容比较多,每次看都很费力,所以这次整理了其中最常用部分,写下了这篇入门教程,希望对大家有所帮助。简介 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式的全文搜索引擎,基于restful web接口。Elasticsearch是用Java语言开发的,基于Apache协议的开源转载 2020-12-21 11:35:29 · 205 阅读 · 0 评论 -
Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相转载 2020-12-21 09:50:30 · 151 阅读 · 1 评论 -
Ant 风格路径表达式
ANT通配符有三种: 通配符说明?匹配任何单字符*匹配0或者任意数量的字符**匹配0或者更多的目录 例子: URL路径说明/app/*.x匹配(Matches)所有在app路径下的.x文件/app/p?ttern匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern/**/example匹配(Matches) /app/example, /app/fo...转载 2020-12-20 17:57:32 · 532 阅读 · 0 评论 -
Spring Security之动态配置资源权限
在Spring Security中实现通过数据库动态配置url资源权限,需要通过配置验证过滤器来实现资源权限的加载、验证。系统启动时,到数据库加载系统资源权限列表,当有请求访问时,通过对比系统资源权限列表和用户资源权限列表(在用户登录时添加到用户信息中)来判断用户是否有该url的访问权限。 在配置验证过滤器时需要的配置项有如下几个:filterSecurityInterceptor:通过继承AbstractSecurityInterceptor并实现Filter接口自定义一个验证过滤...转载 2020-12-20 13:35:56 · 1539 阅读 · 0 评论 -
reboot 后 Docker服务及容器自动启动设置
重启reboot操作系统后,发现docker 服务未启动,容器也未启动,天生反骨,怎么才能重启后自动启动呢 解决问题两个问题: 1、docker服务自动重启设置 systemctl enable docker.service 2、docker容器自动启动设置 docker ps -a 使用一下命令对镜像从起: docker restart imageid 在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:...转载 2020-12-17 16:39:56 · 161 阅读 · 0 评论 -
Docker 启动elasticsearch报内存不足解决
启动es[root@localhost es]# docker run -d --name es2 -p 9201:9200 -p 9301:9300 elasticsearch_ik25eeaefae21deb42424577e328dca81adcdd61b7a03c7a1b8be1911457f72c3a[root@localhost es]# docker exec -it es2 /bin/bashError response from daemon: Container 25eeaef转载 2020-12-17 14:35:18 · 798 阅读 · 1 评论 -
Elasticsearch 升级 7.x 版本后,我感觉掉坑里了!
SpringBoot实战电商项目mall(35k+star)地址:https://github.com/macrozheng/mall摘要最近想把我的mall项目升级下,支持SpringBoot 2.3.0 版本。升级过程中发现需要升级Elasticsearch到7.x版本,学习过我的mall项目的朋友应该知道,我用的Elasticsearch是6.x版本,升级到7.x以后ElasticsearchTemplate都不让用了。本文记录了Ela...转载 2020-12-16 20:30:30 · 607 阅读 · 0 评论 -
Intellij IDEA运行前不检查其他类的错误
问题描述 MainClass为要运行的正常类,目录下存在一个类ErrorClass有错误,运行MainClass时会无法运行。 现在需要忽略ErrorClass中的错误,执行MainClass中的代码。 解决方法 第一步 第二步 在工具栏选择 , Run Configurations 设置在运行前不检查错误 ...转载 2020-12-15 21:03:05 · 943 阅读 · 1 评论 -
https://blog.csdn.net/whoamiyang/article/details/52942143
在Java中存在一些转义字符,比如"\n"为换行符,但是也有一些JDK自带的一些操作符比如 : System.getProperty(“line.separator”)这也是换行符,功能和"\n"是一致的,但是此种写法屏蔽了 Windows和Linux的区别 ,更保险一些....转载 2020-12-15 18:44:24 · 215 阅读 · 0 评论 -
Swagger2 非全局、无需重复输入的Head参数(Token)配置
优化方案如下: 通过Swagger2的securitySchemes配置全局参数:如下列代码所示,securitySchemes的ApiKey中增加一个名为“Authorization”,type为“header”的参数。private List<ApiKey> securitySchemes() { return newArrayList( new ApiKey("Authorizatio...转载 2020-12-15 15:20:44 · 669 阅读 · 0 评论 -
Java静态内部类(static class)
在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。 一、静态内部类的使用目的。 在定义内部类的时候,在其前面加上一个权限修饰符static。这个内部类就变为了静态内部类。如在进行代码程序测试的时候,如果在每一个Java源文件中都设置一个主方法(主方法是某个应用程序的...转载 2020-11-23 15:24:49 · 1311 阅读 · 0 评论 -
mapstruct使用详解
阅读目录:序一、准备工作1.1、了解@Mapper 注解1.2、依赖包二、先简单玩一把2.1、定义实体类以及被映射类2.2、定义接口:2.3、使用2.4、查看编译结果2.5、浏览器查看结果三、不简单的情况3.1、类型不一致3.2、字段名不一致3.3、属性是枚举类型源代码 阅读正文: 我们都知道,随着一个工程的越来越成熟,模块划分会越来越细,其中实体类一般存于 domain 之中,但 domain 工程最好不要被其他工程依赖,所以其他工程想获取实体类数据时就需要在各自工程写 model,自转载 2020-11-15 16:13:29 · 761 阅读 · 0 评论 -
Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Could not create connection to database server. Attempted reconnect 3 times. Giving up. : com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure sed by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException.原创 2020-11-15 13:15:42 · 3104 阅读 · 0 评论