
java
文章平均质量分 59
终成一个大象
战略上要藐视敌人,战术上要重视敌人!
展开
-
如何理解java的值传递?
1、基本数据类型(值传递)java中的基本数据类型可以在栈(stack)中直接分配内存,它有以下八种:boolean,byte,char,short,int,long,float,double2、引用数据类型(址传递 或 引用传递)除了基本数据类型外,他们的对象的引用在栈(stack)中,对象实际存放在堆(heap)中,实际上是将对象的地址赋值了过去。3、特殊类型(效果等同于值传递)String类型、Integer类型等,这些类型保存数据的变量是final类型,只要牵涉到数据变更,都需原创 2023-01-28 15:16:55 · 291 阅读 · 0 评论 -
The following method did not exist (maven依赖冲突解决全记录)
jar包依赖冲突全记录2、下载Maven Helper打开IDEA项目配置,下载Maven Helper插件从错误日志我们可以看到guava这个jar包出现问题打开pom文件分析maven依赖冲突从上图可以得到的信息:从下面这张图,我们可以把问题看的更清楚。升级jar包版本至30.1-jre即可。还有一种情况时,高版本的jar包不兼容低版本的jar包,这种情况以后碰到会总结过来。...原创 2022-08-16 17:13:51 · 11992 阅读 · 0 评论 -
Unsupported class file major version 60
最近项目依赖的一个第三方组件升级了,升级了pom文件依赖之后,发现本地启动报错,如下:我的java版本是16,springboot的版本是2.3.3.RELEASE,分析发现是springboot的版本不支持java16,需要升级。解决方案:原来的配置如下:将springboot版本升级为2.5.14参考链接:https://spring.io/projects/spring-boot#learn...原创 2022-06-09 19:48:06 · 1978 阅读 · 2 评论 -
springboot升级引入的跨域问题
springboot版本从升级到后,前端访问后台接口提示跨域问题。将原来的跨域配置,如下:修改为如下:原创 2022-06-08 15:09:15 · 650 阅读 · 0 评论 -
HikariPool-1 - Interrupted during connection acquisition
HikariPool-1 - Interrupted during connection acquisition问题描述临时解决办法根本原因最近在压测springboot服务的是时候,遇到HikariPool-1 - Interrupted during connection acquisition,先记录一下临时解决办法,后面有时间在review这个问题。问题描述问题日志:Caused by: org.apache.ibatis.exceptions.PersistenceException:原创 2022-03-20 15:17:35 · 6847 阅读 · 2 评论 -
springboot 按月分表的优雅实现方式
一、项目背景1、分表的方式二、代码实现1、pom文件依赖2、配置文件3、MybatisPlusConfig实现4、优雅的使用5、mysql表名拆分三、遇到的问题在实际工作中,会遇到业务比较集中的情况,随着时间推延,这部分业务关联的mysql表就会越来越大,十分臃肿。尽管在项目架构上做了读写分离,也会导致查询的时候出现比较慢的情况,导致线上慢查询的出现。这种情况下导致的慢查询,单纯从sql优化的角度是无法解决的,此时我们就会用到分库分表。由于我们目前的问题是部分mys原创 2022-01-14 13:37:20 · 6335 阅读 · 1 评论 -
23种设计模式--状态模式
状态模式的解决思想是:当控制一个对象状态转换的条件表达式过于复杂时,把相关“判断逻辑”提取出来,用各个不同的类进行表示,系统处于哪种情况,直接使用相应的状态类对象进行处理,这样能把原来复杂的逻辑判断简单化,消除了 if-else、switch-case 等冗余语句,代码更有层次性,并且具备良好的扩展力。优点:结构清晰,状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。将状态转换显示化,减少对象间的相互依赖。状态类职责明确,有利于程序的扩展。通原创 2021-11-08 23:11:29 · 1833 阅读 · 0 评论 -
23种设计模式--桥接模式
一、基本概念桥接模式:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。为什么不直接使用继承呢?不是可以通过继承来实现多态吗?为什么用组合方式?二、使用场景对于只有一个维度的变化,使用继承来实现多态的功能,完全可以满足。但对于存在多个维度的使用场景,完全使用继承就会显得代码比较臃肿。像上面这种情况,如果使用继承实现的话,需要4 * 3一共12种子类。如果需要新增加一个品牌Oppo的话,需要增加4个子类,代码实现的繁琐程度随着原创 2021-10-19 17:11:18 · 392 阅读 · 0 评论 -
Flink 环境搭建 和 入门demo
文章目录一、环境搭建1、下载2、运行3、访问4、提交作业二、入门demo1、pom文件依赖2、我的demo3、运行结果一、环境搭建1、下载下载地址:https://flink.apache.org/downloads.html#apache-flink-1124flink-1.12.4的下载地址:https://apache.website-solution.net/flink/flink-1.12.4/flink-1.12.4-bin-scala_2.11.tgz我用的是1.12.4的版本,原创 2021-08-02 11:19:26 · 1618 阅读 · 0 评论 -
java服务内存占用过高
文章目录1、查看内存占用高的进程2、查看对象个数和占用内存大小3、导出内存镜像4、安装独立版本的Memory Analyzer工具5、使用MAT工具进行分析6、注意以下代码没有特殊说明,都是指终端命令行操作1、查看内存占用高的进程top2、查看对象个数和占用内存大小jmap -histo 624可以看到程序中各个对象所占用内存的情况,根据占用字节数大小降序显示,这里只能看出哪些对象占用内存高,但是还不能具体定位到问题代码,需要进一步排查。有个自定义的类Animal,个数和占用内存比较高原创 2021-07-23 14:34:09 · 2187 阅读 · 0 评论 -
java服务CPU占用过高
文章目录1、查看占用CPU高的进程2、查看服务线程信息3、查看问题线程状态4、jstack查看线程信息5、代码问题排查以下代码没有特殊说明,都是指终端命令行操作1、查看占用CPU高的进程top2、查看服务线程信息ps -mp 183 -o THREAD,tid,time3、查看问题线程状态通过上一步,我们可以看到TID为220的线程占用cpu比较高。转化为16进制方便后续查询。printf "%x\n" 220查看该线程运行状态。jstack 183 | grep dc原创 2021-07-21 18:42:54 · 820 阅读 · 0 评论 -
无法推断类型变量 R, 参数不匹配
最近在用java写flink任务,遇到无法推断类型变量 R问题,特此记录一下,希望对大家也有用。1、完整报错信息2、代码实现/** * @Author dingws * @PackageName rule_engine * @Package com.rules.engine.task * @Date 2021/7/7 7:25 下午 * @Version 1.0 */@Slf4jpublic class KafkaMessageDeal3 { public static vo原创 2021-07-17 11:55:15 · 2416 阅读 · 2 评论 -
Parameter index out of range (2 > number of parameters, which is 1) 各种情况总结
情况1、#{}引用参数后,外面多加了双引号“”。举例,my.xml接口sql实现如下: <select id="selectByEndWord" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from idiom where pinyin = "#{endKey}" and name not in原创 2021-06-21 14:51:44 · 1506 阅读 · 0 评论 -
springboot 打印sql语句和执行时间
项目配置是springboot + mybatis。打印sql语句application.properties配置文件中添加mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl打印sql执行时间添加MapperAspect类@Aspect@Component@Slf4jpublic class MapperAspect { @AfterReturning("execution(* co原创 2021-06-07 14:51:19 · 1911 阅读 · 1 评论 -
SpringBoot 缓存管理 @EnableCaching、@Cacheable
SpringBoot缓存管理一、SpringBoot缓存管理1、pom文件添加依赖2、@EnableCaching开启缓存管理。3、注册缓存管理Bean。4、@Cacheable使用缓存。二、集成redis5、添加redis配置6、修改cacheManager7、查看redis进行验证:三、注解使用事项1、@Cacheable2、@CachePut3、@CacheEvict4、@Caching本文章介绍SpringBoot集成redis缓存管理。一、SpringBoot缓存管理1、pom文件添加依赖原创 2021-06-03 18:52:46 · 1712 阅读 · 1 评论 -
IDEA getResourceAsStream 为null 问题解决
查找在统一级目录下的资源文件test.txtLoadResourceUtil类实现如下:public class LoadResourceUtil { void load(){ InputStream inputStream = LoadResourceUtil.class.getResourceAsStream("test.txt"); System.out.println("inputStream = " + inputStream); }原创 2021-06-03 16:09:24 · 1762 阅读 · 5 评论 -
RestTemplate post请求 中文乱码
解决方案:public class RestUtils { private RestTemplate restTemplate = new RestTemplate(); public String post(String url, String jsonObject) { // 解决返回值乱码 List<HttpMessageConverter<?>> httpMessageConverters = restTemplat原创 2021-05-26 18:09:56 · 1491 阅读 · 0 评论 -
springboot 热更新、热加载 IDEA
springboot 热部署一、热部署二、IDEA中实现springboot热部署1、pom文件依赖2、project配置文件修改3、IDEA配置修改三、测试验证四、实现原理之前一直在用热部署,但没有总结,网上有很多类似文章,我这里用最简洁的描述总结一下,开发工具是IDEA。一、热部署热部署是指对程序进行(修改)升级后,不需要重新启动应用,能够试程序升级生效。为什么要用热部署?每次程序升级,都需要手动重启程序,操作繁琐并且耗时较长。热部署的优点?重启快,不用手动干预。具体原因会在实现原理中说明原创 2021-04-27 14:24:19 · 5147 阅读 · 0 评论 -
IDEA设置注释(已亲测)
package com.geniuworks.bot.utils;/** * @Author dingws * @PackageName geniubot_developer_service * @Package com.geniuworks.bot.utils * @Date 2021/9/27 6:04 下午 * @Version 1.0 */public class VersionUtils { /*** * @describe: * @param:原创 2021-04-26 13:25:07 · 4103 阅读 · 4 评论 -
pom文件 标签详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"> <!--父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即转载 2021-04-20 14:58:00 · 603 阅读 · 0 评论 -
@Async 异步不起作用
一、异步接口实现java中的异步接口实现比较简单,主要有两步:1、在ContentServiceApplication上添加@EnableAsync。2、在需要异步的接口上添加@Async接口。// 第一步@EnableAsyncpublic class ContentServiceApplication { public static void main(String[] args) { SpringApplication.run(ContentServiceA原创 2021-04-19 13:39:08 · 3071 阅读 · 1 评论 -
implement 和 extends 的区别
implement:使生效 ; 贯彻 ; 执行extends:拓展; 扩大范围如上所示,implement用在非同类之间,interFaceC 继承 classA。extends用于同类之间,比如classC 继承 classA,interFaceC 实现 interFaceA。但是extends用在class中继承时只能单继承,java不允许多重继承。extends用在interface中表示实现时,可以实现多个接口,变相实现多重继承。// 错误写法,不允许多重继承public class原创 2021-04-18 20:29:38 · 3269 阅读 · 0 评论 -
mongodb 多表关联查询
需求mongodb库中有三张表,需求:查询表A中的数据,但这些数据的threadId字段,不能存在于表B和表C中,做一个过滤查询,需要分页和排序。mongodb 命令实现{ "aggregate": "__collection__", "pipeline": [ { "$match": { "open": 1, "closed": 0 } }, { "$lookup": { "from"原创 2021-04-17 20:12:49 · 3662 阅读 · 1 评论 -
asList remove异常原因分析
使用Arrays.asList后,调用remove异常问题记录。 // 第一种 String str = "第一个,第二个,第三个,第四个,"; List<String> list = Arrays.asList(str.split(",")); list.remove(1); // 第二种 List<String> list2 = new ArrayList<>();原创 2021-04-17 19:36:29 · 363 阅读 · 0 评论 -
mongodb 删除字段
使用springboot mongodb工具,删除多余字段。原创 2021-03-12 15:15:12 · 1297 阅读 · 0 评论 -
springboot 多个数据库配置
文章目录一、pom文件依赖二、yaml文件配置三、代码实现1、main函数配置2、创建mongodb工厂3、主数据源配置4、副数据源配置5、工具封装6、使用四、踩的坑1、MongoClientURI找不到2、找不到mongoTemplate一、pom文件依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongo原创 2021-03-11 15:43:15 · 4210 阅读 · 2 评论 -
一次搞懂JDK、JRE、JVM、java EE、java SE
一次搞懂JDK、JRE、JVM、java EE、java SE一、名词解释二、JDK的版本三、JDK、JRE、JVM的关系四、JavaSE、JavaEE的区别一、名词解释JDKJava Development Kit,Java 软件开发工具包。JREJava Runtime Environment,Java 运行环境。JVMJava Virtual Machine,Java 虚拟机。二、JDK的版本Java EEJava Enterprise Edition,Java 企业版使原创 2021-01-20 18:26:44 · 22856 阅读 · 1 评论 -
springboot 事务管理
springboot 事务管理很多操作数据库的工具可以保证事务性,这里不讲。这里讲的是,业务逻辑相关的东西,举例:你更新表A中的字段status,同时希望改变表B中的status字段,如果中间更新失败,则都不更新。这是你可以使用@Transactional注解demo如下: @Transactional(rollbackFor = Exception.class) public ResponseBean setStatusById(FlowVo flowVo) {原创 2021-02-21 17:35:38 · 578 阅读 · 0 评论 -
openresty及lor入门教程
开发环境准备openresty安装下载openresty-1.13.6.1-win32.zip,解压到本地任一目录eclipse安装lua插件eclipse–>help–>eclipse marketplace–>输入lua,只能查到一个,下载并安装环境配置说明打开openresty的目录,找到conf文件夹下的nginx.conf找到http下的server部分,listen对应的是端口号,可以修改。增加 include 语句,引入分配置文件,对应的是自己lua项目原创 2020-06-08 14:29:30 · 1841 阅读 · 4 评论 -
java和c#的区别
相同点:他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态)区别:c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用import而c#中用using。c#和Java都是从main函数入口的,但是c#中的main函数的首字母必...转载 2017-12-11 11:47:48 · 292 阅读 · 0 评论 -
Eclipse出现java was started but returned exit code 1报错并退出
java问题笔记,编译器eclipse:1、问题描述eclipse之前一直用的很正常,今天打开突然提示如下问题: 2、解决方法:.1 在eclipse.ini中添加如下代码:-vmC:\Program Files\Java\jdk1.7.0_80\bin\javaw.exe注意:-vm和javaw.exe的路径都分别各占一行,且此配置要在-vmargs上面 .2...原创 2018-03-07 15:54:40 · 880 阅读 · 0 评论 -
web.xml文件
一、web.xml文件的作用每个javaEE工程中都有web.xml文件,那么它的作用是什么呢?它是每个web.xml工程都必须的吗? 一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。 web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。当...原创 2018-04-28 16:12:10 · 241 阅读 · 0 评论 -
Unable to locate the Javac Compiler in:C:\XXX\tools.jar Please ensure you are using JDK 1.4 or ...
问题描述:eclipse新建maven项目,执行maven install时报如下错误:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project maven-demo: Compilation failure...原创 2018-04-23 15:40:11 · 762 阅读 · 0 评论 -
java.lang.UnsupportedClassVersionError: ***** Unsupported major.minor version 52.0
1.首先解释一下:stanford parser和jdk版本对应关系J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49,JDK 1.4 = 48,JDK 1.3 = 47,JDK 1.2 = 46,JDK 1.1 = 45Unsupported major.minor version 52.0: 看到Unsuppor...转载 2018-03-14 19:55:57 · 567 阅读 · 0 评论 -
eclipse 调试代码 本地tomcat容器
eclipse 调试代码 本地tomcat容器一、tomcat容器二、eclipse配置一、tomcat容器下载地址:tomcat下载地址解压后放在本地任意目录,备用二、eclipse配置创建servers选择tomcat版本号和安装路径,与本地tomcat版本匹配;选择要调试项目;添加servers后效果;配置servers;启动或调试;启动效果;ok...原创 2018-10-15 17:06:35 · 1182 阅读 · 0 评论 -
Java Javascript Javaweb 的区别
首先,我们来说一下java 与 javaweb之间的关系 :我们平常说的Java一般指Java SE,也就是Java Standard Edition,Java的标准版,一般用来开发桌面应用程序,但是在开发桌面应用程序上相对VB,Delphi,VC++并没有什么优势。 JavaWeb则到了Java EE领域了,也就是Java Enterprise Edition,Java的企业版,看那个w...转载 2018-06-21 11:33:36 · 372 阅读 · 0 评论 -
org.springframework.jdbc.BadSqlGrammarException
今天使用postman测试web接口,访问数据库的时候报了如下错误: 检查了map文件和代码,发现没问题,请教后发现我使用的”key”字段是与数据库的关键词冲突,导致语法错误; org.springframework.jdbc.BadSqlGrammarException是指语法错误...原创 2018-06-15 15:49:27 · 4174 阅读 · 0 评论 -
mybatis逆向工程
一、什么是逆向工程简单点说,就是通过数据库中的单表,自动生成java代码。 程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。二、依赖jar包 mybatis-generator-core-1.3.2.jar是逆向工程ja...原创 2018-05-30 11:50:37 · 671 阅读 · 0 评论 -
applicationcontext.xml文件
一、样例一<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://w原创 2018-04-28 18:44:00 · 776 阅读 · 0 评论 -
spring 校验注解
@Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一...原创 2018-06-26 15:00:01 · 725 阅读 · 0 评论