自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 documentToBean使用方式

我这里是用Typora拿到文档markdown源码的,从浏览器上复制参数文档,然后贴到Typora,再换成源代码模式显示。setting页面也是设置需要解析的markdown表头名称,save保存后需要关掉页面再打开才会生效。因为是原封不动读取文档里的内容,上面的int64需要自己再处理一下。复制参数文档的内容,贴到输入框,这里只能解析markdown格式的参数文档。然后选择Document To Bean,也可以直接用快捷键打开。右键打开菜单,选择Generate。下面以搬运下图的接口文档参数为例。

2023-03-04 20:41:44 189

原创 再也不用写数据库表设计文档了!

最近写了一个导出数据库表设计文档的IDEA插件,同时也支持数据库表设计文档转建表sql

2022-06-29 14:23:17 208

原创 系统构建过程 第五周 3月14-3月19

这周的主要工作就是协助系统联调了,在这之外的工作有做一个行政区划查询的接口,一开始准备把数据放在jvm内存里,然后自己好奇会占用多少内存,结果加载这部分内容比不加载这部分内容内存多了37M(这里用Jprofiler查看的),但是把堆dump下来分析,只有7-8M的样子(这里确实看不懂了)。现在暂时把数据存到redis了。优缺点是:存jvm内存,占用jvm内存较多,接口响应时间1ms左右;存redis,不怎么占用jvm内存,接口响应时间在7-40ms之间。在存放redis的数据结构上也考虑了挺久,用hash还

2022-03-27 15:04:00 1243

原创 系统构建过程 第四周(3月8-3月12)

上周我商品域的开发已经基本扫尾了,这周因为对业务比较生疏,接口逻辑又做了修改。因为其他域需要接入短信发送和邮件发送的功能,所以这周我主要就是提供短信发送和邮件发送的中台接口。还有就是我们买了阿里的redis,比起自己搭我们手里的服务器就是一台给我们做测试的服务器,线上还有三四台也是租的ECS,所以资源比较吃紧,阿里的redis租金不算太贵,就选择租了,但是redis的操作工具像lettuce、redis Template,如果对redis的命令不太熟悉,或者对工具不是很了解,上手会比较慢,所以我还负责对这些

2022-03-27 14:38:20 1214

原创 系统构建过程 第三周(3月1-3月5)

第三周(3月1-3月5)系统构建过程因为公司的架构思想是DDD领域模型,我们的中台按功能或者类型做领域划分(领域划分的一个缺点是有时候对于某一个功能,不太好确定分到哪一个领域,像我们刚起步的小公司还好,如果是大公司每一个领域都由一个部门负责,在不确定某个功能应该划分到哪个领域时,部门之间就容易产生分歧)。再说回来,这周我自己负责商品域的其中一个品类的中台开发+单元测试,还加了一个模版替换占位符的接口,本来直接用replace或者replaceAll就可以搞定,但是自己心血来潮,用ac自动机来做字符串的匹

2022-03-27 14:02:39 270

原创 第二周(2022 2月21-2月25)

上周设计文档写完了,我已经可以开始代码开发了。代码开发起步的时候感觉是缓慢的,大家很多时间花在了制定编码规约上(在之前的开发过程中其实自己没有特别重视这一块),接口命名上推敲了很多。框架搭建上算是使用了阿里的一套吧,Spring cloud Alibaba,dubbo,代码管理使用云效,文档管理使用语雀,接口文档输出用swagger或者apipost,数据库使用alisql,开发模型使用DDD领域开发模型(自己之前了解过,但是不够深入),这次算是实践了。这周的话,开始进行开发了,自己负责的模块的代码进行了

2022-03-09 20:10:19 565

原创 第一周(2022 2月14-2月18)

这是我入职的第一周,现在整个项目也还没有开始开发。前两天我的状态就是搭建本地环境,了解一下基本的业务,清楚公司需要做什么。之后开始调研需要接入的开放平台的API接口(现在其他团队成员处于数据库设计阶段,对接开放API接口是必须的,所有调研的目的是看现有的数据库表字段能否满足对接API接口的需要)做完数据库设计后就是建表,应该都会觉得这个过程很繁琐,把一个个字段再重新复制一遍,所以自己写了一个小工具来连接数据库然后输出markdown格式的文档,也可以通过读入md表格文档输出建表sql语句。确实方便了很

2022-03-09 20:03:35 158

原创 怎么切换JDK版本

jdk环境切换需要修改的地方1.系统变量JAVA_HOME和JRE_HOME改成需要切换的JDK版本2.Setting–>java Compiler -->Module -->Target bytecode version3.Project Structure–>Project --> Project SDK 和 Project language level4.Project Structure–>Modules–>language level5

2021-11-17 16:37:18 622

原创 动态规划解最长回文子串

首先我们需要了解一下回文串的定义是什么?回文串就是从左往右读和从右往左读的结果是一样的,例如aba、abcba、bbbb等等。判断是不是回文串很容易,依次判断第一个字符和倒数第一个字符、第二个字符和倒数第二个字符…是否相等就行,还有其他方法都可以。然后找最长回文子串就是把所有的子串列出来,每个判断是否是回文串,最后找出一个最长的,这是最暴力也是最耗时的方法。当然我们也可以优化一下,从最长的子串开始判断,依次往短的子串开始找,这样找到的第一条回文子串就是最长的。但是这两个方法始终不够巧妙,从回文串的

