Java
清风拂山感
讨论出同志,追求心中趣
展开
-
在Idea中使用Git后,类名各种颜色代表的含义
idea使用git后,类的颜色变化代表的含义转载 2022-06-21 22:22:57 · 1830 阅读 · 0 评论 -
JAVA通用版日期区间
说明:最近写了一些求时间段的数据,发现若是在mysql写的话有点冗余不通用。然后,参考其他博主和自己改造一下生成一篇通用的日期区间工具类。注意,针对于跨年的问题。大家使用的时候注意一下是不是符合你们的需求。代码:package com.crm.untils;import java.text.SimpleDateFormat;import java.util.*;import static com.jdlims.util.DateUtil.getNowMonth;import static原创 2022-04-18 11:34:34 · 1304 阅读 · 0 评论 -
javax.websocket.server.ServerContainer not available
1、在SpringBoot项目中集成了WebSocket,在进行单元测试的时候,出现了以下错误:2、单元测试类的原注解是这样的: @RunWith(SpringRunner.class) @SpringBootTest3、经查阅资料,得知SpringBootTest在启动的时候不会启动服务器,所以WebSocket自然会报错,这个时候需要添加选项webEnvironment,以便提供一个测试的web环境。如下: @RunWith(SpringRunner.class)转载 2022-01-06 17:09:30 · 1076 阅读 · 0 评论 -
mybaits-plus代码生成器的使用
一、引入jar <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </dependency> <!--mysql-->原创 2021-12-07 23:33:41 · 744 阅读 · 0 评论 -
解决maven工程的properties文件内容呈灰色
大家是否有这样的经历,当我们springboot/maven工程创建properties/yaml配置文件的时候,发现其配置内容呈灰色,具体原因尚未知,下面我是参考他们他人得知的其中一种解决方案。亲试有效1、现象2、解决方案...原创 2021-12-07 23:02:25 · 2552 阅读 · 2 评论 -
mybatis plus主键自增策略
我们知道mybatis plus中自带着一套主键生成的策略。其内部是根据snowflake算法而生成的,snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。本次主要是如何应用主键策略,并不会讲解snowflake算法。核心思想:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。具体实现的代码可以参看htt原创 2021-12-05 22:17:39 · 4275 阅读 · 0 评论 -
@Autowired注入对象报红原因
一、现象二、分析IDEA在 userMapper 处报错,因为找不到注入的对象,因为类是动态创建的,但是程序可以正确的执行。三、解决方法其一为了避免报错,可以在 dao 层 的接口上添加 @Controller / @Component / @Repository 等扫描注解都可以。不过建议按照编写规范来,针对持久层使用@Repository即可 四、解决说明:不加也没有关系,程序照样运行。若是看着不舒服,加上对应注解即可。...原创 2021-12-05 16:14:01 · 1360 阅读 · 1 评论 -
分析springboot连接MYSQL8的变化
注意:driver和url的变化1、这里的 url 使用了 ?serverTimezone=GMT%2B8 后缀,因为Spring Boot 集成了 8.0版本的jdbc驱动,这个版本的 jdbc 驱动需要添加这个后缀,否则运行测试用例报告如下错误:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more 2、这里的 driver-class-name 使用.原创 2021-12-05 15:49:54 · 615 阅读 · 0 评论 -
使用策略+工厂模式彻底干掉代码中的if else
对于业务开发来说,业务逻辑的复杂是必然的,随着业务发展,需求只会越来越复杂,为了考虑到各种各样的情况,代码中不可避免的会出现很多if-else。一旦代码中if-else过多,就会大大的影响其可读性和可维护性。首先可读性,不言而喻,过多的if-else代码和嵌套,会使阅读代码的人很难理解到底是什么意思。尤其是那些没有注释的代码。其次是可维护性,因为if-else特别多,想要新加一个分支的时候,就会很难添加,极其容易影响到其他的分支。笔者曾经看到过一个支付的核心应用,这个应用支持了很多业务的线上支付功转载 2021-12-03 15:57:15 · 1408 阅读 · 0 评论 -
优化 if-else 代码的 八 种方案
一、说明不知各位是否有一种感觉,看到自己的写的代码中含有密密麻麻的if-else就很变扭。但是说这又是程序中不可或缺的点,也只能是强扭的瓜了。下面根据参考他人和自己理解的,列举出八种优化的写法,根据适合的场景使用不同的方法。希望对你有所帮助优化方案一:提前return,去除不必要的else如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。优化前if(condition){ //doSomething}else{ ret原创 2021-12-03 10:14:51 · 1949 阅读 · 0 评论 -
Non-terminating decimal expansion;no exact representable decimal result
当页面或者控制台出现如下图问题编译:非终止小数扩展;没有可精确表示的十进制结果根据编译的提示可知,关于精确度和小数的问题一般来说都是由Double和BigDecimal引起导致精确度基本都是小数位问题。解决问题:因为BigDecimal类型的计算需要使用divide函数,没有指定精确到小数点后几位造成的,导致不能整除而出现无限循环,这时候查看divide方法//乘法public BigDecimal divide(BigDecimal divisor, int scale, int roun原创 2021-06-24 09:55:26 · 748 阅读 · 0 评论 -
Java 8 Stream终端操作使用详解
Stream流的终端操作主要有以下几种,我们来一一讲解。forEach()forEachOrdered()toArray()reduce()collect()min()max()count()anyMatch()allMatch()noneMatch()findFirst()findAny()终端操作代码实例详解1、forEach():遍历流中的每一个元素,按照指定的方法执行,执行顺序不一定按照流的顺序。// foreach:遍历流中每一个元素,执行顺序按照流的顺序S.转载 2021-06-10 09:37:51 · 416 阅读 · 0 评论 -
Java 8 Stream中间操作使用详解
再次介绍StreamStream 使用一种类似用于SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。 这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如筛选,排序,聚合等。Stream两种操作中间操作(Intermediate Operations):中间操作会返回一个新的流,一个流可以后面跟随零个或多个intermediat.转载 2021-06-09 17:57:41 · 1435 阅读 · 0 评论 -
Java 8创建Stream流的5种方式
不知不觉间,Java已经发展到16了,来不及感慨时间过得真的太快了,来不及学习日新月异的技术更新,目前大多数公司还是使用的JDK8版本,一方面是版本的稳定,另一方面是熟悉,所以很多公司都觉得不升级也挺好说到JDK8,真的是一个里程碑的版本,一出世就受到所有开发者的青睐,并主动花时间和精力去学习,也是我见过企业升级JDK最豪爽最不犹豫的一个版本,可见JDK8的受欢迎程度。当然所有的喜爱都是因为它的特性,整理了jdk8的十大主要特性:Lambda表达式Stream函数式操作流元素集合接口新.转载 2021-06-09 17:43:33 · 429 阅读 · 0 评论 -
IDEA中实现JRebel热更
1、你是否有这样的烦恼?每次对后台代码进行CRUD操作的时候,都要进行代码重载的操作。小Demo倒是没有问题,若是大Demo就头疼了。动则几分钟2、治疗烦恼的药物Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。3、治疗效果DEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少生命啊。目前对于idea热部署最好的解决方案就是安装JRebel插件,这样不论是更新 class 类还是更新 Spring 配置文件都能做到立马生原创 2021-06-03 10:54:49 · 536 阅读 · 0 评论 -
极其简洁的左移右移
在阅读源码的过程中,发现左移右移是比较常见的。记住口诀:左乘二右除二简洁的例子:左移代表乘,左移一位代表乘2,左移两位代表乘4,依次递增12<<1=24 12<<2=48右移代表除, 右移一位代表除2,右移两位代表除4,依次递增12>>1=6 12>>2=3...原创 2021-06-01 21:01:02 · 269 阅读 · 0 评论 -
Java邮箱发送测试
一、pom.xml中添加依赖<!-- 邮箱配置--> <!--邮箱依赖--> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <!--原创 2021-04-27 10:51:53 · 688 阅读 · 0 评论 -
Method breakpoints may dramatically slow down debugging
一、问题故障Method breakpoints may dramatically slow down debugging.翻译:方法断点可能会大大降低调试速度。描述:说明当前项目中在某些方法和接口上打了断点导致执行延迟。二、错误打断点方式合理的打断点,那么标识号是圆圈的。错误的为菱形。三、解决方案总体来说就是把含有菱形的断电去掉,若是某个接口实现方法需要打断点,可以在方法名称和参数的下一行进行打断点。...原创 2021-04-16 17:52:02 · 29055 阅读 · 3 评论 -
IDEA修改JDK版本完整版
第一步:File—Settings—Bulid,Execution,Deployment—Compiler—Java Compiler。第二步:File—Project Settings—Project。第三步:File—Project Settings—Modules。第四步:File—Project Settings—SDKs。到这里已经完成idea中的JDK版本设置,祝你编码快乐;...原创 2021-04-14 14:49:51 · 968 阅读 · 0 评论 -
Error running ‘Application‘: Command line is too long.Shorten command line for
一、报错信息Error running 'Application':Command line is too long.Shorten command line for Application or also for Spring Boot default configuration.二、报错原因springboot项目启动命令过长三、解决办法点击项目启动配置项 -> shorten command line 选项选择 classpath file 或 java manifest 选项转载 2021-04-14 14:33:05 · 7874 阅读 · 1 评论 -
电脑中找不到.ssh文件的解决办法
①创建Git的用户名和邮箱若是你的已经装有请忽略!!!!创建用户名,打开Git bashgit config --global user.name “用户名”创建邮箱git config --global user.email “XXX@XXX.com”②生成一个新的SSH密钥打开 Git Bash,输入如下命令,然后连续按三个回车即可:ssh-keygen -t rsa -C “你的邮箱”然后会出来提示Enter file in which to save the key 后面是一个路径原创 2021-03-04 22:31:03 · 4187 阅读 · 2 评论 -
关于Git闪退问题
Git一般来说正常安装是没有任何问题,但是非正常情况下也会出现一系列的问题出现,令人难以费解!我主要将的是git闪退问题List item1、我查阅了网上很多文章,大部分都是讲明系统文件下的null.sys文件损坏而导致的闪退问题。List item2、如是闪退那一瞬间没有错误信息提示,可能就是null.sys的问题。可以根据其他博客发出来的地址取下载一个null.sys覆盖原来的null.sys。(注意:覆盖之前先把原先的null.sys备份好,以防万一)List item3.若是原创 2021-03-04 15:51:10 · 1664 阅读 · 2 评论 -
String自我介绍
一、三大核心特点 不变性: String是一immutable模式的对象,不变模式的主要作用是当一个对象需要被多线程共享并频繁访问时,可以保证数据的一致性。 常量池的优化: String对象创建之后,会在字符串常量池中进行缓存,下次创建同样的对象时,会直接返回缓存的引用。 Final修饰: String类不可被继承,提高了系统的安全性。二、类型结构 String不是基本数据类型三、String 的实例化 String 的实例化有两种方式: 1、直接赋值, 2原创 2020-07-20 16:54:28 · 273 阅读 · 0 评论 -
什么是乐观锁,什么是悲观锁
一、并发控制当程序中可能出现并发的情况时,就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在 DBMS 中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离性、一致性和数据原创 2020-11-25 23:23:35 · 58 阅读 · 0 评论 -
Error:Module ‘工程名‘ production: java.lang.ClassCastException:
错误信息:Error:Module ‘工程名’ production: java.lang.ClassCastException: org.jetbrains.jps.builders.java.dependencyView.TypeRepr$PrimitiveType cannot be cast to org.jetbrains.jps.builders.java.dependencyView.TypeRepr $ClassType定位问题:简单的说就是该工程编译问题。解决方法:找到列表的B原创 2020-10-04 17:00:41 · 3748 阅读 · 1 评论 -
Java compiler level does not match the version of the installed Java project facet
Eclipse出现Java compiler level does not match the version of the installed Java project facet错误提示原因:Java Compiler选择的版本和’Project Facets’中指定的java版本不一致引起的。修改为一致即可,'Project Facets’版本的修改方式的有多种。1、可以直接修改相应配置文件在工程目录下.settings/org.eclipse.wst.common.project原创 2020-07-14 16:59:55 · 158 阅读 · 0 评论 -
三、JAVA的垃圾回收机制
引用 参考文章:https://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/ 参考文章:https://www.cnblogs.com/bingosblog/p/6661527.html 参考文章:https://blog.csdn.net/wuzhixiu007/article/deta...原创 2020-04-19 01:08:43 · 499 阅读 · 0 评论 -
An internal error occurred during: “Launching Project”. java.lang.NullPointerException
推荐:Eclipse报异常:An internal error occurred during: “Launching Project”. java.lang.NullPointerException如下图所示: Eclipse报异常:An internal error occurred during: “Launching Project”. java.lang.NullPointerExc...原创 2020-02-01 15:37:37 · 1329 阅读 · 0 评论