自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(180)
  • 问答 (2)
  • 收藏
  • 关注

原创 kubernetes集群初始化kubeadm启动失败

前提建议先看一下错误是否一致,再看解决方案。由于我是初学者,在大量的百度之后也学会了一些排查方式。点我直接看结果环境腾讯云centos7启动命令kubeadm init –apiserver-advertise-address=ip –kubernetes-version v1.18.0 –service-cidr=10.96.0.0/12 –pod-network-cidr=10.244.0.0/16排查过程首先这是失败的报错[wait-control-plane] Waitin

2022-04-20 15:01:38 13316 1

原创 zrange和zrangebyscore区别

zrange和zrangebyscore区别先提出结论:zrange是通过索引查询,也就是数组的索引(这里类比成数组),说白了就是查询第几个元素。zrangebyscore是通过score查询,查出对应score的元素。需求需要在zset中查询score为某一特定值的key有哪些。在try.redis.io中做的实验。zrange zs 0 -1 withscores1) "wangwu"2) -1.83) "zhangsan"4) 0.05) "lisi"6) 2.07) "m

2021-07-31 15:30:54 2366

原创 idea的tools下面没有deployment选项

idea的tools下面没有deployment选项开始我以为是idea版本的问题,升级到了2021还是没有,然后搜遍全网也没找到结果。然后我怀疑是不是需要什么插件。然后发现:把这个sftp勾选就有了。我的idea不知为何默认没有勾选。...

2021-06-08 14:19:43 12200 7

原创 docker的容器加了里面新文件,commit之后新的镜像会有这个文件吗

