- 博客(10)
- 收藏
- 关注
原创 844. 比较含退格的字符串
844. 比较含退格的字符串给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。public boolean backspaceCompare(String S, String T) { // 既然是退格,就从后往前找 for(int i = S.length() - 1, posT = T.length() - 1; i >= 0 || posT >= 0; i--,
2020-09-30 17:17:27
104
原创 701. 二叉搜索树中的插入操作
701. 二叉搜索树中的插入操作给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。// 二叉树插入public TreeNode insertIntoBST(TreeNode root, int val) { // 如果为空,则创建一个返回 if(root == null){
2020-09-30 15:14:29
129
原创 枚举类 valueOf 后强转的问题
枚举类 valueOf 后强转的问题遇上过的最诡异的问题了。。。package site.xunyi.jdk.lang;import org.junit.jupiter.api.Test;public class EnumTest { @Test public void testValueOf(){ Week monday = getByName(Week.class, "monday"); } private <T> T getBy
2020-06-20 23:35:05
180
原创 docker-compose 搭建 redis 集群
docker-compose 搭建 redis 集群前言在工作的时候,使用了 redis 的脚本功能,据说对集群的支持不是很好,于是想要试一下在集群环境到底怎么用。由于公司电脑没有虚拟机,只有 docker, 于是就开始跟着菜鸟教程准备开始搭建。环境windows10, docker 三件套正文下载镜像启动 docker,下载 redis 最新镜像docker pull redis:latest设置共享文件夹打开 virtualbox ,点击设置,共享文件夹,编辑共享文件夹的地址和名字
2020-06-20 23:28:41
321
原创 JMH 为基准测试 JMH had finished, but forked VM did not exit, are there stray running thread
JMH 为基准测试 JMH had finished, but forked VM did not exit, are there stray running thread在使用jmh进行测试时,使用了 redisson, redisson内部创建了线程,因此在jmh测试结束后,还在等待其他线程结束,报了以上的信息,以及还存在的线程的信息可以使用 @TearDown 注解,回收线程,以处理这个问题如使用 RedissonClient 时,可以使用如下的代码@TearDownpublic void
2020-05-27 15:24:21
893
原创 Mybatis PageHelper不生效的原因
Pagehelper不生效的原因使用场景是在一个类初始化时,使用@PostConstruct注解,初始化类时引起的。@Componentpublic class Demo{ @Autowired private DemoMapper demoMapper; @PostConstruct public void init(){ PageHelper.startPage(1, 1)...
2020-04-11 13:28:47
1657
原创 JUC多线程-2
并发工具类CyclicBarrier同步屏障,只有到达这个屏障的线程到达指定数目时,所有线程才能继续运行下去在屏障前阻塞后,只有符合以下情况才能结束等待:最后一个线程到达,即index == 0超出了指定时间(超时等待)其他的某个线程中断当前线程其他线程中断了另一个等待的线程其他的某个线程在等待屏障超时其他某个线程调用了屏障的reset()方法,恢复初始状态构造方法Cyc...
2020-03-03 16:08:02
188
原创 JUC多线程-1
1.多线程基础其主要优势在于充分利用了CPU的空闲时间片,可以用尽可能少的时间来对用户的要求作出响应另外,由于同一个进程的所有线程是共享同一内存,所以不需要特殊的数据传输机制,对于任务的协调操作、资源分配,能做的更好创建多线程的方式Thread继承Thread类。重写run方法。启动时,调用实例的start方法Runnable实现Runnable接口。实现run方法。启动时,...
2020-03-02 23:25:17
125
原创 创建虚拟机
linux 1创建虚拟机我用的是VMware workstation15.5pro首先点击创建虚拟机选择典型,点击下一步可以选择稍后安装操作系统。或者选择安装程序光盘映像。映像可以从http://isoredirect.centos.org/下载我下的是CentOS-8-x86_64-1905-dvd1.iso选择想要安装的操作系统类型以及版本设置虚拟机名称,以及虚拟机...
2020-01-15 22:40:11
111
原创 java锁
锁锁按是否可重入可分为可重入锁和不可重入锁按竞争策略可分为公平锁和非公平锁不可重入锁当一个锁被使用后,即使是当前线程,再次访问这把锁时(递归或者不同方法用同一个锁),也会等待,导致死锁的问题比如public class Lock{ private boolean isLocked; private Thread currentThread; public voi...
2019-12-06 17:52:15
89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人