自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 递归套路--判断是否是搜索二叉树,暴力方法对数器

左树的最大节点比头结点小,右树的最小节点比头结点大延伸出来的含义:中序遍历单调递增。

2023-08-25 17:43:10 97

原创 递归套路--判断是否是完全二叉树,队列和递归套路,互为对数器

一棵树的叶子结点必须先有左节点再有右节点,如果有节点没有左节点,确有右节点,则不是完全二叉树。

2023-08-25 17:33:55 172

原创 递归套路-是否是满二叉树

【代码】递归套路-是否是满二叉树。

2023-08-25 17:19:36 97

原创 二叉树-折纸问题

【代码】二叉树-折纸问题。

2023-08-07 16:05:27 64

原创 二叉树的后继结点

二叉树的后继结点。

2023-08-05 17:20:41 171

原创 stream分组后value排序后取第一个

stream流实现对数据按照某个属性分组后得到一个value是list的map对象,对每个value按照某个属性进行排序后取第一个元素,组成一个新的list。

2023-07-26 14:12:25 1845

原创 二叉树的最大宽度

求二叉树的最大宽度首先沿用了二叉树的按层遍历的方式,在遍历的时候添加几个属性标识运行中的状态;

2023-07-26 10:46:09 48

原创 根据前序和中序遍历重构二叉树

这一题是 “从前序与中序遍历序列构造二叉树” 对应的还有一题是106. 从中序与后序遍历序列构造二叉树。这两个题的思路都是一样的,换汤不换药,做完这个题之后,大家去做做另一个,看看自己掌握的怎么样。

2023-07-14 14:46:10 50

原创 根据枚举的code值获取msg

根据枚举的code获取msg

2023-03-15 17:30:07 521

原创 java类型转换工具

类型转换工具

2023-02-14 14:42:04 309

转载 双缓冲队列

