自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

行者常至,为者常成

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

原创 超级白话说Zookeeper(二) 监听事件

上一篇我说到了,Zookeeper实现简单的分布式锁,说到了Zookeeper中的四种节点类型以及他们的特性。说到了Zookeeper的文件结构(我就叫他文件结构,不管其他sb怎么叫,不爽的给我滚就是了)。今天说一说监听,看这篇文章之前请把第一篇文章先看了。 第一篇文章说到了,几台电脑争锁去访问美国某电脑上的文件,我再把例子重新搬过来吧,如下:电脑1访问美国某电脑文件之前,先去Zooke...

2018-06-19 16:49:15 2173 2

原创 超级白话说Zookeeper(一)

我的文章写给自己看的,几乎没有恶心的专业词汇,要看严谨的充满专业术语和哲学味道的文章,请绕道。因为懒,所以文章几乎没图。Zookeeper提供了诸如统一命名空间服务,配置服务和分布式锁等分布式基础服务。嗯,说上面这个话的人,真的不怕出门被车撞死吗…..? Zookeeper功能如狗杂种说到的:统一命名空间服务 其他就tm跟我们平时本地磁盘那种文件系统没多大区别,你整你妈这么jb复杂的名...

2018-06-19 11:25:09 2661 3

原创 HashMap只有容量达到阀值才发生扩容吗?大错特错!

看了网上很多文章,说HashMap在元素达到负载因子对应数的时候就发生扩容。如果你看过源码就会发现,其实还有一种情况也可能会发生扩容:树形化的时候。什么是树形化? HashMap底层是由数组+链表组成的,为了方便不懂的人更容易理解,那我们就先假设HashMap底层就是数组,先不管链表。 那对于一个对象add到HashMap中,那HashMap的add方法是如何来确定这个对象是放在数组中的哪...

2018-06-19 09:25:56 10677 12

原创 gin路由源码阅读记录

go gin路由源码阅读

2022-10-14 17:34:49 200 1

原创 为什么会有the channel used with signal.Notify should be buffered?

最近写代码 gofmt报错了,引起报错的语句如下: c := make(chan os.Signal) signal.Notify(c, syscall.SIGTERM) <-c用gofmt检查代码的时候发现报错:the channel used with signal.Notify should be buffered于是点开看了一下signal.Notify函数里面到底是咋回事先看到的是注释已经写清楚了,让channel用有buffer的通道:如果不用有buffer的通道会咋样

2021-07-22 18:36:19 2190 1

原创 由报错:syscall.SIGKILL cannot be trapped引出的kill -9 与 kill -15的区别

最近搞一个agent,需要完成一个类似于./agent start./agent stop当agent start之后,希望通过./agent stop终止agent的运行。这本质上是一个进程间通信问题,这里我用到了信号signal:syscall.SIGKILL 以及 syscall.SIGTERM用于监听信号的主进程代码如下:signal.Notify(c, syscall.SIGKILL, syscall.SIGTERM)此时用gofmt运行了一把发现报了这个玩意儿出来:syscal

2021-07-19 14:27:47 1516

原创 编译containerd的时候报错:error: btrfs/ioctl.h: No such file or directory

debian系统上 编译containerd的时候报错:error: btrfs/ioctl.h: No such file or directory这个错误原因就是btrfs没有安装,装一个就好了:sudo apt-get install btrfs-tools

2021-04-28 18:45:06 2043 2

原创 linux buffer cache理解

buffer(缓冲)是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。cache(缓存):cpu也有cache,例如L1、L2、L3cache,很多人容器搞混淆,这个跟内存里面的cache不是同一个东西,也不在同一个位置,压根就是个玩意儿。cpu的cache是为了提高cpu和内存之间的数据交换速度而设计的。内存的cache,从与磁盘读取角度考虑,cache可以理解为操作系...

2020-01-14 16:29:24 404

原创 C++CURL库的一个bug,CURLOPT_TIMEOUT_MS设置时间小于1s直接报错

解决办法:This is a bug of CURL.If your timeout setting is less than 1s, it will directly return an error.Solution is:curl_easy_setopt(conn, CURLOPT_NOSIGNAL, 1);conn is the pointer of CURL, e.g.:CUR...

2019-09-29 14:08:57 1770

原创 【error】see previous definition of原因及解决办法

报错:error: previous definition of原因如下:现在有A.h B.h C.h 三个头文件其中B.h中 #include<A.h>C.h中 #include<B.h>且#include<A.h>这样对于C.h来说,C已经include了B.h,而B.h又已经include了A.h所以C.h include<A.h&gt...

2019-08-08 16:47:16 16611 5

