首先说结论:无论什么场景,都不要对List使用for循环删除元素,因为这么做就是不对的。
阿里开发手册也明确禁止使用 foreach
删除、增加List元素。
Iterator
),代码如下:java List<String> list = new ArrayList<>();
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
// 删除元素
iterator.remove();
}
list.removeIf(s -> s.contains("a"));
不想知道为什么不能使用for循环
删除List集合元素的,看完前言就可以关闭本页面了,想知道原因的继续往下看
使用docker简单来说就三步:1.构建镜像、2.获取镜像、3.基于镜像启动容器。大多数人工作中可能只会用到后两步,但真正学会docker第一步也是必不可少的!
构建镜像离不开Dockerfile
,本文就来解析Dockerfile
中各种指令的作用。
提示:本文基于本人使用经验编写,如有错误欢迎指正,附【官方Dockerfile参考文档】!
本文为本人使用Github开源项目setup-ipsec-vpn搭建IKEv2类型VPN的流程总结。
提示:
IKEv2
类型代理已经有些不安全了,容易被封,网络代理本人现在(2023年10月6日
)推荐Hysteria,可以阅读【Hysteria2 官方服务端及客户端搭建】了解最新版Hysteria2的基本使用。
本文教程需要你有一定的Linux和docker使用能力。
官方文档:《Docker 上的 IPsec VPN 服务器》
如果是要科学上网,老狗更推荐SSR(现在更推荐hysteria),网上有很多教程,且有安卓、windows、MAC多种终端的客户端,想要了解可以参考:搭建ShadowsocksR服务器
基于Windows 10
学习本文,你应该拥有以下技能:
git bash
的基本使用。GitHub
帐号,并可以登录。git agent
。本文主要以帮助学习、理解Docker的命令为初衷。
学习Docker命令之前,我认为有必要了解一下Docker的三个基本概念:镜像仓库、镜像、容器,知道这些概念之间的关系,会帮助你更好的理解和使用Docker命令。 (ps:如果你对Git命令有一定了解,学习来可能会很简单)
- 镜像仓库:存放、管理各种各样不同的镜像。
- 镜像:某位大牛构建(搭建)好的,含有特定功能的微型系统,类似于迷你版的
linux
。- 容器:以某个镜像为基础,启动运行后形成的一个可操作性系统。
如果你是初学者,觉得不好理解解,可以尝试类比Git去理解。如果你还不知道Git,那就跳过在这吧。
希望以上能够帮助你理解Docker的三大基本概念,接下来我们来实际练习Docker命令。