java
文章平均质量分 52
abutterman
文字能记录历史,能记录生活,也能记录自己的成长
展开
-
递归有条件重组多叉树(java)
【代码】递归有条件重组多叉树(java)原创 2023-03-16 20:03:25 · 217 阅读 · 0 评论 -
java同时读取写入一个文件(excel)
1.问题描述需要根据excel文件内容同时写入该excel文件2.解决目标希望能够进行输入输出流快速的切换3.解决方案利用org.apache.poi的XSSFWorkbook进行excel操作,XSSFWorkbook对象可以作为类似nio中的buffer进行中间数据的存放,入口是inputstream,出口是outputstream。// 利用输入流创建XSSFWorkbook对象XSSFWorkbook wb = new XSSFWorkbook(inputstream);// 获取c原创 2022-03-16 20:09:17 · 1734 阅读 · 3 评论 -
解决mysql id设置错误转bigint自增后已有数据过大问题
1.问题描述先前设置了错误的id(设置为了string),后面转为long的bigint时发现当前已有数据id都很大,且再增加会更大,有超出阈值的危险2.解决目标将已有数据以正常自增的方式更新,并使新增的数据id以当前数据量增长3.解决方案select count(*) from TABLE;alter table TABLE add column tmp_int int(5) not null comment '暂时字段' after id;// 将现有id更新为从1开始递增的数据se原创 2021-12-22 17:31:27 · 1874 阅读 · 0 评论 -
HTTP状态码总结与使用
HTTP状态码作为服务器对于客户端请求处理的返回信息,能够帮助我们分析请求在哪一步出现了问题,本文就平时工作中使用进行总结。HTTP状态码分类HTTP状态码共分为5种类型,由第一个数字来决定类型:1** 信息,服务器收到请求,需要请求者继续执行操作2** 成功,操作被成功接收并处理3** 重定向,需要进一步的操作以完成请求4** 客户端错误,请求包含语法错误或无法完成请求5** 服务器错误,服务器在处理请求的过程中发生了错误Api层HTTP请求常用状态码200 一般用于get等获取原创 2021-11-11 19:17:12 · 1624 阅读 · 0 评论 -
@Valid注解使用
为何使用@Valid注解对于输入数据的校验是常见的必须工作,像数据库数据输入校验(jpa的实体类注解校验)。而在后端实体数据流转时校验也可以采用Spring的@Valid注解,使用方法是在校验区域参数内用@Valid标识待检查类,在类中利用注解制定规则。规则注解分类(@Valid注解类型)@Null限制只能为null@NotNull限制必须不为null@AssertFalse限制必须为false@AssertTrue限制必须为true@DecimalMax(value)限制必须为一个原创 2021-07-13 13:00:23 · 2739 阅读 · 0 评论 -
effectice java代码优化整理
本文用于阅读effective java代码优化整理(实时更新)创建与销毁对象对象是java中占据最大空间的基础单元,对于它的管理我们已经有了jvm和gc,但有些地方他们是鞭长莫及的。1.用静态工厂方法代替构造器+builder构建器为什么这样做?因为构造器是一种无法选择也没有标示性的工作,而静态工厂方法可以随意控制参数与返回对象,且可以设置函数名,有标示和灵活性。例子:包装类的valueOf方法。另外,还可以考虑builder模式来进行参数构造。2.更好的单例模式我们熟知的单例模式是双重校验原创 2021-04-21 22:01:37 · 220 阅读 · 0 评论 -
@Autowired为何能解决循环依赖
文章目录 @Autowired的what&how什么是循环依赖spring如何解决循环依赖 @Autowired的what&how 在spring框架下,我们可以通过@Autowired注解对属性或者方法参数进行标注,当spring ioc容器初始化时...转载 2021-01-22 15:11:10 · 1998 阅读 · 1 评论 -
git/maven/集合类工具小记
本文用来记录工作学习中遇到的一些场景问题,并给出一些解决方案。(实时更新)gitgit是在工作中必须使用的工具,它很强大,但是在一些复杂的场景或者使用之下,它也会给我们带来巨大的困扰。1.git remotegit remote可以用在本地存放一个remote列表,使用git remote add orgin url的形式可以添加相应的内容。之后在使用pull或者merge等命令时都可以通过+远程名+分支名进行方便操作。2.git cherrypick有这么一个场景:有两条分支从同一个节点分叉,原创 2020-10-28 15:19:18 · 229 阅读 · 1 评论 -
sharding-ui配置使用教程
使用目的 前段时间在用sharding-proxy进行分库分表,现在又有了ui界面管理的需求,因此选择使用sharding-ui。但由于这是apache刚起手的项目,不同版本间差距很大(这里特指4.1.0与4.1.1)、网上资料也很少,因此再经过大半天摸索后总结一下内容。 这里先感谢下以下这篇有道云笔记,帮助我解决了很多问题:sharding原创 2020-09-02 23:47:58 · 1891 阅读 · 0 评论 -
Mybatis报错:There is no getter for property named ‘xxx‘ in ‘class java.lang.xxx‘
这个错误的字面意思是po类没有set方法,但是一般情况下都不会少,而出现这个错误的原因可能是mapper文件数据类型转换的问题。比如我出现该错误的原因就是mapper入参为map,而数据库表为long类型,导致转换出错。注意报错的class类型为数据库表中字段类型。...原创 2020-08-19 20:25:42 · 349 阅读 · 0 评论 -
mac下rocketmq启动问题解决(附rocketmq console下载)
rocketmq作为一款常用的消息中间件,可以做到流量削峰和延迟消息等功能,而在mac上安装和使用rocketmq会遇到不少问题,这边分享一下。并在最后给出rocketmq可视化资源的链接。1.没有JAVA_HOMEERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !! 首先你要确保电脑上安装了j原创 2020-07-30 22:22:30 · 1358 阅读 · 2 评论 -
No qualifying bean of type xxx无法注入错误
如果你出现了当下模块内的spring组件都无法注入的情况(如下图所示),这很有可能是因为maven依赖模块间循环引用成环而导致的(也就是自己启动依赖自己的包)。卡了一下午,引以为戒。原创 2020-07-28 20:15:08 · 1820 阅读 · 2 评论 -
mysql8+canal+ElasticSearch数据更新
1.业务要求与背景 先来看一张图,简单地说明了我们这三个角色间的关系: mysql用于存储我们的业务数据,但直接使用mysql显然并不适合检索等业务应用,因此应当将数据保存到使用倒排索引的es中去。但同时es无法实时监听mysql的数据变化进行自动写入,因此可以使用上图中的方法进行相应的数据操作,在数据量大的情况下可以考虑集群。 特别的,canal只能满足与增量更新,因此在构建es索引时需要将mysql内已有数据进行相应的全量更新操作原创 2020-07-27 20:19:11 · 1027 阅读 · 1 评论 -
使用sharding-proxy报错class找不到
使用sharding-proxy分库分表报错class not foundYamlCenterRepositoryConfiguration.Class not found 这是因为sharding-proxy版本更新太快,我用的4.1.0报错,改换为4.1.1即可解决问题。原创 2020-07-22 14:58:36 · 766 阅读 · 0 评论 -
防超卖场景设计
防超卖场景设计1.mysql行锁2.乐观锁3.redis分布式锁4.其他的方式1.mysql行锁 其实在一些简单的场景中mysql已经为我们解决了问题。比如我们在库存内容更新时添加一条判定的代码:if `occupy_quantity` + #{occupyQuantity} >= 0 由于mysql innodb默认开启行锁,也就是x锁(写锁,非共享锁),因此能够保证此次更新操作的原子性。但是我们也都知道行锁是基于索引才会生效的,当索引构建不合理或者并发访问量大时,行锁会变为表锁,也就原创 2020-07-21 23:54:38 · 389 阅读 · 0 评论 -
恒生电子java实习笔/面试总结(更新其他小公司)
尝试着像大佬一样来写写总结。恒生笔试不难,编程就是冒泡排序和字符串处理。但是数据库因为没怎么看,估计要凉。下面就碰到的问题说一说。1.Thread类的常用方法:2.创建数据库、表、索引CREATE DATABASE 数据库名称CREATE TABLE Person ( LastName varchar(30), FirstName varchar, Address varchar, Age int(3) )CREATE INDEX PersonIndex ON Person (Las原创 2020-06-24 06:22:32 · 2057 阅读 · 0 评论 -
Callable和Runnable的区别
class c implements Callable<String>{ @Override public String call() th...转载 2020-05-29 13:17:05 · 8433 阅读 · 0 评论