自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

早起一杯咖啡

热爱、努力、总结,java从入门到放弃

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

原创 对敏感数据进行脱敏操作

/** * 数据脱敏 * * @param data * @param left 左边保留长度 * @param right 右边保留长度 * @return */ public String dataEncrypt(String data, int left, int right) { if (StringUtils.isBlank(data)) { return StringUtils.EMPTY; } return S

2022-05-11 19:49:11 667

原创 回顾基础算法-选择排序、冒泡排序、插入排序

记录几种经典的数组排序算法public static void main(String[] args) { int[] arr = {5, 3, 7, 1, 4, 9, 2, 1, 6, 3}; printArr(arr); selectSortArr(arr);// bubbleSortArr(arr);// insertSortArr(arr); printArr(arr); } public static void selectSortA.

2022-05-11 19:41:48 189

转载 SpringBoot + Logback配置

configuration是Logback配置的根节点,它可以设置以下信息。scan:表示配置文件如果发生改变,是否会被重新加载,默认为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是秒;当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。configuration下一些配置(1):用来引入外部资源文件res

2021-03-26 10:03:49 414

原创 JS中在二维数组获取元素最多的子数组

JS中在二维数组获取元素最多的子数组var objects = [ [1], [2,3,4], [5,6,7] ];var maxLength = _.maxBy(objects, function(o) { return o.length; }).length;var ccd = _.filter(objects,(o)=>{ return o.length == maxLength;})console.log(ccd);...

2020-12-10 12:34:01 672

原创 springboot自动配置中的@Conditional派生注解

springboot核心总结:1)、SpringBoot启动会加载大量的自动配置类2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;xxxxAutoConfigurartion:自动配置类,给容器中添加组件;xxxxProperties:封装配置文件中相

2020-10-12 11:10:33 266

原创 hashtable和concurrentHashmap如何实现线程安全?

HashTable1、底层:数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable(方法上加了synchronized关键字修饰),效率低,后来针对这一缺点ConcurrentHashMap做了相关优化。2、初始size为11,扩容:newsize = oldsize*2+13、计算index的方法:index = (hash & 0x7FFFFFFF) % tab.lengthHashMap1、底层:数组+链表(jd

2020-08-05 09:43:18 2432 1

原创 学习Spring中的Bean

Spring 框架解决的问题? 管理对象(最重要)bean和对象的区别? 被Spring管理的对象叫做bean//从spring中拿对象AnnotionConfigApplicationContext context = new AnnotionConfigApplicationContext(A.class);User user = context.getBean("user",User.class);一、Bean的生命周期?1、扫描类 —>生成对应的BeanDefinition(.

2020-08-05 09:30:17 148

原创 Java中几个重要的流程图

1.spring的生命周期Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要;首先容器启动后,对bean进行初始化按照bean的定义,注入属性检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给bean,如BeanNameAware等以上步骤,bean对象已正确构造,通过实现BeanPostProcessor接口,可以再进行一些自定义方法处理。 如:postProcessBeforeInitialzation。Bean

2020-07-06 17:13:40 406

原创 学习Spring Cloud核心组件

Spring Cloud核心组件一、核心组件有:Eureka:各个服务启动时,Eureka Client 都会将服务注册到 Eureka Server,并且 Eureka Client 还可以反过来从 Eureka Server 拉取注册表,从而知道其他服务在哪里。Ribbon:服务间发起请求的时候,基于 Ribbon 做负载均衡,从一个服务的多台机器中选择一台。Feign:基于 Feign 的动态代理机制,根据注解和选择的机器,拼接请求 URL 地址,发起请求。Hystrix:

2020-07-02 20:06:12 126

原创 记一次接口优化的经历

借用我老大的话,接口优化其实主要是提高代码质量和执行效率,无非就是从三个方面入手:1、检查代码中SQL语句,优化SQL; 2、数据库层面优化,比如加索引等; 3、检查代码逻辑,尤其是for循环、递归等;我这次优化,是因为数据量大的情况下,接口响应速度太慢了(30s左右)。最后一番检查,找到根源是SQL语句问题,于是我就对其中一条执行时间长的SQL语句进行了优化。不想码字了,直接上代码看吧。...

2020-04-21 09:06:00 152

原创 个人总结:程序员实用网址收藏

程序员实用网址收藏1、前端组件中心 Elementhttps://element.eleme.cn/#/zh-CN/component/installation2、免费PPT下载 优品PPThttp://www.ypppt.com/3、刷题平台 力扣(LeetCode)https://leetcode-cn.com/4、下载图标 阿里巴巴矢量图库https://www.iconfo...

2020-04-04 09:26:53 252

原创 思考:如何优雅的打印数组?

今天看到一篇有意思的博客,名为《打印Java数组最优雅的方式是什么?》点进去看了一下,感觉蛮有意思的,故自己也手敲的玩了一下,在此做一个分享。// 定义一个string数组 String[] title = {"我是","菜鸟","Java","程序猿","八日蝉"}; // 直接打印 System.out.println(title); // 结果是该数组的类型名+has...

2019-12-26 16:04:41 325

原创 常见Spring Boot相关注解记录

@SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。@EnableAutoConfiguration:Spring Boot自动配置(auto-configuration):尝试根据你添加的jar依赖自动配置...

2019-12-26 15:20:00 118

原创 记一次对Json数据转换的操作

今天在工作中遇到一个以前没接触过的问题,关于将List集合(Json)数据存入Mysql数据库表中的一个字段,现在做一个简单的记录。存入表中效果如图:所以这里需要将数据进行一次Json字符串的转换,用到的方法为JSON.toJSONString(List对象),将数据从表中以Json格式取出来同理,用到的方法是JSONArray.parseArray(dashboardRankVo.getT...

2019-12-26 15:17:29 133

原创 JVM内存模型与JMM内存模型

JVM内存模型(Java Virtual Machine,JVM)java虚拟机JVM = 类加载器(classloader) + 执行引擎(execution engine) + 运行时数据区域(runtime data area)** 1 、程序计数器(Program Counter Register)**程序计数器是一块较小的内存空间,它的作用:1.1. 可以看做是当前线程所执行的...

2019-12-26 15:16:29 219

原创 Java中对List集合进行排序

一、引用相关概念Collection和Collections的区别:Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。他有两个常用的子接口:List:对元素都有定义索引,有序的,可以重复元素;Set:不可以重复元素,无序;Collections是集合框架中的一个工具类,该类中的方法都是静态的。提供的方法中有可以对List集合进行排序,二分查找等方法。...

2019-12-26 11:57:34 552

原创 Spring Boot整合Shiro

Shiro是一个系统安全框架,Spring boot整合Shiro的过程也是非常简介。一、导包 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <...

2019-12-25 11:55:03 130

原创 Spring Boot通过XML整合mybatis

一、导入依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version></...

2019-12-25 11:46:17 98

原创 Spring Boot通过纯注解方式整合mybatis

一、导入依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version></...

2019-12-25 11:35:20 171

原创 MongoDB数据库学习(二)

一、limit与skiplimit:方法limit():用于读取指定数量的文档语法:db.集合名称.find().limit(NUMBER)参数NUMBER表示要获取文档的条数如果没有指定参数则显示集合中的所有文档例1:查询2条学生信息db.stu.find().limit(2)skip:方法skip():用于跳过指定数量的文档语法:db.集合名称.find().skip(...

2019-12-24 15:57:28 146

原创 记一次MySQL中sql语句查询时转义字符问题

前几天在工作中,用到一个MySQL的查询语句,明明数据库中有数据,可查询出的结果一直是null。最后通过问题排查,发现了原因是where条件有where path = “App\Models\School”,其中的“\”是转义字符。先说解决办法:sql语句中改成 where path = “App\Models\School” 就行了,数据在MySQL中进行保存时会对转义字符进行转义,所以...

2019-12-24 14:28:37 1865

原创 MongoDB数据库学习(一)

一、NoSQL数据库1、什么是NoSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。2、为什么使用NoSQL ?今天我们可以通过...

2019-12-18 18:15:20 200

原创 Java算法系列15 — 常见数组相关算法

1、找出旋转数组最小元素/** * 实现旋转数组 * @param arr [1,2,3,4,5,6,7,8,9] ----> [1,2,3,4,5]、[6,7,8,9] ----> [5,4,3,2,1,9,8,7,6] ----> [6,7,8,9,1,2,3,4,5] * @param low * @param high ...

2019-12-17 17:12:56 99

原创 Java算法系列14 — 常见字符串相关算法

1、求一个字符串的所有排列public class PermutationStr { private static void swap(char[] str,int i,int j){ char tmp = str[i]; str[i] = str[j]; str[j] = tmp; } public static voi...

2019-12-17 17:03:33 162

原创 在Spring Boot中整合Redis缓存

一、Redis简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value非关系性数据库(NoSql)。Redis 与其他 key - value 缓存产品有以下三个特点:1、Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。2、Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,ha...

2019-12-17 09:34:37 84

原创 经典算法之KMP算法、Sunday算法的java实现代码

经典的字符串匹配算法,KMP:非常经典,但比较难理解,且效率不是很高; Sunday:效率比kmp高很多,而且理解起来比较容易;前言:继上次博文已经有半个月了,虽然没有粉丝,但我拖了自己的更。在此解释一下,因为前段时间家中奶奶去世,我请假回家了几天,然后回到武汉后又生病了,所以就一直没有更新博客。正文:1、KMP算法KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数...

2019-12-16 17:43:47 232

原创 论程序员的基本职业修炼 — 一位Java工程师的深刻体会

学的越多,知道的越少。今天这篇博文我打算记录一下自己最近学习数据结构与算法的小结和体会。首先,我必须得谈一下自己学习后的感受,也正是应了开头引用里的那句话,真是越学越觉得自己无知,与行业大牛或者很多优秀同仁相比,真是自惭形愧!很多经典的基础的东西都还一知半解,而每年行业里出现的新东西新技术又层出不穷,有时候感觉自己真有点被劝退的感觉。但最近我有点想通了,因为技术是硬东西,软件行业要看清本...

2019-11-29 11:52:45 170

原创 Java算法系列13 — 找出排序二叉树上任意两个结点的最近共同父节点

实现思路:有多种方法实现,我们这里采用两种方法—路径对比法、后序遍历法1、得到二叉树:public static BITNode arrayToTree(int[] arr,int start,int end){ BITNode root = null; if(end >= start){ root = new BITNode()...

2019-11-28 09:36:30 497

原创 Java算法系列12 — 求一棵二叉树的最大子树和

实现思路:利用二叉树的后序遍历,遍历的结点的值与其左右子树和的值相加的结果大于最大值,则更新最大值。代码实现:/** * 构造二叉树 * @return 返回新构造的二叉树的根节点 */ public static BITNode constructTree(){ BITNode root = new BITNode(); ...

2019-11-28 09:29:37 491 1

原创 Java算法系列11 — 回顾将数组转为二叉树+从二叉树顶点逐层打印所有结点数据

1、将有序数组转为二叉树 public static BITNode arrayToTree(int[] arr,int start,int end){ BITNode root = null; if(end >= start){ root = new BITNode(); int mid = (start +...

2019-11-28 09:26:51 338

原创 Java算法系列10 — 二叉树转换为双向链表

实现思路:1、先用前面学到的方法将一个有序数组转换成二叉树2、假设当前遍历的结点为root,root的左子树已经被转换为双向链表* 使用两个变量pHead与pEnd分别指向链表的头结点与尾节点* 在遍历root结点时只需要将root结点的lchild指向pEnd,把pEnd的rchild指向root,root进入链表成为新 的pEnd代码实现:public static BITNod...

2019-11-28 09:21:39 755

原创 Java算法系列9 — 构建两个二叉树,并判断他们是否相等

1、构建二叉树非常的简单,只需要new出一些结点类,然后对他们的数据域赋值,最后用左右子树的关系连接所有结点,注意叶子结点的左右子树为NULL。2、判断两个二叉树是否相等,需要判断他们的结点位置结点数,以及每个结点上的数据相等即可。/** * 构造二叉树 * @return 返回新构造的二叉树的根节点 */ public static BITNode co...

2019-11-28 09:14:07 426 1

原创 Java算法系列8 — 把一个有序的整数数组放入到二叉树中

因为是有序整数数组,所以我门很容易想到类似于二分法的方式进行获取二叉树的结点,首先根据数组的首尾索引得到二叉树根节点的data,int index = (start+end+1)/2,root.data = arr[index],然后对根节点左右子树采用递归。public static BITNode arrayToTree(int[] arr,int start,int end){ ...

2019-11-28 09:02:45 438 1

原创 Java算法系列5 — 用队列和哈希表实现LRU缓存方案

LRU:Least Recently Used 最近最少使用。常用于缓存淘汰策略、页面置换的一种算法。如何实现LRU?使用双向链表实现的队列和一个哈希表可以实现,队列的最大容量为缓存的大小,哈希表中页号作为键,缓存在队列中的结点地址作为值。具体代码实现:import java.util.ArrayDeque;import java.util.HashSet;/** * 用队列和...

2019-11-26 14:40:31 419 1

原创 Java算法系列4 — 用队列实现简单用户排序系统

如何实现一个用户排序系统?对于这样一道题,我们首先应该在脑海里联想到食堂排队等生活中的场景,它的一个特性就是先排队的同学在前面,后来的同学接在队伍后面往下排,如果前面第一个同学在双手颤抖的食堂阿姨那里打完饭菜,那么他将离开队伍,后面排队的同学依次往前挪一步(当然不允许插队啦!)可以看出这个排队的场景跟我们数据结构里的队列(先进先出)非常像,所以我们首先应该决定用队列来实现。当然,我们也要...

2019-11-26 14:30:00 220

原创 Java算法系列3 —用链表实现栈、队列

栈和队列结构的实现可以用数组和链表均可,但相较而言数组实现不够灵活,缺点明显,所以一般推荐用链表来实现,比较简单,大家应该直接看代码就明白了,主要记住这两种数据结构的特性 栈是先进后出,队列是先进先出。1、定义一个结点类public class ListNode<T> { T data; ListNode<T> next;}2、实现栈类pac...

2019-11-22 14:37:13 129

原创 java算法系列2 — 常见链表算法问题

给自己画的饼,哪怕撑死也得吃完!努力,努力,再努力!今天开始挑战白银段位,先从链表算法下手(后续还会持续更新…)。主要有4个问题,找到单链表倒数第 n个节点并输出、判断链表是否有环、实现链表的逆序、去除无序链表的重复项。1、实现链表的逆序思路:从链表的第二个结点开始,把遍历到的结点插入到头结点的后面,直到遍历结束。代码:public static void Reverse(ListN...

2019-11-20 18:11:00 92

原创 Java算法系列1 — 常见的排序算法

最近本人在工作之余重新温习了Java数据结构,然后萌生了深入学习Java算法的想法。。。想做就做,虽然这并不是那么容易,但搞Java后台的不懂点算法实在说不过去。做好了学习的目标与规划,于是就从平时看书、看技术栈、视频课、理解后自己练习开始吧。今天回顾了Java算法基础的8大排序方法(其实自己之前就只会手写3种,其他的方法也只是大概听说过…)所以今天在下班的时间点,我准备整理一下自己的学习笔记...

2019-11-19 17:36:51 119

原创 springboot—通过插件pagehelper进行分页

话不多说直接上代码!1、pom.xml文件中引入jar包<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId></dependency>2...

2019-11-15 09:49:36 66

原创 Java算法系列7 — 对二叉树的插入、查找、删除操作

//根节点 public Node root; /** * 插入节点 * @param value */ public void insert(long value){ //封装节点 Node node = new Node(value); //引用当前节点 Node curren...

2019-11-13 16:46:56 182

空空如也

空空如也

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

TA关注的人

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