docker的容器加了里面新文件,commit之后新的镜像会有这个文件吗结论是可以的。下面是实验过程:我们把一个springboot做成了image。这个springboot主要有两个功能,接收参数并打印和新建文件。@GetMapping("/params")@ResponseBodypublic String getParams(HttpServletRequest request) { String name = request.getParameter("name"); M

2021-05-14 18:36:51 1079 11

原创 美团-到店事业群-广告部门-暑期实习

美团-到店事业群-广告部门-暑期实习一面自我介绍围绕着项目问:用了redis,redis一般什么场景用呢?缓存雪崩怎么办呢?为什么用了springboot呢?感觉这块就是聊一聊,也没说什么知识点。Java怎么判断对象会被回收的。双亲委派模型hashmap怎么存储的ThreadLocal知道吗?忘了,只记得基本结构了。Integer对象比较可以使用==判断么,两个Boolean呢volatile说一下怎么解决sql注入的事务隔离级别说一下,默认级别是哪个呢http的get和post区

2021-04-11 15:59:04 842 1

原创 快手-暑期实习-海外业务一面

快手-暑期实习-海外业务一面线程池怎么用的,讲讲线程的创建和销毁线程池是线程安全的吧,同时创建一堆线程,怎么保证线程安全的。我猜是cas,当时看过源码,忘了。cas悲观还是乐观。乐观呗。拒绝策略你用的哪种。我说直接抛出异常啊。那对业务会有什么影响么。有个标志位,下一次查表会重试标志位为0的。用的是哪种垃圾回收器。jdk8默认的,parNew和cms?不是这俩,查完是Parallel Scavenge + Parallel Old,原来我一直都背错了。垃圾回收算法。顺道把cms收集过程说了。J

2021-04-11 15:58:13 209

原创 腾讯teg暑期实习二面

腾讯teg暑期实习二面半个小时介绍项目项目用了token,问了一下如何校验token的,如果token被偷走了怎么办(面试官说开放性问题,你随便想)网络:poll,select,epoll先讲讲区别。水平触发和边缘触发的底层,对于红黑树怎么操作的。(没研究过,他说要是你设计,你怎么设计)socket发送127.0.0.1的数据,怎么走的七层网络协议,走了哪些。你说既然不走网卡,那计算机内部怎么走的呢?(这我哪知道啊)进程间通信的方式进程和线程区别进程运行后,空间是怎么分布的计算机里面堆和

2021-04-11 15:57:33 272

原创 消费者生产者模式Java代码用wait/notify实现

消费者生产者模式Java代码实现阿里问我会不会写,憋了一个小时没写出来写在前面的知识点:用wait和notify实现,或者ReentrantLock实现都可以,下面用wait,notifywait,notify需要在synchronized关键字里面,不然会报错,而且锁会在synchronized代码块结束之后释放采用队列存储数据下面看代码:import java.util.LinkedList;import java.util.Queue;public class Consu

2021-03-12 14:14:33 135

原创 腾讯teg2022实习一面

腾讯teg2022实习一面自我介绍Java内存回收说一下。(我把回收算法,新生代老年代都说了)我看你简历上写了netty,介绍一下netty。(这个简历是我去年十二月份投的,现在netty都忘光了,直接说忘了)既然忘了netty,来说说tcp。(三次四次,timewait)知道什么是悲观乐观锁吗Java有哪些锁(synchorized,reentrantlock,后者说了aqs,前面忘了说锁升级,Markword了)简历上写看过Java源码,举个例子(hashmap,初始化扩容)那hash

2021-03-11 13:58:15 438 4

原创 wireshark抓包看post请求的body是什么样子

今天在发送请求时遇到了formdata的格式问题,就突然想到,我每天发送的post请求,他的body是什么样子的,所以用wireshark抓包看了一下,记录下来本文章主要针对两种格式的post请求,JSON和formdata。两个测试的样例代码就不提供了,很简单。JSON格式的post向后台发送了一个简单的JSON{ "name": "zhangsan", "age": "12"}下面看wireshark:上面是wireshark帮我们翻译过的,便于我们看,下面是真实在网.

2021-02-05 16:23:45 9229 1

原创 zookeeper搭建伪集群status命令报错t is probably not running

zookeeper伪集群status命令报错it is probably not running直入主题,zookeeper3.6.2,mac系统,伪集群搭建,单个好使先看报错截图给出网上比较多的几种解法,不过我的都不好使。打开zkServer.sh 找到statusSTAT=echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode在nc与loc

2021-01-22 15:51:13 441

原创 腾讯实习一面

面试官感觉挺好的,没给什么压力。我感觉自己也就八十分。自我介绍做过的项目介绍一下前端客户端做过吗?没有说一下HashMap。我简单说了一下表层的,他也没继续深问,我以为他会往下问我死锁的。虚拟机内存回收。我说了四个垃圾收集算法。他也没再问,明明我都准备好gcroots,可达性分析,cms,g1等等的。反射的原理,怎么用的,场景。原理不懂,我觉得可能是虚拟机把类记录了一下,然后就能找到对应的方法和属性了吧。线程创建方法,多线程使用,怎么停止一个线程。我答了一个interrupt,其实还有一.

2020-12-05 10:32:00 255

原创 周赛:将 x 减到 0 的最小操作数

将 x 减到 0 的最小操作数给你一个整数数组 nums 和一个整数 x 。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。请注意,需要 修改 数组以供接下来的操作使用。如果可以将 x 恰好 减到 0 ,返回 最小操作数 ;否则,返回 -1 。示例 1:输入:nums = [1,1,4,2,3], x = 5输出:2解释:最佳解决方案是移除后两个元素,将 x 减到 0 。示例 2:输入:nums = [5,6,7,8,9], x =

2020-11-18 18:22:29 864

原创 leetcode514. 自由之路dfs+备忘录

leetcode514给定一个字符串 ring,表示刻在外环上的编码;给定另一个字符串 key,表示需要拼写的关键词。您需要算出能够拼写关键词中所有字符的最少步数。最初,ring 的第一个字符与12:00方向对齐。您需要顺时针或逆时针旋转 ring 以使 key 的一个字符在 12:00 方向对齐,然后按下中心按钮,以此逐个拼写完 key 中的所有字符。旋转 ring 拼出 key 字符 key[i] 的阶段中:您可以将 ring 顺时针或逆时针旋转一个位置,计为1步。旋转的最终目的是将字

2020-11-11 19:34:15 200

原创 利用mysql自带的profile和status查看语句的执行情况

mysql用profile查看语句的执行情况有一些耗时非常长的语句,可以通过如下语句检测出来,哪里出了问题。1.首先确保profile功能开启show variables like 'profiling'如果是on才是开启的没开启执行set profiling=on。2.执行sql查询语句因为profile是检测你的查询语句性能分别耗时多少,所以得执行一下select吧。3.show profilesshow profiles用来查看之前执行过的语句4.显示语句具体信息show pro

2020-11-10 16:58:44 463

原创 mysql使用索引的原则

mysql索引失效的原因部分索引失效的情况在mysql5.6和mysql8.0测出来的不一样之前文章讲述过,在explain出来的表格中,有一个字段叫做possible keys,表示可能用到的索引,还有另一个字段叫key,表示真正用到的索引。没用到的索引就相当于是失效了。配上复合索引的底层结构介绍,帮助理解:https://blog.csdn.net/feichitianxia/article/details/107997795上面这个表建了一条索引ALTER TABLE staffs

2020-11-10 16:57:04 254

原创 mysql建立索引的方法

mysql的join语句建立索引的原则和优化单表的索引以下面的表为例,表叫article。创建索引语句:create index idx_ccv on article(category_id,comments,views);查询语句:explain select id,author_id from `article` where category_id=1 and comments>1 order by views desc limit 1;explain的结果如下:extra列出现了

2020-11-10 16:55:31 1180

原创 用explain查看一个sql底层的执行情况

查看一个sql底层的执行情况explain + sql语句例如 explain select * from user显示出:idselect_typetabletypepossible_keyskeykey_lenrefrowsextramysql的索引,除了聚簇索引(一般都是主键)之外的索引(非聚簇索引),存储的都是索引列上+主键列的数值,不存储其他列。所以查完索引如果要获取其他列的属性,还需要通过得到的主键去查一遍主键,主键索引会含有其他字段的信息。详细文章

2020-11-10 16:52:05 460

原创 mysql的join

mysql的join方式join是连接查询两个表的一种方式,会把两个表符合条件的行拼到一起形成一个新表并返回。对于两个集合,join可以生成七种情况,如下。下面分别对这七种情况介绍sql语句。情况1这种情况直接用inner join就可以。select * from tableA A inner join tableB B on A.key = B.key;情况2直接left join。select * from tableA A left join tableB B on A.ke

2020-11-10 16:44:12 367

原创 双向bfs-leetcode127.单词接龙

127.单词接龙给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例 1:输入:beginWord = “hi

2020-11-05 14:56:54 167

原创 四个线程交替打印字符串

来源于leetcode1195原题如下:编写一个可以从 1 到 n 输出代表这个数字的字符串的程序,但是:如果这个数字可以被 3 整除,输出 “fizz”。如果这个数字可以被 5 整除,输出 “buzz”。如果这个数字可以同时被 3 和 5 整除,输出 “fizzbuzz”。例如,当 n = 15,输出: 1, 2, fizz, 4, buzz, fizz, 7, 8, fizz, buzz, 11, fizz, 13, 14, fizzbuzz。假设有这么一个类:class FizzB.

2020-11-03 17:10:03 629 2

原创 leetcode140单词拆分2

单词拆分II给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = “catsanddog”wordDict = [“cat”, “cats”, “and”, “sand”, “dog”]输出:[“cats and dog”,“cat sand dog”]示例 2:输入

2020-11-02 18:04:44 289

原创 两个线程交替打印语句

来源于leetcode1115题目我们提供一个类:class FooBar {public void foo() {for (int i = 0; i < n; i++) {print(“foo”);}}public void bar() {for (int i = 0; i < n; i++) {print(“bar”);}}}两个不同的线程将会共用一个 FooBar 实例。其中一个线程将会调用 foo() 方法,另一个线程将会调用 bar() 方法。.

2020-10-30 18:13:59 128

原创 多线程按顺序打印

多线程按顺序打印来源于leetcode1114我们提供了一个类:public class Foo {public void first() { print(“first”); }public void second() { print(“second”); }public void third() { print(“third”); }}三个不同的线程将会共用一个 Foo 实例。线程 A 将会调用 first() 方法线程 B 将会调用 second() 方法线程 C 将会调用

2020-10-29 21:00:42 550

原创 Thread的几种方法和线程状态

Thread的方法1.sleep睡眠几秒钟,让出CPU让别人执行。2.yield短暂的让一下CPU,谁能抢到就执行,抢不到还是原来的执行。3.join有ab两个线程。a线程在某一时刻调用了join(b线程),此时a线程sleep,直到b线程执行结束,a继续执行。注意自己join自己是不行的。4.getState得到线程的状态、一共六种:...

2020-10-29 19:11:44 276

原创 Future类的使用和原理

java异步接口Future和CallableFuture是Concurrent包提供的一种异步得到结果的接口。Future接口:public interface Future<V> { // 取消当前的计算 boolean cancel(boolean mayInterruptIfRunning); // 计算是否被取消 boolean isCancelled(); // 计算是否已经结束 boolean isDone(); //

2020-10-29 19:05:04 1348

原创 ConcurrentHashMap源码解析

jdk1.8ConcurrentHashMap解析本文部分内容来源于互联网和jdk1.8源码,如有不对请谅解并指正1、前言ConcurrentHashMap是一种同步的map,因为HashMap在多线程情况下不安全,而HashTable锁粒度又太大,所以出来了ConcurrentHashMap。正式开始之前,先说明一个参数,这是HashMap里面没有的。sizeCtl/** * Table initialization and resizing control. When negat

2020-10-29 19:02:29 344

原创 AQS源码解析

AQS源码解析

2020-10-29 19:00:53 386 1

原创 强软弱虚四种引用介绍

强软弱虚四种引用1.强User u = new User()正常写的引用都是强引用,JVM会根据是否可达判断是否要回收。2.软SoftReference<byte[]> res = new SoftReference<>(new byte[1024]);res里面的byte数组是软引用,只有在内存不够用时候才会被回收。用途: 缓存信息。3.弱引用WeakReference<Object> m = new WeakReference();System

2020-10-29 18:56:21 4551 1

原创 JUC包一些锁的介绍和使用

JUC包的这些锁都是基于AQS的实现,关于AQS还请看下一篇文章一、ReentrantLock可重入锁独占锁,synchronized就属于可重入锁。Lock可以替代synchronized锁代码块。public void test() { synchronized (this) { try { Thread.sleep(1000); } catch (InterruptedException e) .

2020-10-29 18:51:39 540

原创 CAS、synchronized和volatile

一.CASCASnative方法。修改一个值,当前为0,现在要加一,在写回的时候,判断该变量是否还是0,。ABA问题CAS会有一个问题,如果该变量还是0,不一定代表他没有被人修改过。比如另一个线程对他加2,然后又被减2,虽然最后还是0,但是他不是最开始的那个0.解决办法:可以加一个bool表示是否修改过加一个版本号CAS底层汇编实现用 AtomicInteger 一步一步查到最后。java native代码->虚拟机jvm的c++代码->linux的汇编代码lock

2020-10-29 18:44:15 172

原创 Java单例模式代码实现和DCL和volatile详细解析

网上搜一下单例模式发现都没有说的很全面的,所以总结一下饿汉式饿汉式没有线程安全问题,在类加载时就会初始化一个对象,每次 getInstance()得到的也是原来的对象。class Singleton { private static final Singleton singleton = new Singleton(); private Singleton(){} public static Singleton getInstance() { return .

2020-10-28 21:09:49 391

原创 git在commit时候不commit某些文件

前言不commit某些文件分为两种情况。这个文件不push。已经push上去了,但是不想让后续的改动生效。比如含有密码的配置文件。第一种情况对于第一种情况,可以用gitignore文件解决,在最开始写好gitignore,然后git add .时候就不会将这些路径的文件add进去,这样自然不会commit,仓库里也不会有这个文件。下面是idea自动生成的springboot项目的gitignore一部分。HELP.mdtarget/!.mvn/wrapper/maven-wrapper.

2020-10-15 14:06:14 3407

原创 wireShark抓取本地http包,分析状态

WireShark使用正常的WireShark是无法抓取localhost包的,所以需要安个插件。https://github.com/nmap/npcap。正常对应着自己的需求安装就行了。抓包首先是用postman发送http包。postman对于Connection项只能关掉原来的,新写一个。然后我们看第一次connection:close的情况。Connection:Close最上面的过滤器内容是 ip.addr == 127.0.0.1 && ip.dst ==

2020-10-14 22:46:59 3559

原创 leetcode968. 监控二叉树

leetcode968. 监控二叉树给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。计算监控树的所有节点所需的最小摄像头数量。示例 1:输入:[0,0,null,0,0]输出:1解释:如图所示,一台摄像头足以监控所有节点。思路设置三种状态用0,1,2表示。0表示没有被监控1表示监控器所在的位置2表示监控器监视的父节点后序遍历先遍历左右子树的情况,3种组合去掉重复有六种,00,11,22,01,02,12,分别对着六

2020-09-22 15:38:59 156

原创 springboot解决谷歌80及以上版本的SameSite设置cookie失效

前言谷歌80新加了一个SameSite属性,防止跨域。但是就是由于这个新加的属性,我无法把cookie传到前端,搜罗了全网找到了两种解决方法,在此记录一下。如果console出现下面这个,那cookie估计就没设置上:A cookie associated with a cross-site resource at http://stu.hrbkyd.com/ was set without the SameSite attribute. It has been blocked, as Chrom

2020-09-02 15:12:00 6759 3

原创 leetcode周赛1562. 查找大小为 M 的最新分组

leetcode周赛1562. 查找大小为 M 的最新分组给你一个数组 arr ,该数组表示一个从 1 到 n 的数字排列。有一个长度为 n 的二进制字符串,该字符串上的所有位最初都设置为 0 。在从 1 到 n 的每个步骤 i 中(假设二进制字符串和 arr 都是从 1 开始索引的情况下),二进制字符串上位于位置 arr[i] 的位将会设为 1 。给你一个整数 m ,请你找出二进制字符串上存在长度为 m 的一组 1 的最后步骤。一组 1 是一个连续的、由 1 组成的子串,且左右两边不再有可以延伸

2020-08-24 17:32:24 196

原创 springboot完美解决跨域

被跨域折磨了两天,可算是整明白了,记录一下各种配置。1.corsFilter网上各种方法都不好使,只有这么一种可以,可能是哪里的配置问题。@Configurationpublic class CorsConfig { @Bean public CorsFilter corsFilter2() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

2020-08-20 15:56:49 375

原创 leetcode周赛1552. 两球之间的磁力-自己做总结出的注意点

leetcode周赛1552. 两球之间的磁力在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。已知两个球如果分别位于 x 和 y ,那么它们之间的磁力为 |x - y| 。给你一个整数数组 position 和一个整数 m ,请你返回最大化的最小磁力。输入:positio

2020-08-18 17:35:54 255

原创 2021届bilibili笔试2020-08-13场

一堆选择加上三道算法,选择题忽略1.给出四个数,判断能不能满足24点暴力枚举所有情况就能通过class Soltion{public boolean Game24Points (int[] arr) { // write code here dfs(0,arr,0); return flag; } boolean flag = false; public void dfs(int index,int[] arr,int num)

2020-08-13 21:13:59 599

空空如也

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

TA关注的人

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