
随笔
文章平均质量分 63
_六六先森
就算被世界痛击,我也要挣扎站起。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GO操作其他编程语言代码-命令行,shell,C,python
我们在开发过程中免不了要执行其他编程语言写的代码。下面通过几个例子来示示范。一、命令行执行命令行并且输出结果:func main() { cmdStr:="ps" cmd:=exec.Command(cmdStr,"-ef") output,err:=cmd.Output() if err!=nil{ panic(err) } fmt.Println("get %s result:\n",string(output))}执行命令行但是不需要输出结果:fun原创 2022-04-16 17:13:46 · 1190 阅读 · 1 评论 -
布隆(bloom)过滤器学习及简单Java实现
对于广大程序员来说,“判断一个值是否存在”这么一个问题,可能新手会说遍历(数组),老手们会直接抛下一句“哈希表呗”然后不屑的离开。但是经过我们源码的分析可知,HashMap的判断,摊还分析确实是O(1)搜索时间,但是实际上就找到对应节点的过程(可以看我前面的博客)还是需要一定的时间的。假设我们构造好了链表之后,某一个位置的链表长度为7(嘿嘿,如果是8就是红黑树了,需要3次搜索),那么我们每一次...原创 2019-08-12 16:19:00 · 765 阅读 · 0 评论 -
java数据结构源码解读——TreeMap红黑树
“手写一棵红黑树”是程序员之间常用的调侃。为何呢?红黑树说是一颗“二叉树”,但实际上操作的难度(插入/删除)远远高于普通的二叉搜索树,也高于AVL树。工业上(java库/cpp stl)使用红黑树作为树结构自然也是有它的考虑的。据有些书上和博客上说:AVL树的插入/删除极端条件下可能比红黑树慢很多;(因为涉及多次旋转操作,而红黑树只需要三次)AVL树平衡性是追求近乎绝对的平衡,所以...原创 2019-06-28 15:53:03 · 426 阅读 · 0 评论 -
max(a,b)函数的炫技写法
如果写一个max(a,b)怎么写?java的话,一般是return a>=b?a:b;这种写法。可是如果不让你使用if else或者三元操作符呢?正确答案是(以一个函数形式给出): public static int findMax(int a,int b){ b = a-b; a-= b&(b>...原创 2019-06-28 10:42:37 · 4986 阅读 · 0 评论 -
java数据结构源码解读——HashSet
HashSet在我们编程中是最长使用的一种Set,它能够以常数时间插入/删除/查找。正因为其强大的性能,python里的set也是以它的原理为实现的。我们都知道python向来崇尚“简单好于复杂 ————python之禅”,连python都认可的数据结构当然要看看。经过多场面试,可能面试经验总是说:HashSet是以HashMap来实现的。那么,具体是怎样实现的呢?接下来就探索一下它的底层...原创 2019-06-24 22:42:47 · 200 阅读 · 0 评论 -
java数据结构源码解读——优先队列
优先队列就是PriorityQueue,每次插入都能以O(logN)的时间整理好元素,然后让最大/最小值处于根位置,从而能够以O(1)时间访问最大/最小值。如果父节点的值总是大于等于子节点的值,那么称为大根堆(根是最大值),反之,如果父节点总是小于等于子节点的值,那么称为小根堆。著名的TopK算法就是以此为基础实现的。让我们探索一下jdk的优先队列。首先观察字段:pr...原创 2019-06-25 08:36:17 · 351 阅读 · 0 评论 -
Linux学习(一)
1,在一个已经安装x windows的系统中startx(start x window)即可启动图形界面。2,退出(注销这个账号) exit(exit 为英文 退出 之意)。3,一般情况的命令格式:command [-options] param1 param2....首先是命令的名称 然后以“-”开头的是选项 接下来是各个参数。命令行输入后摁下enter键立即执行。命令太长则...原创 2019-03-11 16:55:56 · 256 阅读 · 0 评论 -
关于B树与B+树
其实这是一个老生常谈的问题。这两个数据结构广泛用于外存中,并且相对于其他的树(比如红黑树,AVL树)来说,内存中的性能并不是十分的优秀。为什么这么说呢?如果是一个AVL树,那么由于它的高度平衡性,我想查找一个数据(键值对),那么一般需要logn的次数。对于一个主存数据结构来说,可以说是得到了几乎二分查找一样的次数了。那么由于数据的分散性,每一次访问,注意:我们这是在访问外存而不是内存。将会...原创 2019-03-20 10:40:49 · 312 阅读 · 0 评论 -
Linux学习(二)
1、用户权限打开ls -al命令(我理解为 list all 列出所有文件)会出现一行行文件及其属性:那么举个例子:之前创建的abc.txt文件从左到右分别为:权限 连接 所有者 用户组 文件容量 修改日期 文件名对于权限,有三个字母 r(可读) w(可写) x(可执行)而且我们可以看到,这个代表权限的字符串总是有10个字符。按照编程的习惯,编...原创 2019-03-11 21:23:29 · 186 阅读 · 0 评论 -
Linux学习(三)
1、以任意编码输出od指令后面的 -t选项指出输出方式常用的有 a 默认,c :ASCII码 d:十进制 f:浮点数 o:八进制 x:十六进制比如 od -f abc.txt把文字字符解释成浮点数格式了。ls 命令的 --time选项默认是修改时间2 llll是ls -l的别名,相当于编程里的引用。如果命令后面加了分号,要连续执行3、用户的默认权限查看使...原创 2019-03-12 11:17:12 · 209 阅读 · 0 评论 -
Linux学习(四)
专题:shell与bash1、内置命令 type查看命令是bash命令还是非bash命令比如或者列出所有有关的但是对于cd指出这是一个shell内置命令。2、查看变量或者再看看MAIL和HOME设置一个变量。比如,myname=wang66变量内容是不可以带有空格的,除非使用引号追加内容使用冒号取消变量:u...原创 2019-03-12 18:46:06 · 269 阅读 · 0 评论 -
Linux学习(五)
1、数据重定向标准输出 :>或>>(>是写入(抹除旧的数据) >>是追加(添加数据,下面同理))标准输入 :<或<<错误输出 :2>或者2>>我们考虑这个命令shell中并不存在hahaha命令,会产生一个错误输出,所以错误信息会写入到file2利用输入流来写入文件。还可以用重定向来复制...原创 2019-03-12 20:21:05 · 212 阅读 · 0 评论 -
Linux学习(六)
1、编写shell脚本运行就是 sh first.sh或者在父进程中执行该脚本:source first.sh2、test 命令。test有下列几个选项常用。-e 文件名是否存在-f 是否是文件-d是否是目录-r/w/x 是否有可读/可写/可执行权限。-eq/ne 数值相等/不等-gt/lt/ge/le大于小于大于等于小于等于-a 与条件-o或...原创 2019-03-12 21:54:36 · 160 阅读 · 0 评论 -
java数据结构源码解读——序言
不论为秋招还是为自己的水平提升一些吧,看看java数据结构的源码总归不是坏事。首先这里阐述一下如何找到源码:我们以hashmap为例。首先打开IDEA,然后随便写个程序,但是里面一定要有hashmap就像这个样子,然后摁住你的ctrl键,鼠标放到hashmap类上你的类就会变成这个样子,然后点击看,进入到hashmap的原文件中啦。综上所述,我就以此来分析一...原创 2019-06-15 09:04:19 · 195 阅读 · 0 评论 -
java数据结构源码解读——ArrayList
说道最常用的数据结构,莫过于ArrayList和LinkedList了,有一点数据结构知识的人都知道一个是变长数组,另一个是链表形式的数组。但是它们究竟是在底层如何运行的呢?我们来看看。首先我们观察这个类的定义:public class ArrayList<E> extends AbstractList<E> implements List&...原创 2019-06-15 12:43:08 · 296 阅读 · 0 评论 -
java数据结构源码解读——LinkedList
linedlist是一种基于链表数据结构的一种java数据结构,我们先看看有哪些接口:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable...原创 2019-06-15 19:02:11 · 191 阅读 · 0 评论 -
java数据结构源码解读——HashMap
HashMap可能是面试中问到的最多的数据结构,因为它良好的性能,所以深受广大程序员的喜爱。一问HashMap都知道数组加链表,实际上呢?就让我们解读一下它的源码。首先我们看看它的类结构:public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Clone...原创 2019-06-16 11:04:44 · 689 阅读 · 0 评论 -
java数据结构源码解读——LinkedHashMap
我们总说哈希表(HashMap)是以O(1)的时间插入,然后遍历时是无序的,也就是说,hash过后就不一定插在了数组什么位置了。这样导致我们无法保证获取到的键顺序。但是LinkedHashMap就不一样,按照我们的理解,里面应该还有一个线性结构,来保存HashMap的插入顺序,以至于遍历时能够获得按插入顺序得到的顺序。接下来我们就分析一下它的源码。public class Linke...原创 2019-06-17 09:28:44 · 277 阅读 · 0 评论 -
java数据结构源码解读——Hashtable
都说hashtable是已经被弃用的数据结构,大多时候会使用并发性能更好的CurrentHashMap。但是作为面试常考的数据结构,在这里主要就了解一下。我们看除了方法的部分应该是:public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Clo...原创 2019-06-17 09:54:14 · 537 阅读 · 0 评论 -
0--博客伊始
一、想法首先并不是盲目跟风去写博客这个东西。今年,已经大二,下半学期。从大一时候的偶然接触编程 ,到现在已经一年多了,曾经是因为这个行业高薪,易于就业冲动之下一脚踩了进去。也可以说是为了别人的眼光,为了证明自己没错去学习的。现在我发现我错了。不,应该是大半年前就发现自己错了。直到后来,没有了需要证明的人,我发现我已经割舍不下这份技术了。虽然,我还是很菜。不过从今天才开始写博客是因为,在这条充满坎坷...原创 2018-04-28 20:27:29 · 153 阅读 · 0 评论