nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
Automic是一个原子类型包,其中包含了AtomicBoolean,AtomicInteger,AtomicLong等, 原子操作说是这样说的,然而并不是所有的物理机器都支持原子指令,所以不能保证不被阻塞,一般而言,采用的CAS+volatile+native的方法,避免synchronized的使用,如果不支持CAS那就上自旋锁了
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
创建工作空间 我们先创建一个工作空间myGit,在其中创建一个项目project,植入两个文件a.txt和b.txt,并分别写入”a”和”b”
123456cd ~ mkdir -p myGit/projectcd myGit/projecttouch a.txt b.txtecho "a" >> a.txtecho "b" >> b.txt
初始化git 紧接着我们用git初始化这个项目
1git init
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
MAN 操作手册学linux,必须知道如何使用man,首先是安装man,或者在这里逛逛
1yum -y install man-pages
SCP上传本地文件到服务器1scp -P [ssh端口] /path/filename username@serverhost:/path
下载HTTP文件下载东西可以使用curl指令,如
1curl baidu.com -O -L
也可以使用wget指令,如
1wget baidu.com
Linux运行级别 linux一共有7个级别,分别为0关机、1单用户、2无网多用户、3有网多用户,4保留,5图形界面,6重启。在文件/etc/inittab中指定了级别。
查看运行级别 查看文件/etc/inittab
修改运行级别1init 3
如何找回root密码 进入单用户模式,然后修改密码,因为进入单用户模式不需要密码就可以登陆。 进入grub中,按e编辑指令,修改kernel,输入1进入单用户级别,输入b启动,用passwd root修改密码
mkdir 在用户文件夹下创建hello
1mkdir ~/hello
多级目录需要加上-p参数
1mkdir ~/h/h/h
rmdir 删除空文件夹
1rmdir ~/hello
删除非空文件夹
1rm -rf
touch 创建文件,我常用vim
1touch a.txt b.txt c.txt
cp 将a.txt拷贝到用户目录下
1cp a.txt ~/
将a这个文件夹全部拷贝到用户目录,-r指的是递归
1cp -r a/ ~/
\cp可以强制覆盖不提示,在mac中直接覆盖了,不需要\cp
rm 删除a.txt,
1rm a.txt
删除目录a, -r为递归
1rm -r a/
删除目录a,-f为不提示 可与-r合并为-rf
1rm -r -f a/
mv 将a.txt重命名为b.txt
1mv a.txt b.txt
将a.txt一定到用户目录,如果那有的话,mac不提示是否替换,直接替换,有点不人道了。
1mv a.txt ~/
cat cat是浏览文件 就能看到配置文件了
1cat ~/.vimrc
-n 能够显示行号
1cat -n ~/.vimrc
more是一个类似于vim的东西,能够把文件分页,用空格看下一行,用enter看下一页,用<C-F>和<C-B>翻页,用=输出行号,用fb也可以翻页。
1cat -n ~/.vimrc | more
more 直接完成
1more ~/.vimrc
less 基于显示的懒加载方案,打开文件非常快 几乎和more一样,就是开大文件快一点,可以用来打开日志。
1less ~/.vimrc
> 和>> >是输出重定向,会覆盖内容,>>是追加,不会覆盖
例子 ls -l 会输出一些内容,这些叫输出,>a.txt会写入a.txt,当然也可以用>>来追加,后面只演示>,不演示>>了
1ls -l > a.txt
例子2 将cat的输出重定向到b.txt中
1cat a.txt > b.txt
echo 输出 abcde
1echo "abcde"
将abcde写入a.txt
1echo "abcde" > a.txt
cal cal显示日历 将日历输出到a.txt
1cal > a.txt
echo 一般用于输出信息, 输出了abc
1echo "abc"
输出环境变量,
1echo $PATH
head 查看文件的前几行 看vim配置文件前10行
1head ~/.vimrc
看vim配置文件的前20行,-n表示行数
1head -n 20 ~/.vimrc
tail 查看结尾几行,同上 监控a.txt,当他被追加的时候,输出追加的信息
1tail -f a.txt
ln 建立软链接(快捷方式) 创建一个用户目录的软链接到当前目录,这个软链接叫mylink
1ln -s ~ mylink
history 查看最近执行的指令 mac中不太一样,history 10 表示查看第10条指令到现在的指令 查看最近执行的10条指令
1history 10
执行第10调指令
1!10
date date可以看到时间,后面是格式设置
1date "+%Y-%m-%d 星期%w %H:%M:%S"
设置日期 -s 表示设置时间
1date -s "2021-1-1 1:1:1"
cal cal直接查看当前月的日历 看2020n年的日历
1cal 2020
find 在用户文件夹下找名为.vimrc的文件
1find ~ -name .vimrc
在用户文件夹下找名为.vimrc属于用户s的文件
1find ~ -user s -name .vimrc
在用户文件夹下找大于100M的文件
1find ~ -size +100M
在用户文件夹下找小于100M的文件
1find ~ -size -100M
在用户文件夹下找等于100M的文件
1find ~ -size 100M
通配符
1find ~ -name *.txt
locate 根据数据库快速定位文件的位置,更新数据库
1updatedb
根据数据库快速定位a.txt
1locate a.txt
管道 将前一个指令的输出传递给后一个指令处理
1|
grep 寻找let,并输出行号和行数据,-n表示输出行号,-i表示不区分大小写,
1grep -n -i let ~/.vimrc
通过管道将cat的结果传递给grep,同上
1cat ~/.vimrc | grep -ni let
gzip gunzip 将hello.txt压缩为hello.txt.gz
1gzip hello.txt
将hello.txt.gz解压为hello.txt
1gunzip hello.txt.gz
zip 与 unzip 把用户目录下的所有文件压缩到res.zip中
1zip -r res.zip ~
把res.zip解压到~/res中
1unzip -d ~/res res.zip
rar 与 unrar 有这东西,很少用
tar -z是打包同时压缩,-c是产生.tar文件,-v是显示详细信息,-f是指定压缩后的文件名 res.tar.gz是打包后的文件,其后为打包文件
1-zcvf res.tar.gz a.txt b.txt
对a文件夹打包
1-zcvf res.tar.gz a/
解压到当前目录
1-zxvf res.tar.gz
指定解压到~中
1-zxvf res.tar.gz -c ~
netstat netstat可以显示网络状态,
script1netstat -a
netstat可以显示网卡
script1netstat -i
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
为什么我们需要设计模式 有一类问题会在软件设计中反复出现,我们能够提出一种抽象的方法来解决这类问题,这就是设计模式。
设计模式的七大原则
单一职责原则
接口隔离原则
依赖反转原则
里氏替换原则
开闭原则
迪米特法则
合成复用原则
阅读全文