stream流的获取
stream流的获取
单列集合:集合对象.stream();
双列集合:不能直接获取,需要间接获取
集合对象.keySet().stream();
集合对象.entrySet().stream();
数组 :
Arrays.stream(数组名);
同种类型的多个数据:
Stream(数据1,数据2,数据3…);
单列集合
12345//单列集合ArrayList<String> list = new ArrayList<>();list.add("这是");list.add("\t\t单列集合");list.stream().forEach(s-> System.out.print(s));
双列集合
1234567891011121314// 双列集合,顺序随机HashMap<String,Integer> t = new HashMap<>();t.put("\n这是",18);t.put("\t\t双列集合",1 ...
解决 进程PID kill不掉 端口关不掉
问题描述
我需要用到3306端口,但我想使用docker安装mysql,但是3306端口一直显示被占用,可能是我在这之前安装的mysql没有删除干净。
一般来说,端口被占用了,直接kill都能停止该端口进程,但是我这里就一直kill不掉。
从图中可以发现问题的症结所在:从最高层来看,它是由Systemd 系统守护进程调用的。可以简单的理解成:Systemd是mysqld的祖先进程。
Systemd是操作系统的第一个进程(PID等于1),其他的进程都是它的子进程;它的设计目标是,为系统的启动和管理提供一套完整的解决方案;Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面;Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)。
问题解决:停止父级进程
首先在这我们需要明确,并不是kill进程不成功,事实上,kill进程成功了,所以mysqld结束,PID 5277释放;但是它又被其他服务唤醒,所以mysqld换了一个新的PID 9580 ,仍旧占据着端口号3306。
12345# pstree -a ...
本次实验内容:用docker安装portainer,使用dockerfile构建jar运行环境,使用docker-compose部署jar和nginx,实现反向代理访问。
前提准备
环境:你需要已经安装了docker和docker-compose,如果还没装,你可以参考这篇文章https://blog.hikki.site/2802e5c6.html
资源包下载:https://rookie1679.lanzouy.com/iAMQ70cqoo0h
下载该压缩包,解压后有四个文件docker-compose.yml、Dockerfile、hello.jar、nginx.conf。
将文件上传到服务器。放在/home,解压即可。
上传到服务器
12# scp 本机文件路径 服务器用户名@IP地址:文件存放路径scp D:\Study\docker.zip root@192.168.2.9:/home/
解压
123cd /homeunzip docker.zipcd docker && ls
构建Dockerfile
编写Dockerfile
由于j ...
docker使用遇到问题Got permission denied while trying to connect to the Docker daemon socket
解决办法 1
使用超级管理员权限,每次都要输入密码,麻烦。
123# 使用sudo docker ps或者sudo docker imagessudo dockersudo docker images
解决办法 2
不需要每次都输入密码,一次设置,一劳永逸。
12345# 把普通用户加入到docker组中 # 这里的普通用户是 wu ,组docker在安装docker的时候,就已经添加了,所以只需要执行两个操作即可:sudo gpasswd -a $USER docker newgrp docker# 将 wu 用户加入docker组之后,发现使用docker ps或者docker images不会提示权限不足了。
‘ERROR: for nginx Cannot start service nginx’
报错内容
1234567891011lilbai@ecs-205380: docker-compo ...
软件首页
如何下载
加速链接
1https://dd.pandownload.net/accelerate/test
软件下载地址
蓝奏云下载:点击前往
密码: 6tbo
剔除age属性
方法一
123456789const arr = { name: '小王', id: 1, age: 18 } // 剔除agedelete arr.age console.log(arr) // 结果:{ id: 1, name: '小王' }
方法二
123456789const arr = { name: '小王', id: 1, age: 18 } // 剔除ageconst {age, ...arr2} = arrconsole.log(arr2) // 结果:{ id:1 , name: '小王' }
方法三
123456789const arr = { name: '小王', id: 1, age: 18 } ...
json去除某属性
剔除age属性
方法一
123456789const arr = { name: '小王', id: 1, age: 18 } // 剔除agedelete arr.age console.log(arr) // 结果:{ id: 1, name: '小王' }
方法二
123456789const arr = { name: '小王', id: 1, age: 18 } // 剔除ageconst {age, ...arr2} = arrconsole.log(arr2) // 结果:{ id:1 , name: '小王' }
方法三
123456789const arr = { name: '小王', id: 1, age: 18 ...
第一个VUE程序
1234567891011121314151617181920212223<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <script src="js/v2.6.10/vue.min.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="app"> {{ counter }} </div> <script> var vm = new Vue({ el:"#app", data:{ count ...
项目树
123456789101112131415161718192021TestDemo ├─ db // 连接数据库 │ └─ index.js ├─ router // 路由规则 │ ├─ artcata.js │ ├─ article.js │ ├─ user.js │ └─ userinfo.js ├─ router_handler // 路由函数体│ ├─ artcata_handler.js │ ├─ article_handler.js │ ├─ userinfo_handler.js │ └─ user_handler.js ├─ schema //数据校验规则│ ├─ article.js │ └─ user.js ...