springboot属性加载优先级和常见命令行属性 1.SpringApplication:启动的main方法里注入的属性2.@PropertySource:通过注解 加载的数据配置文件4.OS environment variable:环境变量5.Command line arguments:命令行。
二叉搜索树(BST) 一个完整的树: 一个树的高度是h, 如果它的叶子节点的高度是h 或者h-1,那它就是完整的树.BST 是一个递归的结构. 或是一个空树, 或是一个节点, 它有key, 有左子树和右子树.BST结合了链表插的灵活 和 有序数组检索的效率. 它需要检索的节点只和它的高度有关.BST, 同样的数据集, 如果插入的顺序不同, 树的形状可能完全不同。完美的平衡树: 所有节点的 左边子树和右边子树的高度是一样的。平衡树, 左右子树的高度, 最多相差1, 左右子树是平衡的。大量的插入后, 不太可能出现跛脚的树。
7. java 终止线程 Java 提供了一种协作的机制,这样 一个线程就能 终止另一个线程 正在做的事。 7.1. Task Cancellation 用户请求 或者 时间到了 都会 产生 终止任务的需求 7.1.1. Interruption 使用interruption 来取消任务 7.1.2. Interruption Policies 中断策略 是 线程在 接收到 中断请求 所做出的应对 7.1....
Linux 虚拟化 hypervisors 虚拟化虚拟化 是指 一个中间介质,它把复杂的层 转换成 简单的接口,这些接口 可以被多个用户使用。有点像虚拟 内存。虚拟化 常见的目的:创建 多个隔离的环境,以便多个系统运行 从而避免冲突。简单介绍 虚拟机。我们将 仔细地 探索 容器。虚拟机在虚拟机模式中,你利用软件 创建了一台 全新的机器(处理器,内存,IO接口等;在上面运行 整个操作系统,包括内核。这种叫系统虚拟器。你能完全用软件 创建虚拟机。我们将体验 术语和我们的体验 是如何相关的。在VirtualBox,我们可以使用GUI
关闭你的系统 shutdown立刻关掉系统:# shutdown -h now重启系统:# shutdown -r now关机的之前,不要断电。在n 分钟之后,关闭系统# shutdown -h +n如果你设置了一个关机时间,shutdown 会创建/etc/nologin,并且系统就会只允许 超级用户登录。当关闭时间到了,shutdown 会告诉 systemd,然后 systemd 会启动 一个 关闭单元。关闭步骤:1.init 要求所有进程 完全关闭;2.如果进程没反应,用TERM 杀;3
Linux- sed xargs expr exec sed 常用于用正则表达式 来替换一些文本:$ sed 's/exp/text/'把每行的 冒号 替换成 %,且 标准输出显示:$ sed 's/:/%/' /etc/passwd加 g (global) 表示替换掉 所有的 冒号:$ sed 's/:/%/' /etc/passwd删除 3到6行:$ sed 3,6d /etc/passwd3,6 是地址,d是删除命令。s 和 d是sed最常见的应用。可以把正则表达式 作为地址:$ sed '/exp/d'上面这些例子,sed 都是往
Linux-系统 5 运行级别 传统系统 5 初始化。在 Linux 系统中,会有一些进程在运行。机器的这种状态 被称作运行级别,由0-6代表。查看自己系统的 运行级别:时间是 运行级别 被建立的时间运行级别 常见的用途是 区分:系统 启动,关闭,单用户模式 和控制台状态。但是 运行级别 正在成为 过去。systemd 更喜欢 目标单元。...
Linux-systemd 的协助组件 systemd 除了启动 和 服务管理,还包含其他功能。在 /lib/systemd 下的程序 和这些功能相关。几个专门的 系统服务:1.udevd: systemd 的一部分2.journald: 一个日志服务3.resoved: 一个名字服务,为DNS缓存。所有这些服务 都以 systemd- 开头,比如:systemd-udevd在这当中,有些服务只是包了一层皮。他们实际调用了 标准系统工具。比如:systemd-fsck。我们可以通过 用户手册 了解 /lib/systemd 下的程序
Linux-systemd 资源 并发启动 和 按需 启动 systemd 能延迟 一个单元的启动 直到它被需要。 这个操作 是这样的:1.你创建了一个 systemd 单元A,一个系统服务;2.你指定了一个系统资源,像是:网络端口/socket,文件 或者 设备,单元A 用这个来提供 服务;3.你创建了另一个 systemd 单元,单元R,来表示那个 资源。这些 资源单元 被分类成 各种类型:socket 单元,路径单元 和 设备单元。4.你定义了 单元A 和 单元R 的关系。一般来说,这个关系是 隐含的 基于单元的名字,但也可以是 直白的。 建好...
Linux-临时文件 管理 mktemp 它的参数 是模板。不是所有的 unix 版本 都有 mktemp。如果没有,建议 安装 GNU coreUtils package。在异常情况下,如何保证删除临时文件:必须有 exit,不然程序会继续执行。mktemp 也可以不要参数。不要参数的话,就是以tmp 开头。...
Linux - systemd 依赖 如果 关于依赖的规则 如果太严格,会破坏 性能和稳定性。比如,如果 设置 命令行在数据库 启动以后 才能启动。这样的话,如果数据库启动失败了 且严格按照规则,命令行都无法出来。Unix启动时的 任务 高度容错;任务常会失败 但不会给 标准服务 造成 严重 的问题。为满足 灵活和容错,systemd 提供了多种依赖类型:Requires: 严格依赖。如果被依赖的 单元 启动失败,依赖它 的单元也不会被启动。Wants:在启动一个 单元的时候,systemd 会去启动 它的 wants 单元。但是不管
Linux 命令替代 shell 可以 重定向命令的标准输出 到 shell自己的命令行。shell 还可以把命令的 输出 存储到 shell 变量,用 $()。例子:sed 's/.*://':去除冒号和冒号前面的东西。$()比较容易出错。还有种 语法 是 (``);$()是新的。...
Linux-if 条件 case for while 以文件的属性 做if条件。比如,常规文件:[ -f file ]测试的 条件 分为三种:字符串,文件和计算。下面是操作手册 文档的一部分:if 条件 文件:-e:如果文件存在,返回true。-s:如果文件不为空,返回true。测试文件的类型:文件权限:文件1 比 文件2新:[ file1 -nt file2 ]找 硬链接, 用-ef比较两个文件。if 字符串 条件:= != -z:为空-n:不为空if 数学 相关条件=只比字符串;-eq 比数字...
Linux- Systemd 对进程 跟踪和同步 systemd 有进程的信息,能控制 它启动的进程。为管理启动的单元,systemd 使用了cgroups,一个Linux 内核的特性,用来 跟踪进程树形结构。cgroup 也简化了单元文件。服务单元文件中的 type 属性,指出了 启动行为。有两种 行为:simple:这种服务进程 不会产生 新的服务进程,也不会终止;它一直 保持 那个主 服务进程。fork: 会产生 新的进程,以前那个会 死掉。在终止的时候,服务 会就绪。type=simple 没有 考虑 启动完成 需要的时间,所以 依赖 这个
Linux-Shell 条件 #!/bin/shif[$1=hi];then echo 'the first argument is "hi"'else echo -n 'the first argument is not "hi"--' echo It was $1 if then else fi 是关键字;[是一个程序,另一个名字是test。1.执行 [ 后的语句。2.如果 结果码 是0,就执行 then 后的语句3.如果 结果码 不是0,就执行 else 后的语句4.条件语句 在 ...
Linux-退出码 exit code 当unix 程序完成的时候,会产生个退出码,称作 错误码,给启动这个程序的 父进程。没问题的时候,这个码是0,否则是其他值(并不绝对是这样)。要立刻记录下退出码,因为它会被 下一个 执行成功命令 覆盖。可以用 exit 1 退出 当前程序,会把1传给 父进程。当然也可以传其他值。有些程序的 退出码 用1 表示某种结果 而不是发生的错误。比如 grep。...