kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

两个数只出现一次

problem

一个数组,其中只有两个数只出现一次,其余数皆出现偶数次。
设计Time: O(n) 的算法得出那个只出现一次的数。

answer

再因为a和b不等,那么ab必然不为0。
那么ab这个数上面必然能够找到一个二进制位是1
在这个二进制位上,a和b不等。
根据这个二进制位,将各元素中在这位上为1的分派到左边,为0的分派到右边,形成两个子数组。

可以证明,
1)这两个数组分别包含a和b。
2)每个数组中除了a或b之外的所有元素都是成对出现的。

eclipse生成jar包

第一:普通类导出jar包

普通类就是指此类包含main方法,并且没有用到别的jar包。
1.在eclipse中选择你要导出的类或者package,右击,选择Export子选项;
2.在弹出的对话框中,选择java文件—选择JAR file,单击next;
3.在JAR file后面的文本框中选择你要生成的jar包的位置以及名字,注意在Export generated class files and resources和Export java source files and resources前面打上勾,单击next;
4.单击两次next按钮,到达JAR Manifest Specification。注意在最底下的Main class后面的文本框中选择你的jar包的入口类。单击Finish,完成。

运行 java -jar 名字.jar,检测运行是否正确。

第二、你所要导出的类里边用到了别的jar包。

比如说你写的类连接了数据库,用到数据库驱动包oracl.jar.。
1.先把你要导出的类按照上面的步骤导出形成jar包,比如叫test.jar
2.新建一个文件夹main,比如在D盘根目录下;
3.把test.jar和oracl.jar拷贝到main文件下,右击test.jar,解压到当前文件夹。把META-INF\MANIFEST.MF剪切到另外一个地方 (比如是桌面!) ;
4.右击oracl.jar,解压到当前文件夹。
5.在dos环境下,进入到D盘的main文件夹下,执行 jar cvfm new.jar meta-inf/manifest.mf .,不要忘了最后面的点。
6.用压缩工具打开你新生成的new.jar,用你放在桌面的META-INF\MANIFEST.MF覆盖new.jar原有。

运行 java -jar 名字.jar,检测运行是否正确。

统计git提交行数的脚本

可以保存为count.sh运行 ./count.sh your_name

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
insert=0
delete=0
git log --author=$1 --since "2022-01-01" --shortstat --pretty=format:"" application/ | sed /^$/d > /tmp/tmp.count

while read line ;do
current=`echo $line | awk -F ',' '{printf $2}' | awk '{printf $1}'`
insert=`expr $insert + $current`
current=`echo $line | awk -F',' '{printf $3}' | awk '{printf $1}'`
if [ "$current" != "" ]; then
	delete=`expr $delete + $current`
fi
done < /tmp/tmp.count

echo $1 $insert insertions, $delete deletions