实现思想java 的 LinkedBlockingQueue队列,会存在一个问题,即队列的入队和出队是互斥的,即某一刻有且仅有一个操作!但是从逻辑上来说,出队和入队,不存在互斥的关系,那么是否可以不用实现相互不互斥呢?基于这个想法,我们想到了双队列即,一个队列专门入队,一个队列专门出队,当出对队列为空时,将两个队列切换,这样的话,就在一定程度上实现了,出对和入队不互斥。代码public class DoubleBlockingQueue<T> { private volat

2022-01-28 18:02:54 455

转载 SpringBoot2.x 给Controller的RequestMapping添加统一前缀

如何给Controller的RequestMapping添加统一前缀,比如"/api",为什么要添加统一访问前缀,其实是为了后面的接口的管理。切记:约定与规范好过一切技术处理 !比如:项目A必须所有访问接口URL必须增加 /api/projectA/项目B必须所有访问接口URL必须增加 /api/projectB/看到url里面含有/api 表示访问后端接口服务,/projectA/ 一看就知道是项目A提供的服务接口。总结一下 有几个方法在配置application.yml文件中添加:ser

2021-12-03 15:11:26 508

转载 springboot项目给所有controller的请求路径统一加前缀路径的两种方式

1 server.servlet.context-path=/xxx这种方式是给项目所有请求加的全局路径,包括controller层的请求和静态文件的请求。2 只对controller的后端接口请求生效,不对同一个项目中的竞态文件生效的方式如下:PathConfig.java/** * 配置统一的后台接口访问路径的前缀 */@Configurationpublic class PathConfig implements WebMvcConfigurer { @Autowired

2021-12-03 15:07:27 6230

原创 win上的shell脚本在Linux上报错:坏的解释器

是因为win上的换行符和Linux上的不一致,可以使用命令去除:sed -i 's/\r$//' build.sh

2021-11-09 15:29:39 847

原创 curl 探测某个服务是否正常的脚本

flag=503while [ ${flag} -ne 200 ]do flag=`curl -i -m 10 -o /dev/null -s -w %{http_code} localhost:6666/healthz/ready` echo "result_flag='${flag}'" sleep 5sdone```java在这里插入代码片

2021-07-20 17:33:49 426

原创 websocket使用spring-security-oauth2的认证

项目集成spring-security-oauth2,来做鉴权认证,是 现在常用的一种手段,一般来说都是在header中加入Authorization请求头,但是websocket因为其特殊性,header中不能添加 Authorization认证的请求头通过查看其源码得到了如下内容:1.2.3.4. 这里显示从request的header中获取token5.从第5步看,是从request中获取Authorization请求头来获取的认证token但是第4步显示如果heade

2021-07-13 10:56:14 1632 3

转载 UriComponentsBuilder和UriComponents,uri编码拼接工具

简介spring mvc提供了一种机制,可以构造和编码URI,即使用UriComponentsBuilder和UriComponents。功能相当于uelencode()函数,对url进行编码(比如请求中含有空格时编码为%20),同时支持变量替换。需引入spring-web依赖。示例最简单粗暴:UriComponents uriComponents=UriComponentsBuilder .fromHttpUrl("http://localhost:8080//hello")

2021-05-27 16:45:43 1406

转载 bcrypt加密工具

简介:bcrypt是一种跨平台的文件加密工具。Bcrypt就是一款加密工具,可以比较方便地实现数据的加密工作。你也可以简单理解为它内部自己实现了随机加盐处理例如,我们使用MD5加密,每次加密后的密文其实都是一样的,这样就方便了MD5通过大数据的方式进行破解。Bcrypt生成的密文是60位的。而MD5的是32位的。使用BCrypt 主要是能实现每次加密的值都是不一样的。maven依赖:<dependency> <groupId>org.springframework

2021-04-27 00:04:26 1171

原创 ribbon获取服务列表

最近项目需要自定义Ribbon路由规则。需要获取 服务在 注册中心的注册列表一种是继承 AbstractLoadBalancerRule 类 实现自定义规则类。其中可以得到LoadBalancer负载均衡器,从而得到服务列表public class MyRule extends AbstractLoadBalancerRule{private static final Logger LOGGER = LoggerFactory.getLogger(MyRule.class);public Ser

2020-10-23 17:15:07 2055

原创 Java RestTemplate post请求传递参数遇到的坑

最近使用Spring 的 RestTemplate 工具类请求接口的时候发现参数传递的一个坑,也就是当我们把参数封装在Map里面的时候,Map 的类型选择。 使用RestTemplate post请求的时候主要可以通过三种方式实现1、调用postForObject方法 2、使用postForEntity方法 3、调用exchange方法postForObject和postForEntity方法的区别主要在于可以在postForEntity方法中设置header的属性,当需要指定header的属性值的

2020-10-23 15:12:55 2671

原创 kafka第二天 事务 producerOnly

Kafka的幂等性,只能保证一条记录的在分区发送的原子性,但是如果要保证多条记录(多分区)之间的完整性,这个时候就需要开启kafk的事务操作。在Kafka0.11.0.0除了引入的幂等性的概念,同时也引入了事务的概念。通常Kafka的事务分为 生产者事务Only、消费者&生产者事务。一般来说默认消费者消费的消息的级别是read_uncommited数据,这有可能读取到事务失败的数据,所有在开启生产者事务之后,需要用户设置消费者的事务隔离级别。isolation.level = read_unc

2020-10-21 18:16:40 261

原创 kafka第二天 acks,reties,幂等性

acks:kafka的客户端(Producer),发送一条数据,会等待broker返回成功的响应;有三种配置:ProducerConfig.ACKS_CONFIG=“?”0:不需要响应,producer发送就完了,不管broker是否消费成功;1:只需要broker的leader返回响应 就行,不需要followers的同步确认,如果leader返回确认后立即挂了,followers没有同步,数据会丢失all/-1:all或者-1:表示需要leader和 followers的确认 才行,保证了数据至

2020-10-21 11:11:53 877 1

原创 kafka api第一天

常用api创建和查看topicpublic static void main(String[] args) throws ExecutionException, InterruptedException { Properties properties = new Properties(); properties.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG,"node05kafka:9092,node06kafka:9092

2020-10-20 15:24:11 53

转载 2020-09-21

java实现从sftp上下载文件package com.guanghui.wechat.employee.common;import com.jcraft.jsch.*;import java.io.*;import java.util.Properties;public class SftpUtil { private ChannelSftp sftp = null; private Session sshSession = null; private Str

2020-09-21 19:08:34 54

原创 生成随机数的常用方法

常用的生成随机数的方式;效率有10倍的差距

2020-09-05 23:53:08 319

原创 尝试自定义HashMap

package cn.itcast;public class MyMap01 { private Node[] table; public MyMap01(){ this.table = new Node[16]; } public void put(Object key,Object value){ int hash = MyHash(key); Node newnode = new Node(key, value, h

2020-06-05 00:05:26 90

转载 Map

HashMap底层实现采用了哈希表,这是一种非常重要的数据结构。对于我们以后理解很多技术都非常有帮助(比如:redis数据库的核心技术和HashMap一样),因此,非常有必要让大家理解。 数据结构中由数组和链表来实现对数据的存储,他们各有特点。 (1) 数组:占用空间连续。 寻址容易,查询速度快。但是,增加和删除效率非常低。 (2) 链表:占用空间不连续。 寻址困难,查询速度慢。但是,增加和删除效率非常高。 那么,我们能不能结合数组和链表的优点(即查询快,增删效率也高)呢? 答案就是“

2020-06-04 20:08:18 104

原创 容器

CollectionCollection接口是父接口,有两个子接口:List:接口:有序,可重复常用的有三个实现类:- ArrayList:底层是数组,数据不安全- Vector:底层是数组,数据安全- LinkedList:底层是链表Set:无序,不可重复ArrayList扩容的原理:查看源码步骤:public void add(int index, E element) { rangeCheckForAdd(index); ensureC

2020-06-04 19:45:15 100

原创 String,StringBuilder,StringBuffer

String,StringBuilder,StringBuffer类是三个字符串相关的类;String:不可变字符序列;StringBuilder:可变字符序列;线程不安全,速度快StringBuffer:可变字符序列;线程安全,速度慢

2020-06-02 23:55:56 76

原创 包装类,自动封箱拆箱

包装类:八个 包装类: Integer自动装箱的原理: `Integer i = 10` 这个代码为什么正确,Integer是一个对象,10是一个int,就是因为: 默认的编译器给你进行了封装: Integer i = 10; Integer i = new Integer.valueof(10);public static Integer valueOf(int i) { if (i >= IntegerCache.low &&

2020-06-02 22:49:48 135

转载 jQuery ajax 自定义校验规则

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt; //自定义校验规则 **$.validator.addMethod( //自定义校验规则名称 &quot;checkUsername&quot;, function (value,element,params){ var flag=false; ...

2018-08-12 18:15:50 350

翻译 jQuery load()方法

jQuery load()方法load()方法从服务器加载数据,并把返回的数据放入被选择的对象中。 语法: $(selector).load(url,data,callback); url:参数规定希望加载的url data:规定与请求一同发送的查询字符串键/值对集合 callback:loda()方法完成后所执行的函数名称这是示例文件(”demo_test.txt”)的内容:...

2018-08-12 18:13:02 756

空空如也

空空如也

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

TA关注的人

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