
Java
qijingpei
BAT后端开发工程师。之前接触到的业务很杂,所以学习了很多方向的知识,目前专注于后端方向。
展开
-
Java 面试 知识清单
Java 面试 知识清单(2年工作经验):Java+多线程+Mysql+Redis+大数据原创 2022-06-23 18:11:02 · 540 阅读 · 0 评论 -
2022年4月学习笔记
记录一些零散的学习笔记1.webClient和restTemplate的区别webClient:异步(非阻塞)restTemplate:同步(阻塞)尤其注意处理大量请求的时候,如果使用同步的restTemplate,而请求链路时间过长或者请求数量过大,会导致机器处理变慢,甚至宕机。2.http连接池常用参数的含义参数含义setMaxTotal最大连接数setDefaultMaxPerRoute每个路由的最大连接数setConnectTimeout等待与远程服原创 2022-04-23 19:54:03 · 803 阅读 · 0 评论 -
IDEA java.lang.reflect.inaccessibleobjectexception unable to make jdk.internal.loader.classloaders
背景IDEA启动java项目,报错: java.lang.reflect.inaccessibleobjectexception unable to make jdk.internal.loader.classloaders解决方案1:我的原因是因为IDEA的java的SDK有问题,我手动从java version 11改成了我本地的1.8版本,重启项目就好了。点击IDEA的file-> 点击Project Structure:备注:网上有搜到这个方案,如果方案1不行的话,可以尝试再搜索原创 2022-03-19 14:42:47 · 2865 阅读 · 0 评论 -
java ebean 用jsonEqualTo 查询mysql的json字段
java ebean 用jsonEqualTo 查询mysql的json字段原创 2022-01-03 17:28:55 · 896 阅读 · 0 评论 -
java ebean 查询mysql中的json字段中的数组是否包含某个元素
java ebean 查询@DbJson将list转成的json字段是否包含某个元素原创 2022-01-03 16:38:00 · 1659 阅读 · 0 评论 -
IDEA中gradle查看依赖关系树 去掉重复的依赖 比如log4j和重复的log依赖
IDEA中gradle查看依赖关系树 去掉重复的依赖 比如log4j和重复的log依赖原创 2022-01-01 22:02:27 · 11319 阅读 · 2 评论 -
gradle Cannot set the value of read-only property ‘classDirectories‘ for task *
报错背景:gradle编译时报错提示:Cannot set the value of read-only property ‘classDirectories’ for task ‘…’ of type org.gradle.testing.jacoco.tasks.JacocoReport原因:gradle的classDirectories属性在5.6之后的版本里已经废弃掉了,classDirectories 由classDirectories.from替代了,具体可见:gradle的关于clas原创 2022-01-01 21:08:10 · 4230 阅读 · 0 评论 -
Ebean IllegalStateException: Super type class * is not enhanced?
Ebean报错:Caused by: java.lang.IllegalStateException: Super type class ams.crm.microservice.market.domain.bo.BasePurposeDetailBo is not enhanced?原因:父类缺少注解@MappedSuperclass,需要在父类上加上注解@MappedSuperclassebean的官方文档中有做介绍:https://ebean.io/docs/mapping/jpa/mappe原创 2021-05-03 22:20:01 · 209 阅读 · 0 评论 -
How do I get the size of a java.sql.ResultSet?
目标:获取Sql查询结果的行数,也就是java.sql.ResultSet的行数方法1:Do a SELECT COUNT(*) FROM … query instead.方法2:int size =0;if (rs != null) { rs.last(); // moves cursor to the last row size = rs.getRow(); // get row id }不管哪种方式,都不需要遍历所有数据,也就是说,时间复杂度不是O(n).引自http转载 2021-05-03 22:05:23 · 165 阅读 · 0 评论 -
Java 获取 mysql blob类型存储的字符串
用Java从mysql中取出blob时,是二进制形式,最好先转换成byte[],然后转换成String:String json = new String((byte[])(projectDetailMap.get("cost")), StandardCharsets.UTF_8);YourObject yourObject = gson.fromJson(json, YourObject.class);...原创 2021-05-02 10:51:36 · 1227 阅读 · 0 评论 -
RedisTemplate 已经乱码的数据 转换 成不乱码的数据 —— 刷库、不刷库 2种方法
问题背景RedisTemplate默认序列化器造成乱码:使用redisTemplate连接redis数据库,在保存中文时,发现redisTemplate默认使用的是jdkXXX序列化器,它存进去的key和value有乱码,也就是有\xa\xc…之类的前缀,虽然使用redisTemplate读、写redis时不会有问题,但如果通过命令行直连到redis库,就会发现数据带了一些乱码。点击这篇文章可以查看如何通过修改序列化器,解决了新数据的编码问题。旧的乱码数据又不能舍弃:需要把旧的乱码数据,转换成新序原创 2020-10-07 11:33:53 · 767 阅读 · 0 评论 -
redisTemplate 如何解决乱码问题
问题背景使用redisTemplate连接redis数据库,在保存中文时,发现存进去的key和value有乱码,也就是有\xa\xc…之类的前缀,虽然使用redisTemplate读、写redis时不会有问题,但如果通过命令行直连到redis库,就会发现数据带了乱码前缀,甚至有些中文值全是乱码。原因乱码是因为redisTemplate默认使用的序列化器是JdkSerializationRedisSerializer,从RedisTemplate.java源码中可以看出:它默认的序列化器会带来乱码问原创 2020-10-07 11:02:05 · 4163 阅读 · 1 评论 -
Groovy classes are not available on the class path. ABORTING INITIALIZATION. IDEA 给项目 添加Groovy 框架
报错信息:Groovy classes are not available on the class path. ABORTING INITIALIZATION.这两天把项目文件从D盘接剪切粘贴到了E盘,然后又拷贝了回来,结果就出现了上面的错误提示。一开始我还以为是我的依赖的库里面groovy没安装上,后来搜索后才发现不是这个问题。解决方案:安装groovy,然后给IDEA配置上groo...原创 2020-05-06 12:35:44 · 495 阅读 · 0 评论 -
临时解决方案:NoSuchMethodError: ch.qos.logback.core.util.Loader.getResource
参考https://stackoverflow.com/questions/28099208/eclipse-cant-find-logback-test-xml-on-my-classpath-for-unit-tests和https://stackoverflow.com/questions/9717518/java-lang-nosuchmethoderror-ch-qos-logback-...原创 2020-05-01 16:17:40 · 3535 阅读 · 0 评论 -
Spring Boot 安装通用mapper: Error creating bean with name *Mapper: Unsatisfied dependency......
Spring Boot 安装通用mapper时报错: Error creating bean with name *Mapper: Unsatisfied dependency…我这边为了让mapper类生效, 做了:1.Application.java中使用@MapperScan(“com.example.mapper"在这里指定你的mapper包包名”)2.在mapper接口上加上@Ma...原创 2020-01-01 12:15:08 · 843 阅读 · 1 评论 -
通用mapper 报错 IllegalStateException: No typehandler found for property components
使用“通用mapper”时,报错信息如下:tk.mybatis.mapper.MapperException: java.lang.IllegalStateException: No typehandler found for property components:原因:1.可能是类的成员变量 和 数据库字段的名字没有对应上,需要一一对应。1.1注意驼峰命名:Java的驼峰命名会被转换成下...原创 2020-01-01 12:10:13 · 2989 阅读 · 0 评论 -
FastJSON解析boolean类型出错
FastJSON无法解析自动生成boolean类型的get()和set()方法原因:FastJSON根据字段的getXXX()方法和setXXXX()方法来解析实体类,但我们通常都会使用开发工具来自动生成get和set方法,但是boolean类型的字段自动生成的不是getXXX()而是isXXX(),这会导致FastJSON解析boolean类型字段时出错。下面举两个情况:情况1:对于字段i...转载 2020-01-01 12:00:35 · 3465 阅读 · 0 评论 -
spring boot 启动报错 Unable to start embedded Tomcat
**背景:**spring boot启动时候报错(项目中有servlet):Unable to start embedded Tomcat - Spring Boot**原因:**是因为没有装servlet相关的依赖**解决方法:**添加依赖如下<dependency> <groupId>javax.servlet</groupId> <...原创 2020-01-01 11:37:40 · 2274 阅读 · 2 评论 -
Spring Boot 安装通用mapper: Error creating bean with name *Mapper: Unsatisfied dependency......
我这边为了让mapper类生效, 做了:1.Application.java中使用@MapperScan(“com.example.mapper也就是你的mapper包所在的路径”)2.在mapper接口上加上@Mapper注解,注意不要使用@Component和@Repository3.保证实体类中:类名和表名相对应;实体类字段名要和数据库中的字段一一对应;无法对应的字段要加上@Trans...原创 2019-10-06 11:39:19 · 5553 阅读 · 3 评论 -
tk通用mapper mybatis : java.lang.IllegalStateException: No typehandler found for property components
背景使用了“通用mapper”这个库,报错信息tk.mybatis.mapper.MapperException: java.lang.IllegalStateException: No typehandler found for property components:原因1.可能是类的成员变量 和 数据库字段的名字没有对应上,2.不在数据库中的实体类字段,一定一定要加@Transi...原创 2019-10-06 11:37:12 · 2381 阅读 · 0 评论 -
阿里妈妈 广告部门 Java 一二面面经
阿里杭州广告部门面经一面:1.项目2.多台机器都可以操作一个事情,但这个事情只需要被执行一次,怎么办?可以用java的悲观锁(sync\reentrantlock)或在数据库里用一个version字段然后加乐观锁(只在version为期待值时才更新):为数据库加一个version字段,当读取数据时把version字段也读出来,提交更新时,如果当前数据库中version 等于 之前读出来的v...原创 2019-09-29 15:03:11 · 701 阅读 · 0 评论