本文主要介绍JDK中Collection和Map相关知识体系,后续章节将对主要对类进行源码解读。
- Collection 类关系图
Docker 入门
安装
官网安装:https://docs.docker.com/engine/install/
利用脚本进行安装:
$ curl -sSL https://get.docker.com/ | sh
$ sudo chmod 777 /var/run/docker.sock
1. 问题需求
如一台机器上有个 346MB 的 cactus.tar 文件,需要把这个文件通过 rsync 或 scp 传输到另一台机器上,现在网络的速度限制在每秒传输1.1MB ,需要多长时间能传输完成整个文件?
要计算传输文件的时间,我们可以使用以下公式:
命令速查表
系统相关命令
命令 | 解释 |
---|---|
uname |
显示 linux 系统信息 |
uname -r |
显示内核版本信息 |
cat /etc/os-release |
显示 linux 系统详细信息 |
uptime |
显示系统运行的时间(包括平均负载) |
hostname |
显示系统主机名 |
hostname -i |
显示系统的IP地址 |
last reboot |
显示系统重新启动历史记录 |
date |
显示当前系统日期和时间 |
timedatectl |
查询和更改系统时钟 |
cal |
显示当前日历的月份和日期 |
w |
显示系统中当前登录的用户 |
whoami |
显示您的登录身份 |
finger username |
显示有关用户的信息 |
1. 手动优化镜像体积【推荐】
1.1 新建 Dockerfile 并 build 为镜像
新建 Dockerfile文件,用于制作后端项目的 Docker 镜像。编写内容如下:
## AdoptOpenJDK 停止发布 OpenJDK 二进制,而 Eclipse Temurin 是伸,提供更好的稳定性
FROM eclipse-temurin:17
## 创建目录,并使用它作为工作目录
RUN mkdir -p /cactus-server
WORKDIR /cactus-server
## 将后端项目的 Jar 文件,复制到镜像中
COPY cactus-server.jar app.jar
## 设置 TZ 时区
## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms512m -Xmx512m"
## 暴露后端项目的 48080 端口
EXPOSE 48080
## 启动后端项目
ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar app.jar
Spring EL表达式概述
Spring Expression Language(SpEL)是一种功能强大的表达式语言,广泛应用于Spring框架中。它允许在运行时动态地查询和操作对象图,支持属性访问、方法调用、集合操作、逻辑运算等多种功能。本文将详细介绍SpEL的背景、基本用法、应用场景及其在实际开发中的应用。
SpEL基本用法
表达式解析器
SpEL 的核心组件是 SpelExpressionParser
,用于解析和评估表达式。
ExpressionParser parser = new SpelExpressionParser();
详解lambda中的方法引用
我们现在有一个苹果类,其代码定义如下:
@Data
@AllArgsConstructor
public class Apple {
private int weight;
}
RFC 6749
OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。
OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。......资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。
这段话的意思就是,**OAuth 的核心就是向第三方应用颁发令牌。**然后,RFC 6749 接着写道:
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。
本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。