世界之窗

安装
 bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/centos_install_v2ray2.sh)

查看状态 / 配置:bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/centos_install_v2ray2.sh) info

管理命令:启动:systemctl start v2ray,停止:systemctl stop v2ray,重启:systemctl restart v2ray

nginx管理命令:测试配置文件有无错误:nginx -t,启动:systemctl start nginx,停止:systemct stop nginx,重启:systemctl restart nginx

更新到最新版:bash <(curl --s https://install.direct/go.sh)

查看SSL证书:certbot certificates,更新证书:systemctl stop nginx; certbot renew; systemctl restart nginx

 卸载: bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/centos_install_v2ray2.sh) uninstall


  1. yum y install wget   ##CentOS安装wget
  1. wget nocheckcertificate O shadowsocksall.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
  2. chmod +x shadowsocksall.sh
  3. ./shadowsocksall.sh 2>&1 | tee shadowsocksall.log 

2-12-5-2

  1. 启动
  2. /etc/init.d/shadowsocksr start
  3. 退出
  4. /etc/init.d/shadowsocksr stop
  5. 重启
  6. /etc/init.d/shadowsocksr restart
  7. 状态:
  8. /etc/init.d/shadowsocksr status
  9. 卸载
  10. ./shadowsocksall.sh uninstall
  11. 配置文件位置在:/etc/shadowsocks-r/config.json

基础4 | 队列

栈:先进后出 想想青岛的栈桥

队列:先进先出 类似拉屎

如何理解“队列”?

队列这个概念非常好理解。你可以把它想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。

先进者先出,这就是典型的“队列”。我们知道,栈只支持两个基本操作:入栈 push()和出栈 pop()。队列跟栈非常相似,支持的操作也很有限,最基本的操作也是两个:入队 enqueue(),放一个数据到队列尾部;出队 dequeue(),从队列头部取一个元素

跟栈一样,队列可以用数组来实现,也可以用链表来实现。用数组实现的栈叫作顺序栈,用链表实现的栈叫作链式栈。同样,用数组实现的队列叫作顺序队列,用链表实现的队列叫作链式队列。

// 用数组实现的队列
public class ArrayQueue {
// 数组:items,数组大小:n
private String[] items;
private int n = 0;
// head表示队头下标,tail表示队尾下标
private int head = 0;
private int tail = 0;

// 申请一个大小为capacity的数组
public ArrayQueue(int capacity) {
items = new String[capacity];
n = capacity;
}

// 入队
public boolean enqueue(String item) {
// 如果tail == n 表示队列已经满了
if (tail == n) return false;
items[tail] = item;
++tail;
return true;
}

// 出队
public String dequeue() {
// 如果head == tail 表示队列为空
if (head == tail) return null;
// 为了让其他语言的同学看的更加明确,把–操作放到单独一行来写了
String ret = items[head];
++head;
return ret;
}
}

栈只需要一个栈顶指针就好 而队列需要两个指针 分别是head指针和tail指针 分别指向队首和队尾

你可以结合下面这幅图来理解。当 a、b、c、d 依次入队之后,队列中的 head 指针指向下标为 0 的位置,tail 指针指向下标为 4 的位置。

当我们调用两次出队操作之后,队列中 head 指针指向下标为 2 的位置,tail 指针仍然指向下标为 4 的位置。

// 入队操作,将item放入队尾
public boolean enqueue(String item) {
// tail == n表示队列末尾没有空间了
if (tail == n) {
// tail ==n && head==0,表示整个队列都占满了
if (head == 0) return false;
// 数据搬移
for (int i = head; i < tail; ++i) {
items[i-head] = items[i];
}
// 搬移完之后重新更新head和tail
tail -= head;
head = 0;
}

items[tail] = item;
++tail;
return true;
}

八月了

八月了

往年的八月都是在家里度过的,今年也不例外,伤感那股劲突然就上来了,这可能是最后一次这么长时间的呆在家里了。

我有一个缺点 谈到一些敏感的话题 我就想刻意的回避 例如父母催谈女朋友 人生规划 过去的高考成绩什么的 就爱回避 有时候还会内心起脾气 我相信同龄人该也有类似感受 披着成年人的皮 里面儿最根本的基本没变过 到四十岁的时候估计应该也有这感觉

另一件事情就是最近歌儿听蛮多的 硬摇滚的吉他声线韵律是无法抵挡的 Jimi的歌我个人觉得单纯听吉他声儿就够了 但音乐不只有吉他SOLO吧 词儿也是其中一分子 这时候文学素养就出来了 表达的东西 肚子里有没有东西一下就看出来了 没东西的我就不列举了 多的是 一抓一大把 狂躁技术为主 腰万青我觉得在我的欣赏范围里算是很棒的了 拗口但能grt到 刺猬的是最讨厌的 既不是大家的简单话说大事儿 也不是真正有东西难懂 就搞得不伦不类 反正我觉得是听拗口的    时常想把自己扔的在拾起来 不过多是过嘴皮子瘾了 至少不是永远拾不起来了 潜意识 骨子里还是带点味道的

暂时就这些 有空咱再聊聊

刚发出去自己又读了一遍就恶心了 这写的啥啊都是 习惯了大白话 也不是说故意文邹邹 就总觉得以前东西基本丢没了 好自为之吧