原创 判断python对象类型

之前调别人函数,竟然发现返回的参数竟然不固定,才直到python的函数返回的类型不一定是同种类型。所以我代码逻辑里需要对不同类型的对象做不同的处理,需要对对象类型进行判断。print(isinstance(mystr,str)) #判断类型 判断mystr是否为字符串类型print(isinstance(age,int)) #判断类型 判断age是否为int类型...

2019-08-08 09:58:58 1017

原创 Python技巧——list与字符串互相转换

在Python的编程中,经常会涉及到字符串与list之间的转换问题,下面就将两者之间的转换做一个梳理。1、字符串转换成list命令:list()2、list转换成字符串命令:"".join(list)其中,引号中是字符之间的分割符,如“,”,“;”,“\t”等等...

2019-08-08 09:56:29 1506

转载 【error】TypeError: execv() arg 2 must contain only strings

The third element in ssh_command is an integer. It needs to be a string.

2019-08-08 09:54:56 1441

原创 all goroutines are asleep - deadlock-Go中协程死锁详解

最近学go的channel的时候老是遇到题目中的错误:fatal error: all goroutines are asleep - deadlock!对问题研究总结后,在此记录一下下贴上错误代码:func testDeadLock(c chan int){ for{ fmt.Println(<-c) }}func main() { c :=make(chan in...

2019-04-23 15:16:10 28987 20

原创 用Java讲明白 回调函数Callback的来龙去脉(二)

在用Java讲明白 回调函数Callback的来龙去脉(一)中,用Java讲解了回调函数到底是个什么玩意儿,但是真正使用Java写回调函数的时候是通过接口去完成的。现在我们又提一个需求,要求Github除了能回调Programmer的方法以外,还要求他能回调Student类的函数。让我们看看之前的Github类的代码:public class Github { public void...

2019-03-24 23:25:55 1928 2

原创 用Java讲明白 回调函数Callback的来龙去脉(一)

小弟我别的不行 自我感觉表达能力不错,对于Callback的理解,之前网上看了一堆文章,人都看吐了,大多都是抄来抄去,没有意义。于是花了点时间自己弄懂了,这里分享给大家,如果你看到我这篇日志,恰巧你又想了解回调函数到底是怎么回事,那么恭喜你,你运气不错,请你耐心把这篇文章看完。为了便于将事情表达清楚,我这里给大家编一个场景吧:码农(Programmer)现在需要做几件事情:1、敲代码一整天(...

2019-03-16 20:46:23 5658 4

原创 Ubuntu上Docker安装 三条指令搞定

我的操作系统是 Ubuntu14.04下面指令一条一条执行:# apt-get -y install docker.io # ln -sf /usr/bin/docker.io /usr/local/bin/docker # sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker上面指令完后,Docker...

2019-03-03 22:06:15 490

原创 http基础

http是应用层的协议。当浏览器输入一个URL按回车的时候会经历以下步骤:1、redirectStart:进行重定向,浏览器可能已经记录了你当前输入的这个URL永久跳转到一个新的URL上了。2、看缓存 有可能你请求的资源已经缓存过了,查看APP cache,检查当前请求资源是否已被缓存。若没有被缓存则去实际的服务器上请求资源。3、请求实际服务器的时候,当然涉及到域名与IP地址的转换,需要走...

2019-01-10 15:42:26 4199

原创 Go调用其他包下的函数时报错(非引用路径问题):undefined:xxx.xxxxxx

例如我一个go文件中调用 error包下的ShowInfo()函数的时候,报错undefined:xxx.xxxxx引用路经完全没错,也不是函数首字母没有大写,出现错误的原因竟然是:我调用了一个用于单测的go文件中的函数,也就是我调用了 error包下的 error_test.go 中的ShowInfo(),这样调用是调用不成功的(原因未知,但是经验证 确实不行)应该是go语言不让用于...

2018-11-16 16:17:49 3854

原创 Git 常用命令

git add file 将file从工作区添加到 暂存区git commit -m “comment” 将暂存区所有文件更新到当前分支上git checkout – file 将工作区的修改丢弃git reset HEAD file 将暂存区的更新丢弃git reset HEAD^ 回滚到上一个分支...

2018-11-08 15:37:40 1301

原创 关于Go的可变参数的使用 我踩的坑

package mainimport ( &quot;log&quot;)func main() { print(&quot;nums is %d,%d,%d,%d,%d&quot;, 1, 2, 3, 4, 5)}func print(str string, s ...interface{}) { log.Printf(&quot;[notice]&quot;+str, s)}自己写了..

2018-11-08 11:38:29 430

原创 VIM常用命令

1、显示行号命令行模式下 set number2、复制、粘贴yy:复制光标所在行p:将复制的内容粘贴到光标停留处的下一行3、复制多行nyy:复制包括当前光标所在行在内的n行,例如10yy:复制当前光标所在行在内的往下10行p:将复制的内容粘贴到光标停留处的下一行4、删除、剪切:在vim中删除和剪切是一样的:dd如果你只是想删除当前光标所在行的话,直接dd就行如果你想剪切的话d...

2018-10-11 19:11:26 1469

原创 孤儿进程与僵尸进程产生原因及危害

参考博客:https://www.cnblogs.com/Anker/p/3271773.html父进程创建的进程为该父进程的子进程孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或w...

2018-09-30 15:19:49 2888 3

原创 non-member function 'xxxx' cannot have cv-qualifier

不属于任何类的方法用了const修饰解决方法:去掉const

2018-09-25 11:03:45 3042

原创 C++ ERROR:error: passing 'XXX' as 'this' argument of 'XXX' discards qualifiers

遇到了如题目的这种错误:error: passing ‘XXX’ as ‘this’ argument of ‘XXX’ discards qualifiers如何产生的?我将一个const变量传入了一个非const函数,这是产生的场景。如何解决?两种方式:方式1、将const修饰的变量的const去掉,例如之前是const Book book;现在改成Book book;方式2、...

2018-09-23 00:09:20 7154

原创 教你用Navicat生成E-R图

最近需要发一个论文,导师让我在论文中插一些图,其中设计到之前数据库中表与表的关系图,开始本来想手动画一个,然后突然想到,是不是Navicat会自带这种功能呢?仔细一看,果然有,于是乎开始倒腾一番,在此记录一下,也方便需要的人。 1、打开navicat以后,点查看2、勾选ER图表3、然后选择需要查看E-R关系的数据库,然后就可以看到对应的ER关系了:注:如果表与表之间看不到...

2018-09-15 23:29:22 30864 9

原创 【名企面试经验-百度-校招提前批】【研发工程师】

Offer 一面(1.8H): 1、自我介绍 2、进程与线程的区别 3、说说线程池,线程池的线程数量是固定的吗?有哪些参数? 4、说说JVM是怎么分区的 5、垃圾回收主要是对哪些区进行回收 6、说说垃圾回收有哪些算法 7、说说老年代采用的那种垃圾回收算法 8、说说是如何找到垃圾的 9、HDFS写文件是怎样一个流程,假设现在我要写的文件只有1kb,那是新增一个块,还是如何? 1...

2018-09-14 10:58:22 757

原创 【名企面试经验-新浪-校招提前批】【数据平台研发工程师】

一面: 1、介绍项目 2、算法基础知识 3、Java基础知识 4、如何排查线程死锁 5、对大数据的看法 6、如果能过愿意提前来实习吗二面: 1、介绍了团队情况和具体做的事情,然后就是瞎聊...

2018-09-14 10:57:24 493

原创 【名企面试经验-网易游戏-校招提前批】【SDK游戏服务端研发工程师】

目前正在流程中: 一面: 1、你的技术栈 2、java函数是引用传递还是值传递 3、进程线程的区别是什么 4、说一下堆的逻辑分区 5、说一下你知道的垃圾回收器 6、说一下单线程多线程垃圾回收期和cms垃圾回收期的区别 7、你经常使用的锁 8、sync与reentrantlock的区别是 9、如果线程之间发生死锁怎么处理 10、两块幸存区是一直都有对象吗 11、知道直接内存吗...

2018-09-13 16:52:42 678

原创 【名企面试经验-小米-校招提前批】【Java研发工程师】

小米提前批Java 口头offer一面(50min): 1、自我介绍 2、(手撕算法)求一个数组中超过一半的元素,例如[1,2,2,2,3,3,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6],那么6就是超过一半的数。 3、(手撕算法)求一个二叉树是不是一颗二叉排序树 4、JVM GC回收算法,为什么分区? 5、平时用哪些锁?sync与ReentranLock的区别?...

2018-09-13 15:29:11 747

原创 【名企面试经验-顺丰-校招提前批】【Java后端研发工程师】

一面(40min): offer 1、自我介绍 2、如果现在有多个线程去读数据库同一张表的数据,然后把这些数据发送到远端,如何实现?(这里就这个问题讨论了多种解决办法,就不一一介绍了) 3、 Q:如何看一个程序有没有发生死锁? A:postman发请求,打断点调试 Q:程序已经打包在线上,而且已经明确发生了死锁 A:打日志,看看执行到哪里停了 ...

2018-09-13 15:28:20 992

原创 【名企面试经验-360-校招提前批】【大数据研发工程师】

360提前批-大数据岗 offer一面: 1、自我介绍 2、大数据项目介绍,Olap主要是干嘛的?我都做了哪些工作。 3、问了HBase与Mysql有什么区别,HBase相对于非关系系数据库来说有什么特点二面: 1、自我介绍 2、介绍一下垃圾回收算法,然后问了什么样的对象会直接放入老年区 3、以后想从事大数据的哪方面的工作,有偏低层的,有做数据分析数据挖掘的。 4、做一道题...

2018-09-13 15:18:16 757 2

原创 【名企面试经验-快手-校招提前批】【Java研发工程师】

快手提前批Java Offer一面(50min): 1、自我介绍 2、项目介绍 3、为什么项目中又有KVM虚拟机,又有Docker? 4、为什么项目中要用虚拟机,为什么不用物理机? 5、(手撕算法)现在有人民币1,1,1,1,1,5,10,这些人民币不能凑出的最小人民币面额是21,再举个例子:1,5,10,20不能凑出的最小人民币面额是2。 6、Java遇到过哪些异常?都是什么...

2018-09-13 15:14:18 672

原创 【名企面试经验-京东-实习】【后台开发工程师】

京东(一面) 跪 自我介绍项目介绍 这个项目数据库中一般数据量有多大?java有哪些基本数据类型?(怀疑面了假京东……)如何判断两个字符串相不相等……..(怀疑面了假京东……)平时自己写了哪些接口,implement别人的哪些接口……..(怀疑面了假京东……)这项目后台的代码是你一个人你写的吗(怀疑面了假京东……)项目中用了哪些集合?都说说,然后分别说说他们的特性。...

2018-09-13 15:11:22 425

原创 【名企面试经验-新浪微博-实习】【Feed研发工程师】

新浪微博 (就只有一面 offer) 1、介绍一下这个项目 2、Openstack用的是self 还是provide网络 3、subnet底层是怎么实现的 4、你说的恢复场景,包括了恢复删除节点,那这个节点的uuid能恢复吗 5、你们项目中虚拟机跨物理机通信底层是怎么实现的 6、vlan和vxlan的原理 区别 7、说一下数据库是怎么设计的?Node Link 和Port的表中各...

2018-09-13 15:09:15 496

原创 【名企面试经验-滴滴-实习】【Java后端】

滴滴 Offer (一面) 自我介绍和项目介绍项目中用了哪些框架?技术栈是什么?项目中有用到了哪些集合? 用的Mysql的哪种存储引擎?答:innodb。那innodb与mysiam的区别是什么? 项目中遇到了哪些问题?如何解决的,可以说java程序上面的,也可以说项目中的其他问题。Hashmap线程安全吗?为什么? 答:不安全,主要有两个问题,1.多个线程在put的时候,如果h...

2018-09-13 15:05:31 549

原创 白话文讲HashMap

在这片文章开始之前,我先抛出几个问题,读者可以先回忆或者思考一下,然后再继续往下看,看与读者之前的认识是否有冲突,我当然希望能有新的观点让读者眼前一亮: 1、HashMap底层是一种什么样的结构? 2、一个对象最后是如何确定到一个Hash桶的(如何确定数组中的一个位置)? 3、发生Hash冲突了如何解决? ...

2018-09-06 21:18:46 4990 1

原创 判断两个Integer是否相等,使用==会产生的问题分析

Integer a = 128; Integer b = 128; System.out.print(a==b); //false Integer c = 127; Integer d = 127; System.out.print(c==d); //true==对于非基本类型来说,是判断两个引...

2018-08-05 15:24:10 3044

原创 寻找和为定值的n个数(Java版)

Java基于递归的版本: 代码里有简略的注释import java.util.*;public class Demo { static ArrayList&lt;ArrayList&lt;Integer&gt;&gt; lists = new ArrayList&lt;&gt;(); static LinkedList&lt;Integer&gt; fuck = new...

2018-07-22 17:39:34 1686

原创 MapReduce 的shuffle过程

Map过程处理完生成一堆键值对,并写入缓存, 最终缓存数据会写入磁盘,但是写入磁盘之前会经历一些操作才会写入磁盘。 经历分区,排序,可能会合并,这个过程结束,且缓存满了(并不是满了才写,而是到一定比例,默认是0.8,因为需要留缓存让map任务得以继续),再写入磁盘(非hdfs) 然后清空缓存,上述步骤会发生多次,每个磁盘文件,最后统一归并,最后归并成一个大的文件。这个大文件是分区的,对应的r...

2018-06-21 16:35:58 870

空空如也

空空如也

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

TA关注的人

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