java
文章平均质量分 53
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
wuyuanshun
这个作者很懒,什么都没留下…
展开
-
java redis实现消息队列功能
需求:业务中需要批量处理任务,且需要每个任务间隔一段时间。最好在不同服务器同时运行不影响每个任务间隔。部署环境:没有mq队列,有redis。原创 2023-06-30 18:05:14 · 4408 阅读 · 2 评论 -
java多线程详细讲解 线程的创建、线程的状态、synchronized锁、Volatile关键字、和cas锁(自旋锁 乐观锁 无锁)
cas(compareAndSet 比较并且设置)逻辑,从代码中我们可以看出使用了do{循环执行的语句} while(是否继续循环)语句,首先执行获取当前值v如v=1,然后进入循环判断 是否比较并设置成功了(compareAndSetInt();)所以核心方式是compareAndSetInt ,但是这个方法是native修饰的,也就是C++语言实现的这个方法:Unsafe类的C++源码追踪原创 2023-04-12 19:21:55 · 923 阅读 · 0 评论 -
java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))
以上代码使用了双重检查锁,但是还是存在线程安全问题,因为可能会出现代码指令重排序。重排序其实出现在字节码层级。在字节码层级Object o=new Object();如果赋值和关联语句发生了代码重排序 ,及两句交换执行。就会出现先把对象关联到o,但是对象还没有初始化赋值。前加 volatile关键字【禁止指令重排序(CPU)】INVOKESPECIAL java/lang/Object. ()V 赋值。NEW java/lang/Object 申请内存。2.禁止指令重排序(CPU)原创 2023-04-12 13:54:27 · 627 阅读 · 0 评论 -
java虚拟机-JVM入门+JVM调优实战+垃圾回收算法+JVM常见参数总结
1.什么是垃圾1)几种语言的申请资源释放资源命令2)java自动内存回收3)垃圾定义2.如何定位垃圾3.垃圾回收算法4.jvm内存分代模型(用于分代垃圾回收算法)5.垃圾回收器1)常见的垃圾回收器2)垃圾回收器演变6.JVM调优第一步,了解生产环境下的垃圾回收器组合7.arthas马士兵JVM全套视频详解C语言申请内存:malloc freejava :new?没任何应用指向的一个对象或者多个对象(循环引用)单个对象没有被使用多个对象循环引用没有被使用。原创 2023-03-14 18:25:21 · 386 阅读 · 1 评论 -
springboot连接两个多个数据库/数据源(多个)
和之前的项目的主要区别就是 mapper包多了一个,mapper的xml包也多了一个,不同的数据库mapper放到不同的包内就可以了。在使用多数据源时,有可能会遇到事物失败的问题。我单独总结了一个文章。需要的话可以阅读一下。1.注意:@MapperScan 的basePackages就是你包的路径 ,可能有人不清楚项目的结构,我在下面放了一张类结构图,能更清晰和方便理解。sqlSessionFactoryRef 可以随便起名 但是着两个类。1.启动类需要不用加mybatis的@MapperScan注解。原创 2019-12-03 20:30:38 · 47311 阅读 · 8 评论 -
java 自定义json解析注解 复杂json解析 工具类
为什么要写这个自定义注解,因为需求需要处理一批比较复杂的json(如果只有一个,直接手动写代码解析就好),众所周知批量且类似的工作,最好抽象出来。这也符合编程的风格,不重复造轮子,但是需要造轮子。【前面铺垫比较长,如果需求比较复杂的json可以直接划到最下面,粘贴自定义注解类 和 自定义注解解析工具类】需要的字段也恰好是对应上的jsonjava对象解析方法二、二星难度json【json对象中出现层级】难度加大一些,比如,出现了层级json简单解析的话,我们可以再新建一个Like对象,如:然后原创 2023-02-08 19:48:08 · 5953 阅读 · 2 评论 -
程序包sun.security.provider不存在[图文]
切换位置如下:文件-》项目结果-》项目-》项目SDK。idea的jdk版本不对,改为1.8版本。原创 2022-09-21 18:44:14 · 1699 阅读 · 0 评论 -
Mybatis 批量操作问题 Too many keys are generated. There are only 1 target objects
错误代码:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.executor.ExecutorException: Too many keys are g原创 2022-04-19 17:39:08 · 5422 阅读 · 1 评论 -
Java 将集合按指定数量分组
Java 将集合按指定数量分组一、集合按数量分组应用场景如需要插入数据库量级过多,可以把集合拆分为1000一组后进行插入,以防止sql过长的问题。二、工具类实现package com.wys.utils;import java.util.ArrayList;import java.util.List;/** * @program: wys-service * @description: 集合分组工具类 * @author: wuyuanshn **/public class Li原创 2022-02-18 11:59:33 · 4059 阅读 · 0 评论 -
java正则整理 以及遇到的问题
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。实现原理正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。...原创 2022-01-27 17:50:57 · 605 阅读 · 0 评论 -
Idea 无法引用类 找不到类 引用类报红 报错
Idea 无法引用类找file->Invalidate Caches…然后选择重启原创 2022-01-27 16:49:40 · 1028 阅读 · 0 评论 -
java Method has too many Body parameters SpringCloud Feign
SpringCloud Feign报错:Method has too many Body parameters报错Caused by: java.lang.IllegalStateException: Method has too many Body parameters:RequestParam注解当rpc调用有多个参数时,以下写法错误@RequestMapping(value="/get", method=RequestMethod.GET) String get( String nam原创 2021-10-14 15:02:15 · 3274 阅读 · 2 评论 -
maven 引入jar后编译时找不到包 引入jar后编译时找不到类 引入jar后编译时找不到方法
问题:Maven引入jai包没有报错,但是项目中却找不到引入的jar,导致项目编译启动失败。问题排查:找到idea左上角的File-》Project Structure->Project Settings ->Libraries1.搜索有没有缺少的jar2.jar的版本号是否正确问题解决:1.则可以点击右下角的➕从文件中找到改jar加到项目中即可!2.如果jar的版本号不对,则可以选中该jar,然后点击右上角的classes中的jar路径,点击下方➕添加正确的jar版本路径,移除原创 2021-05-07 17:05:32 · 1546 阅读 · 0 评论 -
java如何测试多线程(demo)---CountDownLatch用法示例
如何测试多线程访问CountDownLatch的概念CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了任务,然后在CountDownLatch上等待的线程就可以恢复执行任务。CountDownLa原创 2021-04-07 19:44:32 · 783 阅读 · 2 评论 -
IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.xxxx
Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.xxxx报错因为mapper的xml文件写的有问题,我的问题是出在resultMap中jdbcType值写错了;应该写全大写BOOLEAN,由于不小心粘贴实际写成了Boolean,导致报错。 报错提示会提出出是什么类型出错即可准确定位。如 No enum constan原创 2021-04-01 18:52:50 · 1472 阅读 · 0 评论 -
It‘s likely that neither a Result Type nor a Result Map was specified.
It's likely that neither a Result Type nor a Result Map was specified.很可能既没有指定结果类型,也没有指定结果映射。在编写mybatis的xml文件时 如编写查询语句一定要加resultType 或resultMap 。如下:加parameterType<select id="getSidStarDelayed" resultType="com.wys.pojo.NameBean" parameterType="com.原创 2021-01-04 21:25:45 · 10561 阅读 · 1 评论 -
java 定时任务cron不起作用失效
java 定时任务cron不起作用失效0.查看是否引入对应的pom<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent&g原创 2020-12-10 15:42:00 · 4697 阅读 · 0 评论 -
redis command ‘CONFIG SET protected-mode no‘ from the loopback interface by
DENIED Redis is running in protected mode because protected mode is enabledDENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connec原创 2020-11-16 14:07:23 · 887 阅读 · 0 评论 -
JSON解析出错 Cause: java.lang.IllegalStateException: No typehandler found for property xxx
##Cause: java.lang.IllegalStateException: No typehandler found for property xxx找不到属性的类型处理程序 .1.可能写错了如Date写成Data.2.或者没写错,但是导包错了如String就有其他的包,注意仔细检查。原创 2020-10-22 16:04:45 · 5945 阅读 · 2 评论 -
Cannot construct instance of line: 1, column: 2] JSON解析对象出错
Cannot construct instance of line: 1, column: 2] JSON解析对象出错无法构造的实例有可能是因为没有无参数构造 而且有其他有参数构造 系统不能通过构造进行反射处理 故而报错.原创 2020-10-22 15:52:12 · 915 阅读 · 0 评论 -
ERROR: LIMIT #,# syntax is not supported 建议:Use separate LIMIT and OFFSET clauses.
postgresl ERROR: LIMIT #,# syntax is not supported 建议:Use separate LIMIT and OFFSET clauses.错误:postgresql不支持LIMIT #,#语法建议使用 LIMIT and OFFSET clauses格式详解postgresql 分页取值取第一个值LIMIT 1 OFFSET 0 分页详情请看此文章:postgresql分页查询-sql详细操作步骤....原创 2020-10-22 15:43:15 · 8305 阅读 · 1 评论 -
Error querying database syntax error at or near “$1“
Error querying database syntax error at or near “$4”查询数据库时出错 第4个参数附件语法错误↵### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or near "$4"↵ 位置:665↵### The error may exist in file [E:\demo\service\target\classes原创 2020-10-22 15:32:50 · 3418 阅读 · 0 评论 -
Error querying database.Ran out of memory retrieving query results
Error querying database.Ran out of memory retrieving query results查询数据库时出错 检索查询结果时内存不足错误日志Error querying database. Cause: org.postgresql.util.PSQLException: Ran out of memory retrieving query results.↵### The error may exist in class path resource [xx原创 2020-10-22 15:22:38 · 3987 阅读 · 1 评论 -
java springBoot mybatis Expected one result (or null) to be returned by selectOne(), but found: 2
Expected one result (or null) to be returned by selectOne(), but found: 2error:Expected one result (or null) to be returned by selectOne(), but found: 2解释:selectOne()应返回一个结果(或null),但找到:2从解释可以看出返回值大于1,而只接收了一个,解决方法 在后面加limit分页 只限制一条数据。postgreSql后加 li原创 2020-09-17 13:25:20 · 695 阅读 · 0 评论 -
Mybatis boolean和bit不对应 column “xxx“ is of type bit but expression is of type boolean
column “xxx” is of type bit but expression is of type boolean“xxx”列的类型为bit,但expression的类型为booleanpostgre原创 2020-09-03 18:05:20 · 5932 阅读 · 0 评论 -
redis启动失败 Bean method ‘redisConnectionFactory‘ not loaded because
redis启动失败错误日志Bean method ‘redisConnectionFactory’ not loaded because @ConditionalOnClass did not find required class解释未加载Bean方法“redisConnectionFactory”,因为@ConditionalOnClass未找到所需的类错误分析有可能是少引入了pom <dependency> <groupId>redis.clients&l原创 2020-08-27 08:48:45 · 6717 阅读 · 0 评论 -
reids MISCONF Redis is configured to save RDB snapshots
错误日志MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.; nested exception isMISCONF Redis is configured原创 2020-08-27 08:42:50 · 153 阅读 · 0 评论 -
java端口被占用问题解决 Port xxxx was already in use.
***************************APPLICATION FAILED TO START***************************Description:Embedded servlet container failed to start. Port 8080 was already in use.Action:Identify and stop the process that's listening on port 8080 or configure原创 2020-05-26 14:41:35 · 1415 阅读 · 0 评论 -
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed***************************APPLICATION FAILED TO START***************************Description原创 2020-05-23 11:07:24 · 48088 阅读 · 4 评论 -
循环遍历枚举类型
遍历获取枚举类型集合1.枚举类型可以在上面写注释,比如A上面可以加doc注解,本人建议无论枚举、类属性等都加doc注解。哪怕你一眼就能看出来意思。2.应为枚举的数量在运行中不会改变,所以我们采用单例模式,只new一个集合就可以了,避免循环调用产生过多的对象。3. 如果枚举类中要加方法,一定要在最后一个枚举加;号,不然编译报错。/** * @program: * @descriptio...原创 2020-04-04 10:04:57 · 3248 阅读 · 0 评论 -
Could not set parameters for mapping: ParameterMapping(已解决)
当问们遇到Could not set parameters for mapping: ParameterMapping错误时,多数为我们的mapper映射写的有问题,检查我们的sql语句。如:中英文符号、大于小于号等 ,特别是小于号。只要细心,都不是问题。< 小于号 > 大于号...原创 2020-03-14 14:02:56 · 24720 阅读 · 0 评论 -
liunx启动java失败 Unsupported major.minor version 52.0 部署异常
Unsupported major.minor version 52.0,java 版本问题。可能是部署到liunx启动有问题,服务器的java版本跟项目对应不上可以用如下命令查看java版本, 一般可能是服务器版本太低。 然后下载和项目匹配的jdk就可以了。查看java版本java -version...原创 2020-03-14 13:48:13 · 285 阅读 · 0 评论 -
SpringMvc参数接收boolean类型参数问题
在开发项目过程中,发现形参对象中的boolean类型的字段isXxxx始终无法被接收,通过查询资料发现,boolean类型的参数应当避免使用is开头进行命名,因为该类型的参数的set方法会自动命名为is+字段名,如果字段名中是is开头,会产生问题。修改参数set方法也可以解决,is开头加set。...原创 2020-03-14 13:42:36 · 5471 阅读 · 0 评论 -
java.lang.UnsupportedOperationException[已解决]
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的 @Test public void method() { String[] array = {"a", "b", "c"}; List<String> list1 = Arrays.asLis...原创 2020-01-21 13:16:50 · 328 阅读 · 0 评论 -
maven打包失败 Cannot create resource output directory[已解决]
maven clean后打包出现Cannot create resource output directory打包失败找到这个目录显示“拒绝访问”也删不掉后来百度了一下,是这个文件夹在被占用的情况下clean了于是就用资源管理器搜索句柄“target”这里是步骤:1.打开资源管理器(ctrl+shift+esc打开任务管理器)2. 选择性能,再选择打开资源监视器3. 搜索“t...原创 2019-11-16 13:10:46 · 16324 阅读 · 16 评论