自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

致终将逝去的编程青春

所谓的彩虹,不过就是光。只要心还透明,就能折射希望。

  • 博客(93)
  • 收藏
  • 关注

原创 滚蛋吧!算法题-大数加法

大数加法:以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。(字符串长度不大于100000,保证字符串仅由'0'~'9'这10种字符组成)/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ pub

2021-05-13 16:36:15 1315 2

原创 滚蛋吧!算法题-两数相加

两数相加:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头比如:{2,4,3} + {5,6,4} = {7,0,8}public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode cur = new ListNode(0); ...

2021-04-30 14:39:37 1247

原创 滚蛋吧!算法题-排序

排序:给定一个数组,请你编写一个函数,返回该数组排序后的形式。[5,2,3,1,4]=>[1,2,3,4,5]冒泡排序:public int[] MySort (int[] arr) { for(int i = 0 ; i<arr.length-1; i++){ for(int j = 0;j<arr.length-i-1; j++){ if(arr[j]>arr[j+1]){ .

2021-04-30 14:26:49 1240

原创 滚蛋吧!算法题-二叉树

二叉树层序遍历给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)例如:给定的二叉树是{3,9,20,#,#,15,7}/** * * @param root TreeNode类 * @return int整型ArrayList<ArrayList<>> */ public ArrayList<ArrayList<Integer>> levelOrder (TreeNode r

2021-04-28 20:53:35 951 1

原创 软件开发术语总结

术语 含义 HDD 机械硬盘 SSD 固态硬盘 ALTER 告警 CI(Continuous Integration) 持续集成 CD(Continuous Delivery) 持续交付 CD(Continuous Deployment) 持续部署

2021-04-28 19:56:47 172

原创 滚蛋吧!算法题-合并

合并两个有序链表:将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。输入{1},{2} 输出{1,2} /** * * @param l1 ListNode类 * @param l2 ListNode类 * @return ListNode类 */ public ListNode mergeTwoLists (ListNode l1, ListNode l2) { ..

2021-04-28 17:34:41 148 1

原创 滚蛋吧!算法题-环

判断给定的链表中是否有环。如果有环则返回true,否则返回false。你能给出空间复杂度的解法么?

2021-04-28 17:28:41 109 1

原创 滚蛋吧!算法题-反转

反转链表:输入一个链表,反转链表后,输出新链表的表头。输入:{1,2,3} 输出:{3,2,1}public ListNode ReverseList(ListNode head) { ListNode curr = head; ListNode prev = null; while(null != curr){ ListNode temp = curr.next; curr.next = pr...

2021-04-28 17:08:19 155

原创 Mybatis手动解析并执行SQL

场景:需要动态生成查询的API接口,实现方式打算每个API底层都配置一个MyBatis动态SQL脚本,然后让Mybatis解析并返回查询结果,那么如果手动让Mybatis帮我们解析动态SQL呢?工具类如下:public class AutoApiSqlMapper { @Autowired private SqlSessionFactory sqlSessionFactory; private SqlBuilderStatement SqlBuilderStatement;

2021-04-08 16:37:56 2468 1

原创 Apollo

1、Apollo分布式配置中心,可以实现动态变更配置项。是携程开源项目:https://github.com/ctripcorp/apollo

2021-01-19 14:58:34 123

原创 MySQL-TO-ES

底层依赖Canal,Mysql数据变更->Canal分析Blog并发送变更MQ->监听后将数据同步到对应的ES里。实现Mysql数据向ES的同步。

2021-01-19 14:56:10 383

原创 Canal

canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,分析MysqlBlog并会抛出变更消息。

2021-01-19 14:53:43 180 1

转载 MySQL面试总结

1、什么是索引?索引是特殊的数据结构。类似图书的目录,在大数据量情况下,能快速的检索数据库中的数据。2、Mysql索引是用的哪种数据结构主要有两种数据结构:2.1:Hash索引和B+Tree索引 一般用InnoDB默认就是B+Tree。3、B+ Tree的索引模型和Hash索引比较起来有什么优缺点吗?Hash索引底层是Hash表,Hash表是一种key-value存储数据的结构,数据存储是无序的,所以Hash索引只适合等值查询场景。对于区间查询是无法通过索引进行查询、无法利用索引排序、就

2021-01-06 16:42:15 139 1

原创 Spring接入-阿里云RocketMQ

最近要接入rocketMQ,公司是在阿里云上买的rocketMQ服务,发现ALiYun rocketMQ 和通常的Apache rocketMQ 不太一样。看着阿里云的文档花了好长时间接入成功了。为了放便后续其他伙伴接入,就简单封装了一下。后续伙伴接入只需配一些必填的配置项就可以完成接入了。简单记录一下;maven:<dependency> <groupId>com.aliyun.openservices</groupId> <artifa

2020-12-16 17:28:33 1429

原创 JVM常见启动参数

-Xmx2048m 堆最大内存空间大小-Dserver.port=8888 系统启动端口-XX:+UseG1GC -verbose:gc-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=$APP_HOME/logs/heapdump.hprof-XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+PrintGCApplicationStoppedTime-XX:+UseGCLogFileRo.

2020-11-30 19:29:44 566

原创 工作中的专用名词解释:

ETL:ETL,Extraction-Transformation-Loading的缩写,中文名称为数据抽取、转换和加载。ODS:原始数据。DW:数据仓库 数据抽取转化后的数据。DM:数据集市 是根据具体业务处理后的可直接展示给相关人员查看的数据。数据模型:ODS->DW->DMRBAC:RBAC:Role-Based Access Control 角色的访问控制RBAC模型:...

2020-08-20 20:01:27 303

原创 SQL常用总结(二)

1、修改表,增加创建时间和修改时间并且修改时间自动在数据变更时更新ALTER TABLE xxxx ADD COLUMN `created_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';ALTER TABLE xxxx ADD COLUMN `updated_time` timestamp NULL DEFAULT...

2020-03-03 16:07:40 191

原创 kafka知识总结

Kafka分区:分区策略:1、轮训策略:最平均 2、随机。3、key 4、自定义分区Kafka压缩:Kafka消息层次分两次:消息集合 消息 一个消息集合中包含若干条日志项,日志项才是真正封装消息的地方。producer压缩 ->broker保持()->Consumer解压缩。Kafka无消息丢失配置怎么实现:1、什么是Kafka消息丢失。已提交状态消息的消息丢...

2019-12-03 09:56:18 232

原创 Mybatis-游标使用总结

背景:当查询百万级的数据的时候,查询出所有数据并放入内存中时会发生OOM(OutOfMemoryException),使用游标可以节省内存的消耗,不需要一次性取出所有数据,可以进行逐条处理或逐条取出部分批量处理,在此场景下就可以使用游标的概念来解决这个问题。什么是游标:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向...

2019-11-27 19:53:59 9966 1

原创 Linux-CPU过高问题定位

CPU过高问题定位1、top命令:查看CPU占用过高的进程。按数字键1 可以详细查看各个CPU使用情况2、使用top -Hp 进程号查看该进程下占用CPU过高的线程。top -Hp 进程号3、为方便查询到对应线程的堆栈信息,建议先将5852转化成16进制。printf %x 进程号4、jstack查询线程的堆栈信息。jstack 进程号 | grep 16进制线程号 -A ...

2019-11-21 20:44:47 316

原创 JVM监控和故障处理工具

Sun JDK 工具 命令 说明 jps JVM Process Status Tool 显示系统内所有的虚拟机进程信息 jstat JVM Statistics Monitoring Tool 查看虚拟机各方面的运行参数 jinfo Configuration Info Java 虚拟机配置信息 jmap Memory Map for Java ...

2019-11-20 20:57:15 170

原创 JVM系统参数

Java堆空间:-Xms3g:初始化堆空间内存大小3g,默认是物理内存的1/64-Xmx3g:最大堆空间内存大小3g,默认是物理内存的1/4空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。因此一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。-XX:+HeapDumpOnOutOfMemo...

2019-11-20 15:25:53 601

原创 Google-LoadingCache本地缓存

最新在项目中发现一个LoadingCache类。是Google提供的一种本地缓存。挺好使的。分享一下。Maven:<dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> ...

2019-11-18 17:17:29 1323

原创 ON DUPLICATE KEY-一次实现批量插入或批量修改

场景:批量插入如果数据存在则修改使用ON DUPLICATE KEY UPDATE实现。实现该功能的关键在于,需要找到表的唯一性约束条件,即什么时候是INSERT,什么时候UPDATE。# 增加唯一性约束SQLALTER TABLE table ADD UNIQUE uk_xxx (column)ALTER TABLE table ADD UNIQUE uk_xxx_vvv (xx...

2019-11-18 16:45:38 2212

原创 自定义实现SpringBoot自动化配置

SpringBoot里面有个spring-boot-autoconfigure的Jar包,这个包提供了好多自动化配置的功能,只需增加一些配置项,SpringBoot自动就可以帮我们初始化相关联的Bean。比如DataSourceAutoConfig。这期咱们也自定义实现一个。场景:咱们有一个Ems-Server,提供了一个员工查询的HTTP接口,下游有许多子系统需要使用该接口去查询员工信息。通...

2019-11-18 15:43:10 509

原创 Linux-crontab定时任务

前言:来到新的公司有段时间了。之前就一直CodingCoding,现公司虽然系统啊各方面没有阿里成熟,技术用的也不是很新,但正岗还是比外包岗位好吧,而且公司飞速发展感觉前景还是不错的。同事相处的也挺好,而且我已经是吃饭小分队的队长了。~.~。最近老大分配了个活,一个单节点系统的扩增升级为两台。说实话之前没做过~而且这个系统的SLB居然是要通过DNS系统轮训做的。该篇文章记录下遇见的问题以及解决...

2019-09-18 14:38:47 130

原创 JAVA数据类型占用的空间大小

哎~长时间 居然把一些基础的都弄混了,忘了,也侧面反映了自己大学生活是多么的丰富。系统复习下把1、计算机的存储单位:1Byte=8bit:一位等于8个字节计算机存储单位的进率是10242、JAVA基本类型所占的长度:基本类型 大小(位) 大小(字节) 最小值 最大值 byte 8b 1B -2^7 2^7-1 sho...

2019-09-11 17:28:42 1322

原创 Excel在开发中常用的一些小技巧

在开发中经常遇到将一些Excel里面的数据导入系统中。本篇记录一些使用Excel小技巧1、有这么一堆工号。需要去系统去查一下对应的员工信息,那么就需要将这一列数据转化成以逗号分割的字符串。怎么办?一个一个手动加?如果有2000个呢?那还不把人搞疯了~~使用Excel公式,拼接上字符串符号->将工号复制到Word文档->并选择仅保留文本格式(转化成纯文本格式)...

2019-09-02 15:33:52 356

转载 IDEA查看类继承关系图

1、查看图形形式的继承链在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show ... Popup,只是前者新建在标签页内,后者以浮窗的形式展示:实际上,你也可以从左边的项目目录树中,对你想查看的类点击右键,同样选择Diagrams,效果是一样的:然后你就会得到如下图所示的继承关系图形,以自定义的Servlet为例:显而易...

2019-08-23 13:57:15 2287

原创 自定义注解实现权限校验实战

最近刚入职新公司。维护一个老的系统。然后我把权限逻辑基于AOP给简单优化了一下。之后使用注解就可以了。作为一个自定义注解+AOP的实战记录把。1、提供了一个注解:@CheckPermission/** * @author zhangjiahui01 */@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})...

2019-08-23 10:23:55 1680 2

原创 Kafka

Kafka基本概念:1、Producer:消息和数据的生产者。向Kafka的一个Topic发布消息的进程/代码/服务2、Consumer:消息和数据的消费者。订阅数据(Topic)并且处理其发布的消息的进程/代码/服务3、Consumer Group:对于一个Topic,会广播给不同的group,但一个group中只有一个Consumer可以消费该消息。4、Broker:Kafka...

2019-06-18 10:59:12 165

转载 对称加密算法

什么是对称加密算法?加密秘钥和解密秘钥是相同的。解密是加密算法的逆运算DESDES:data Encryption standard 数据加密标准,秘钥长度短。并且现已经被破解,不安全了,不推荐使用。...

2019-06-14 11:25:24 175

原创 Netty源码解析之客户端引导类-BootStrap

前言:最近做的项目使用到了Netty,之前对网络编程这块知识比较欠缺,所以就学习了一下,与大家分享一下。建议看本篇前了解下纯Java如何实现NIO以及使用Netty如何实现NIO。源码解析:那么我们从哪里开始看呢?分析源码这个入口很是重要。既然分析Client引导类,那么Client Connect Server是最重要的,了解Netty实现NIO,有这么一行代码:BootStr...

2019-05-15 17:35:23 182

原创 Case When Then End

前言:CASE语句具有两种格式。1、简单CASE函数 2、CASE搜索函数。场景:SQL中使用增加一些判断呢???当然使用Case When Then End啦;例子:1、举个万年不变学生的问题。有张student表。字段:id、name、sex(0:男 1:女)、grade(成绩)查询男学生大于80分女学生大于90的学生名单CASE搜索函数:SELECT * FRO...

2019-04-22 18:18:05 5489 2

原创 ArrayList源码解析

ArrayList底层基于数组实现的,默认长度是10,主要分析下当超过这个长度时如何做的数组扩容和一些常用的方法的实现。add(E e)public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.i...

2019-04-09 16:19:02 126

原创 HashSet源码解析

前言:随着工作年限的提升,常用的集合类,不能仅仅会用,需要解析下其内部实现原理。今天就来看一下HashSet内部的秘密;源码:public class HashSet<E>extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{ stati...

2019-04-08 11:01:11 97

原创 SpringBoot亮点

1、自动化配置SpringBoot最核心就是自动化配置。先分析下@SpringBootApplication注解。@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration @EnableAutoConfiguration@C...

2019-04-04 10:56:09 800

转载 数据库本地事务的实现原理

什么是事务:一句话:事务就是要么全做。要么全不做。ALLOR NOTHING官方一点:事务提供了一种机制,把一个活动中的所有操作纳入到一个不可分割的单元,事务中的所有操作只有在所有操作全部正常执行的情况下方才能提交,只要其中有任一操作执行失败,都将导致整个事务的回滚到事务开始前的状态,事务四大特性:ACIDA:原子性(Atomicity),一个事务(transaction)中的所...

2019-03-20 18:41:37 2531

原创 Java中常见的线程安全的类

1、Java.util.concurrent.atomic包下的原子类 AtomicXXXX(Atomic意为原子的)例如:AtomicIntegerAtomicBooleanAtomicLongAtomicIntegerArray、AtomicLongArray:该类是Java对Integer数组和Long数组支持的原子性操作;3、常见的集合类:List:VectorMa...

2019-03-12 18:22:17 1833

转载 Git常用命令行

1、常用命令行:1.1、git add . 将所有变更的代码提交到暂存区1.2、git commit -m '提交描述' 将暂存区里的代码提交到本地仓库1.3、git push 将本地仓库的代码提交到远程仓库 1.4、git checkout &lt;本地分支名&gt; 切换分支1.5、git checkout -b &lt;本地分支名&gt; &lt;远程分支&gt; 创建一...

2019-01-30 11:42:10 160

空空如也

空空如也

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

TA关注的人

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