2021-10-09 15:12:43 285

原创 I/O模型

I/O模型阻塞IO模型定义: 最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。过程: 当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除block状态。缺点: 如果数据没有就绪,就会一直阻塞在read方法。模型示例data = socket.read();非阻塞IO模型定义: 当用户线程发起一个read操作后,并不需要等

2021-10-08 21:43:12 66

原创 类加载机制

类加载机制对于JVM而言,类加载器分为两种:启动类加载器(Bootstrap ClassLoader):使用 C++ 实现,是虚拟机自身的一部分所有其它类的加载器:使用 Java 实现,独立于虚拟机,并且全部继承自抽象类 java.lang.ClassLoader。对于java开发者而言,类加载器可以分为四种:启动类加载器(Bootstrap ClassLoader): 这个类加载器负责将存放在 \lib 目录中的,或者被 -Xbootclasspath 参数所指定的路径中的,并且是虚拟机识别的(

2021-10-08 21:13:47 102

原创 01背包问题

01背包问题01背包问题是一个很经典的动态规划算法题,给你一个固定容量的背包,然后你面前有一堆体积和价值不一的物品,你怎么挑选才能在不超过背包容量的情况下,物品的总价值尽可能高。你可能一开始的想法是拿每个物品的价值除以体积,计算出每单位空间的价值是多少,然后进行排序,依次选取“性价比”高的物品。但是这种思路不一定能找到最优解,可能选完背包还剩一些空间,调整一下选取的物品可能会获得更大的价值,所以这里就要讲一下动态规划的解法。思路比如现在有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个

2021-04-18 23:04:25 148

原创 深度优先搜索

什么是深度优先搜索?还记得最先接触深度搜索的时候,还是在大一的课堂上,王老师为了向我们这群连门槛还没摸到的傻白甜炫一下技术,写了一个用深度优先搜索为思想核心的自动走迷宫小程序,当时引得大家一众欢呼。我内心也是一阵感叹:“难到这就是传说中的人工智能?这个程序的逻辑应该很麻烦吧”,后来才知道只是实现了一个很简单的深度优先搜索而已,说白了核心思想就是一条路走到底,走不下去了就回退,再判断有没有其他路可走,没了就再回退,直到走完所有的点为止废话不多说,直接上图演示!!我们还是遍历上次广度优先搜索的那张图还是

2021-04-01 23:00:42 109

原创 广度优先搜索

什么是广度优先搜索?其实从名字上看我们就能大概知道广度优先搜索是什么,就是优先从广度去进行搜索(感觉自己在说废话)。举个例子,小时候大家多多少少都玩过迷宫游戏,到了一个岔路口,就有很多条路摆在你眼前,然而只有一条路才是通往终点的通天大道。这时候怎么办?我们走到所有的路口都去瞅一眼,把每条路记录下来,然后又走到每条路的岔路口,继续上一步操作,直到走完所有的岔路口。废话不多说,不如直接开始上干货!!我们现在就从a点开始遍历下面这个无向图我们首先访问起点a点,此时index = a访问过的点我们把它

2021-04-01 22:27:08 58

原创 前缀树

什么是前缀树?前缀树的结构其实算是比较简单的,因为它没有像红黑树、B树、B+树那样需要达到“平衡”的规则。前缀树的每个节点存放一个数组和当前节点存放的字母,数组的长度取决于你存放在前缀树中的字符串中的字符种数。比如我存放只包含小写字母的字符串,那么我的数组26的长度就够了,如果包含大小写的字母,那就52的长度,数组中每个位置存放下个节点的路径。示例现在我们就把"bob",“alice”,“alen”,“ale”,"boob"这几个字符串存入一个前缀树。首先存入"bob",每层的数组里都只有一个位置里

2021-03-29 22:49:48 113

原创 SQL对两个字段分组后,分组内原来的顺序被打乱了怎么办?

这是开头今天领导给了一个任务,

2021-03-25 23:07:51 1334

原创 10分钟内搞懂HashMap底层原理

10分钟内搞懂HashMap底层原理 HashMap是我们开发过程中用的比较多的一种集合,也是面试过程中为了了解你的java基础,最喜欢问的一种类型,这两天阅读了一下HashMap的源码,在这里把自己的学习成果跟大家分享。一、HashMap的属性 1.常量(1)DEFAULT_INITIAL_CAPACITY 默认容量大小(2)MAXIMUM_CAPACITY 最大容量大小(3)DEFAULT_LOAD_FACTOR 默认加载因子(4)TREEIFY_THRESHOLD 链表转化为红.

2021-03-25 00:06:53 171

原创 数据结构:单调栈

单调栈单调栈,顾名思义,就像程序员的生活:敲代码,看着别人敲代码,学着敲出更牛逼的代码–单调,单调栈又分为单调递增栈和单调递减栈。单调递增栈: 从栈底到栈顶元素依次递减,如果新的入栈元素比栈顶元素大,则栈顶元素出栈,如果新的入栈元素还是比栈顶元素大,栈顶元素继续出栈,直到新的入栈元素比栈顶元素小或者栈内元素为空,则新的元素入栈。单调递减栈: 从栈底到栈顶元素依次递增,如果新的入栈元素比栈顶元素小,则栈顶元素出栈,如果新的入栈元素还是比栈顶元素小,栈顶元素继续出栈,直到新的入栈元素比栈顶元素大或者栈内元

2021-03-23 23:09:58 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除