JAVA天地
文章平均质量分 58
Java语言如今已经23岁了。Java应用的广泛已经到了“无处不用”的盛世。本专栏就是给大家讲讲怎样学习Java,以及学习过程中遇到的问题的解决方法都会一一呈现,并且给大家建议一条轻松精通Java的学习路线。
Adam`南帝·梁
世上哪有什么岁月静好,不过是有人替你负重前行
展开
-
Spring Boot集成Swagger 访问失败 SpringBoot集成Swagger2遇到异常:请求不到swagger-ui.html.note
我们在使用SpringBoot集成Swagger2中,访问:http://localhost/swagger-ui.html问题描述:No mapping found for HTTP request with URI [/swagger-ui.html] in DispatcherServlet with name ‘dispatcherServlet’问题截图:参考文章:https://www.it610.com/article/1188228427770077184.htmhttps://原创 2022-10-22 21:31:30 · 2133 阅读 · 1 评论 -
Spring项目启动时Error creating bean with name ‘xxxxxx‘: Bean with name ‘xxxxxx‘ has been injected into ot
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'xxxxxx': Bean with name 'xxxxxx' has been injected into other beans [xxxxxx] in its raw version as part of a circular reference, but has eventuall原创 2022-08-03 14:16:40 · 1286 阅读 · 0 评论 -
创建线程的方式与过程(代码解析+对比)
创建线程的方式继承Thread类(extends)实现Runnable接口(implements)实现Callable接口+Future Task(可以拿到返回结果,可处理异常)线程池:Executors/ThreadPoolExecutor线程池工作流程线程池创建准备好corePoolSize大小的核心线程准备任务来了先试用核心线程core满了,将再进来的任务放到阻塞队列中等候阻塞队列满了,直接开启新的线程(不超过max数量)非核心线程会在keepAliveTime后自动销毁超过m原创 2022-05-16 21:34:33 · 342 阅读 · 0 评论 -
深入:分布式锁(底层原理+实现解析)
什么是分布式锁?概念CAP定理任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。为什么要有分布式锁?单机锁不能完成么?图解单机锁分布式架构下只能锁住当前机器,而不能实现个节点使用同一把锁如何设计分布式锁可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。这把锁要是一把可重入锁(避免死锁)这把锁最好是一把阻塞锁(根据业务需原创 2022-05-16 21:09:22 · 939 阅读 · 0 评论 -
Nacos与Eureka的区别(功能差异及选型建议)
Nacos与Eureka的区别共同点都支持服务注册和服务拉取都支持服务提供者心跳的方式做健康检测区别Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式(一般情况下都使用临时实例,主动检测消费的服务器资源较大,服务器压力大)临时实例心跳不正常会被剔除,非临时实例则不会被剔除Nacos支持服务列表变更的消息推送模式,服务列表更新及时Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式功能差异模块Nac原创 2022-05-09 19:10:12 · 3077 阅读 · 0 评论 -
Spring IOC容器的初始化过程
Spring IOC容器的初始化过程控制反转 Before:对象A依赖于对象B,A掌握控制权 Now:引入IOC容器,对象A与对象B失去了直接联系,so,当对象A运行到需要对象B的时候,IOC容器会主动创建一个B注入到A需要的地方去。 Result:对象A获得依赖对象B的过程,由主动行为变成了被动行为。控制权颠倒过来了,这就是控制反转。依赖注入DI:即由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中。所以DI和IOC是从不同角度的描述的同一件事,就是指通过引入IOC容器利用原创 2022-05-09 18:50:45 · 574 阅读 · 0 评论 -
SpringBoot自动装配原理
过程@SpringBootApplication——>@EnableAutoConfiguration——>@Import提供,其导入的AutoConfigurationImportSelector的selectImports()方法SpringFactoriesLoader.loadFactoryNames()扫描所有具有META-INF/spring.factories的jar包下面key是EnableAutoConfiguration全名的,所有自动配置类。看看SpringB原创 2022-05-09 16:58:38 · 291 阅读 · 1 评论 -
深入:分布式一致性:Raft算法解析
分布式CAP理论Consistency 一致性Availability 可用性Partition tolerance 分区容错性(ps:三者不可兼顾)什么是raft算法?(AP)Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现。raft算法解决了什么问题?Raft 是用来管理复制日志(replicated log)的一致性协议。它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos原创 2022-05-04 15:19:00 · 399 阅读 · 0 评论 -
浅析:类的加载过程
通过简单的例子可以很好地理解类在加载过程中对静态变量和常量的创建和初始化,但需要结合JVM内存结构深入理解。原创 2022-05-02 15:48:54 · 1575 阅读 · 0 评论 -
单元测试 Mock 对象为null
场景:单元测试mock对象,执行时为null或值不符。单元测试中mock方法并doReturn了mock数据,但是实际的方法在后面使用的参数却是null。断点调试后发现调用方法前和在方法中的对象的id并非一个;重复浏览调用代码,发现问题在于单测中重复mock一个方法,doReturn的mock数据被覆盖了问题原因:doReturn(selectEntity).when(selectMapper).selectById(any());首先确定doReturn的对象是否给属性赋值尽量用anyLo原创 2022-04-05 18:26:07 · 8367 阅读 · 0 评论 -
浅谈:幂等性
概念:幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的.更复杂的操作幂等保证是利用唯一交易号(流水号)实现。数学定义:在数学里,幂等有两种主要的定义。在原创 2021-12-02 10:18:21 · 877 阅读 · 0 评论 -
K8S容器 exitCode:137 OOM 导致节点重启 Kibana排查过程
Kibana日志信息:2021-11-15 14:38:43.650 DEBUG 7 — [ main] o.s.c.e.PropertySourcesPropertyResolver : Found key ‘spring.cloud.stream.bindings.*****************’ in PropertySource ‘bootstrapProperties’ with value of type String2021-11-15 15:23:36.304原创 2021-11-30 19:12:33 · 2327 阅读 · 0 评论 -
ps -ef|grep一扒到底
简介:ps命令将某个进程显示出来grep命令是查找中间的|是管道命令 是指ps命令与grep同时执行如例检查存在的java 进程:ps -ef |grep java字段解释 :UID :程序被该 UID 所拥有PID :就是这个程序的 IDPPID :则是其上级父程序的IDC :CPU使用的资源百分比STIME :系统启动时间TTY :登入者的终端机位置TIME :使用掉的CPU时间。CMD :所下达的是什么指令原创 2021-11-29 17:56:13 · 239 阅读 · 0 评论 -
Jenkins实战先看这:Jenkins 集成Junit单元测试+Jacoco统计覆盖率
版本信息:Jenkins:2.190.1jdk:1.8.0_231maven:3.6.2需求:通过Jenkins构建 运行单元测试并统计覆盖率遇到的问题:流水线语法脚本;(文档学习)Jenkins mvn not found;(jerkin环境变量添加maven路径)NullPointerException in Jenkins;(wrap{}语法不支持)Error cloning remote repo ‘origin’;(脚本书写错误)There is insuffici原创 2021-11-29 10:24:31 · 2332 阅读 · 0 评论 -
手把手教学:Linux下通过DockerFile制作docker镜像并部署容器(Java)
编写DockerFile文件FROM openjdk:8-jdk-alpineMAINTAINER nequalQARUN mkdir -p /home/report/logs#打包项目并拷贝到COPY ./target/report-1.0-SNAPSHOT.jar /home/reportWORKDIR /home/reportENV HOME=/home/reportENTRYPOINT ["java" ,"-jar", "report-1.0-SNAPSHOT.jar",原创 2021-11-26 11:20:59 · 2308 阅读 · 0 评论 -
Invalid bound statement (not found)解决
问题报错:Invalid bound statement (not found):********问题原因:根据网上大佬们分析的原因主要有以下五点mapper.xml 里面的 namespace与实际类不一样mapper接口的函数名称和mapper.xml里面的标签id不一致构建没有进去,请看一下target文件夹下面这些是否存在,没有请重新构建扫包是否添加,我的是添加在springboot启动类上面的,如果是配置类请百度一下配置文件写错前两点验证很简单,到对应m原创 2021-08-23 20:49:06 · 707 阅读 · 0 评论 -
Source code does not match the bytecode
问题:Source code does not match the bytecode(源代码与字节码不匹配)解决:重启项目原因:代码更改添加了,但是并未重新编译一下,所以添加的代码idea就探测不到,只需要重新debug restart一下/Build Project...原创 2021-08-13 14:20:31 · 21861 阅读 · 3 评论 -
java8 对象转 Map 时 key Duplicate key
报错信息:Duplicate key SpotDiffBudgetDTOjava.lang.IllegalStateException: Duplicate key...问题代码:Map<String, SpotDiffBudgetDTO> spotMap = list.stream().collect(Collectors .toMap(SpotDiffBudgetDTO::getSpotId, spotDiffBudgetDTO -> spotD原创 2021-08-08 20:08:31 · 846 阅读 · 0 评论 -
JVM相关知识点整理
类的生命周期:加载、验证、准备、解析、初始化、使用、卸载类的加载机制是双亲委派模型:bootstrapClassLoaderextensionClassLoaderapplicationClassLoaderuserClassLoader总结:自定义类加载器,第一需要继承ClassLoader类,第二重写findClass方法原理分析:MyClassLoader loader1 = new MyClassLoader(“loader1”);loader1.setPath(“d://.原创 2021-03-21 21:58:04 · 261 阅读 · 0 评论 -
Intellij IDEA的各种全局搜索快捷键
前言留存,备用Ctrl+N按名字搜索类相当于eclipse的ctrl+shift+R,输入类名可以定位到这个类文件,就像idea在其它的搜索部分的表现一样,搜索类名也能对你所要搜索的内容多个部分进行匹配,而且如果能匹配的自己写的类,优先匹配自己写的类,甚至不是自己写的类也能搜索。Ctrl+Shift+N按文件名搜索文件同搜索类类似,只不过可以匹配所有类型的文件了。Ctrl+H查看类的继承关系,例如HashMap的父类是AbstractMap,子类则有一大堆。Ctrl+Alt+B查看子类原创 2021-01-16 22:18:16 · 1160 阅读 · 2 评论 -
IDEA 错误 找不到或无法加载主类(完美解决)
前言今天在运行项目的时候突然出了这样一个错误:IDEA 错误 找不到或无法加载主类问题报错找不到或无法加载主类CSDN 有大佬是这样解决的错误:找不到或无法加载主类猜测:1,未能成功编译;尝试:菜单—》Build—》Rebuild Prodject结果:启动服务仍然报同样的错误2,缓存问题;尝试:菜单—》File—》Invalidate Caches/Restart 选择Invalidate and Restart 或者 只是Invalidate,清除掉缓存,然后Rebuild Pro原创 2021-01-16 22:12:02 · 392506 阅读 · 193 评论 -
java.lang.ArrayIndexOutOfBoundsException
前言程序员的一天:中午写bug,下午找bug,晚上改bug,over!问题原因解析数组下标越界 具体的一个例子: Exception in thread “main”:java.lang.ArrayIndexOutOfBoundsException: 1 atBrute.State.nextStates(State.java:55) atBrute.State.main(State.java:49)解决方案在代码提示行55行找出数组,并查看数组的下标为什么越界...原创 2021-01-16 19:04:37 · 578 阅读 · 1 评论 -
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
前言从网上找了个SpringBoot整合各种东西的项目,在调试过程中出现了此问题。问题Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception排查原因controller层没有加@ResponseBodyService层实现类未添加注解@Autowired@RestController使用成了@Controller解决方案项目中service层注解未添加,添加原创 2021-01-16 18:58:35 · 3928 阅读 · 0 评论 -
IDEA下SpringCloud项目UnlinkMavenProjects或Remove moudle如何重新加载到父工程
前言今天误操作了一波,点了一下maven管理的UnlinkMavenProjects 键(点过Remove moudle的小伙伴也可以尝试这样解决)问题project左侧不显示目录了,maven管理框不见了,到view中ToolWindos里也找不到,closeproject重新import也不行解决方案file—>project structure—>moudles—>将之前的Moudle都删掉然后点加号重新选择父工程pom文件apply—>OK...原创 2021-01-15 12:28:42 · 6714 阅读 · 1 评论 -
Type ‘java.awt.List‘ does not have type parameters
前言今天在开发过程中遇到了问题,为了告诉自己是个菜鸡,我决定要把它记录下来balabala~如果你点进来了,麻烦分个类,把我扔进你的收藏夹和关注夹,最后在不要脸的跟你要个赞!问题截图 Type ‘java.awt.List’ does not have type parameters原因分析解决方案最后...原创 2021-01-10 20:38:21 · 3202 阅读 · 6 评论 -
记一次线上问题集合到底怎么去重
前言前两天写了个双色球生成器,把代码一亮,好多朋友就问了,你这样嵌套性能不就很低了么?拜托大哥,我生成1000万个,你也不一定都买了呀,够需求就行了;但是还是有求必应吧!请看↓十行写个彩票随机生成器(双色球+大乐透)开始操作诉求集合去重在目标数量比较大的时候效率低下,极大可能还会让服务器宕机(偷偷告诉你其实这就是我前几天线上出的问题 ),有什么办法可以高效且优雅 的完成任务么?先看原代码↓优化前public static <T> List<T> distinc原创 2021-01-10 20:26:56 · 235 阅读 · 0 评论 -
十行代码写个彩票随机生成器(双色球+大乐透)
前言自己动手丰衣足食,平时买彩票总是不中,回想起来是不是他那个机器机选的就是不中的号???那就自己code一个试试吧!偷偷告诉你,我写完 就去买了,结果真就中了!思路规则双色球(红球33选6,蓝球16选1)大乐透(红球35选5,蓝球12选2)生成随机数生成的数要不重复且在规则范围内for循环+do while+boolean去重(当然这样的效率很低,可是暂且够用就行了,如果想知道优化版怎么做的话,请移步此博客:)代码客户端代码public class DoubleCh原创 2021-01-10 19:51:45 · 9262 阅读 · 10 评论 -
自己写的代码太low?想提升代码质量但是不知道怎么做?IDEA安这个插件~
前言《阿里巴巴编码规范》无规矩不成方圆,无规范不能协作。阿里近万名Java技术精英的经验总结,铸就了高含金量的《阿里巴巴Java开发手册》,并向业界开放,希望使团队在Java开发上更高效、容错、有协作性,提高代码质量并降低维护成本。本认证是对你的编码风格是否符合该手册的证明。遵守编码规范,从现在做起!在经历了一天时间的学习与总结,并且根据实际编码经验,成功的一次考过。附上证书一枚考试资料:《Java开发手册》v1.5.0 华山版.pdf认证入口: 阿里巴巴编码规范技能认证入口整理考题:原创 2021-01-09 10:18:11 · 341 阅读 · 0 评论 -
源码分析HashMap(超详细图文源码解析)
前言:相信大家肯定有过此类的问题,有的东西用了半天,到底是干嘛的呢?会用了但是不知道为什么要用它,今天就来说说这个HashMap。正文:当我们需要存储数据的时候,我们已知的动态数组有哪些呢?但是这些数组虽然能够自动扩容,但是必须在初始时刻指定初始容量。而对于那些在编译时无法确定具体的数量即动态增长的数据,就需要用到Java集合类了:ArrayList 和 LinkedList,还有 Vector等等......对于ArrayList 和 LinkedList,还有 Vector它们都有一原创 2020-12-18 12:28:06 · 272 阅读 · 0 评论 -
最详细的HashCode源码解析:为什么选用31作为基数
前言: 无序的集合在hashmap中会调用hashcode()方法,HashCode源码: /** * Returns a hash code for this string. The hash code for a * {@code String} object is computed as * <blockquote><pre> * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[...原创 2020-12-25 09:22:14 · 352 阅读 · 0 评论 -
@Column注解属性详解
@Column属性详解:name定义了被标注字段在数据库表中所对应字段的名称;unique表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint。nullable表示该字段是否可以为null值,默认为true。insertable表示在使用“INSERT”脚本插入数据时...原创 2019-05-22 08:30:07 · 10592 阅读 · 2 评论 -
Java8 Stream链式表达式:去重+排序
前言:list是开发过程中使用比较频繁的,今天记一篇List使用中的三种形式,并区分之。要求: 合并两个list中的元素(均为整数),返回一个不重复且非降序的list; 输入:list_1=[1,2,3,4,-1,2,2],list_2=[-1,1,2,3,4,5] 输出:result=[-1,1,2,3,4,5]HashSet:可以去重,但不能排序TreeSet:既可去重,又可以排序(默认为升序)Strea...原创 2020-11-18 22:42:32 · 3020 阅读 · 0 评论 -
JVM内存结构(基础版)
JVM内存结构什么是JVM?为什么要有JVM?JVM内存结构有哪些?堆(Heap)方法区(Method Area)方法栈(JVM Stack)本地方法栈(Native Method Stack)程序计数器(Program Counter Register)总结什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来...原创 2020-03-25 16:01:59 · 409 阅读 · 0 评论 -
Java开发环境配置
前言:目前项目用到jdk,以及需要学习JAVA的开发,所以先将环境搭建好,下面给大家分享一下搭建的细节和变量的配置。下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html根据自己的系统选择对应的版本。安装:下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE...原创 2018-05-14 00:06:44 · 239 阅读 · 13 评论 -
IntelliJ Idea中右边的maven projects窗口丢失
前言:是不是手残不知道怎么就把它搞丢了?别着急,让我来帮你解决问题。1点击菜单栏View2.Tool Windows3.Maven projects效果:小结:是不是心情好多了?点个赞吧,或者留下你的宝贵的建议! ...原创 2018-07-29 15:37:32 · 6795 阅读 · 21 评论 -
JAVA:Print汉字乱码问题
前言: Java语言是目前的主流计算机语言之一,作为一个小白程序员一定要从最基础的学起,但是问题总是接二连三的到来,今天就给大家分享一下Print中文出现乱码的问题。错误截图:源码:public class TestPrint{ public static void main (String []args){ System.out.println("车龙梁");原创 2018-04-18 21:02:45 · 3013 阅读 · 21 评论 -
Java:找不到或无法加载主类
前言:好久没有运行java的文件了,今天在练习归并排序的时候就出现了点小插曲——“找不到或无法加载主类”。遇到问题先莫慌,找到问题的根本原因才能解决问题。问题原因:一、环境变量检查环境变量配置,试着在命令提示符中运行“java”、“javac”、“java -version”这三个命令,如果都可以说明不是变量的设置问题。如果不知道如何配置环境变量,请点这里——>...原创 2018-08-27 09:15:16 · 1291 阅读 · 10 评论 -
JDBC:Java database Connectivity
概念: Java database Connectivity Java数据库连接,java语言操作数据库 本质: 其实官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar 包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。 JDBC定义了操作所有关系型数据库的规则...原创 2019-07-14 21:33:26 · 773 阅读 · 0 评论 -
注解是什么意思?
前言:注解:*注解:说明程序的(给计算机看)*注释:用文字描述程序的。(给程序员看)*定义:从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。*概念描述:*JDK1....原创 2019-06-02 11:08:25 · 2933 阅读 · 1 评论 -
检测代码执行效率
前言:有时我们需要高效的运行速度,但是要怎么样才能直观的查看代码的运行效率呢?第一种:System.Diagnostics.Stopwatch stopwatch = new Stopwatch();stopwatch.Start(); // 开始监视代码运行时间// 需要测试的代码 ….stopwatch.Stop(); // 停止监视TimeSpan times...原创 2019-05-03 14:55:07 · 1218 阅读 · 0 评论