2022-11-12
编程与技术
00

前言

首先说结论:无论什么场景,都不要对List使用for循环删除元素,因为这么做就是不对的。
阿里开发手册也明确禁止使用 foreach 删除、增加List元素。

  • 正确删除元素的方式是使用迭代器(Iterator),代码如下:
java
List<String> list = new ArrayList<>(); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { // 删除元素 iterator.remove(); }
  • JDK8后lambda写法:list.removeIf(s -> s.contains("a"));

不想知道为什么不能使用for循环删除List集合元素的,看完前言就可以关闭本页面了,想知道原因的继续往下看

2022-10-04
编程与技术
00

简介

使用docker简单来说就三步:1.构建镜像、2.获取镜像、3.基于镜像启动容器。大多数人工作中可能只会用到后两步,但真正学会docker第一步也是必不可少的!

构建镜像离不开Dockerfile,本文就来解析Dockerfile中各种指令的作用。

提示:本文基于本人使用经验编写,如有错误欢迎指正,附【官方Dockerfile参考文档】!

2022-09-28
欢乐时光
00

搭建IKEv2类型代理

前言

本文为本人使用Github开源项目setup-ipsec-vpn搭建IKEv2类型VPN的流程总结。

提示:IKEv2类型代理已经有些不安全了,容易被封,网络代理本人现在(2023年10月6日)推荐Hysteria,可以阅读【Hysteria2 官方服务端及客户端搭建】了解最新版Hysteria2的基本使用。

本文教程需要你有一定的Linux和docker使用能力。

  • 搭建环境:Linux:CentOS 7.6
  • 部署方式:docker

官方文档:《Docker 上的 IPsec VPN 服务器

优缺点总结

  • 优点:无需安装客户端,windows、android等支持该协议的终端均可直接连接
  • 缺点:需要安装证书;不够安全(容易被封)

如果是要科学上网,老狗更推荐SSR(现在更推荐hysteria),网上有很多教程,且有安卓、windows、MAC多种终端的客户端,想要了解可以参考:搭建ShadowsocksR服务器

2022-09-24
编程与技术
00

基于Windows 10

前提

学习本文,你应该拥有以下技能:

  1. 了解Windows环境下git bash的基本使用。
  2. 已拥有GitHub帐号,并可以登录。
  3. 已安装git agent
2022-09-23
编程与技术
00

前言

本文主要以帮助学习、理解Docker的命令为初衷。

学习Docker命令之前,我认为有必要了解一下Docker的三个基本概念:镜像仓库、镜像、容器,知道这些概念之间的关系,会帮助你更好的理解和使用Docker命令。 (ps:如果你对Git命令有一定了解,学习来可能会很简单)

  • 镜像仓库:存放、管理各种各样不同的镜像。
  • 镜像:某位大牛构建(搭建)好的,含有特定功能的微型系统,类似于迷你版的linux
  • 容器:以某个镜像为基础,启动运行后形成的一个可操作性系统。

类比Git

如果你是初学者,觉得不好理解解,可以尝试类比Git去理解。如果你还不知道Git,那就跳过在这吧。

  • 镜像仓库:官方提供了一个DockerHub,可以类比GitHub。
  • 镜像:类比远程仓库,固定的一份版本在那,不提交新版本变更之前,一直是不变的。
  • 容器:类比本地仓库,你可以改很多东西,这个改动在你提交推送的远程仓库之前,对远程仓库没有任何影响。这里要注意的一点不同是,容器不是提交更新镜像,而是提交推送一个全新的镜像。

希望以上能够帮助你理解Docker的三大基本概念,接下来我们来实际练习Docker命令。