编程语言 linux shell 脚本 set 命令辅助 set -o errexit 同set -e,如果脚本遇到任何错误,脚本将立即退出执行。没有使用时,脚本即使遇到错误也可以继续执行下去。set -o pipefail 需配合set -o errexit使用,表示脚本中的多管道命令运行时,如果有一个命令出现错误,脚本将会立即退出执行。 yuziyue 27 Jul 2023 · 3 min read
编程语言 linux shell 编程超详细总结 shell 脚本,也就是将想要执行的命令按顺序保存到一个文本文件中,根据需要给予一定的执行流程控制,然后给出解释器路径和可执行权限,这就是一个完整的 shell脚本了。使用当前 shell 执行,不需要执行权限,在该脚本中的变量会保存在当前 shell 中,用echo $variablename可以查看,与source和.的效果相同。 yuziyue 27 Jul 2023 · 14 min read
编程语言 Python字典的所有用法整理 OrderedDict 内部维护着一个根据键插入顺序排序的双向链表。每次当一个新的元素插入进来的时候, 它会被放到链表的尾部。可以很方便的使用 collections 模块中的 defaultdict 来构造这样的字典。 defaultdict 的一个特征是它会自动初始化每个key 刚开始对应的值。 yuziyue 26 Jul 2023 · 5 min read
编程语言 Python 实现经典排序算法 将顺序存储的 n 个待排序记录划分为两个区间:一个有序区间,一个无序区间;初始时有序区间为 [R1],无序区间为 [R2...Rn],令 i 指向无序区中第一个元素,初始值 i=1。 当 i<=n 时重复指向: 将当前无序区中的第一个记录Ri插入到有序区的适当位置,使得有序区变为一个新的有序区。 yuziyue 22 Jul 2023 · 15 min read
编程语言 一文彻底搞懂 Python 字符编码 ascii、gb2312、gbk、unicode、utf-8 这些编码都分别表示什么含义呢 ?ascii编码规定,一个英文字符需要一个字节(8bit位)大小,汉字的编码超出了ascii 的范围,至少需要两个字节来表示一个中文字符,某些复杂的汉字需要3到6个字节来表示。 yuziyue 22 Jul 2023 · 8 min read
编程语言 bash并行执行多个命令 使用场景 在脚本中需要并发执行多个命令,比如,需要同时登录到 10 台机器,并在 10 台机器是分别格式化磁盘。格式化磁盘是一个耗时的操作,如果顺序执行的话,会非常耗时。所以可以使用后台执行,使用 wait 命令等待所有的后台命令返回。 yuziyue 19 Jul 2023 · 1 min read
编程语言 Python 虚拟环境 virtualenv 与 virtualenvwrapper 总结 虚拟环境就是每个项目都单独使用一个隔离 Python 环境,每个项目自己的安装的包只在这个虚拟环境下有效,不会影响其他项目的。我们常用了两个工具来管理虚拟环境:virtualenv、virtualenvwrapper yuziyue 17 Jul 2023 · 3 min read
编程语言 Python多版本管理工具pyenv pyenv 可以在不影响系统的 python 的情况下,安装并管理多版本的Python,它不依赖原有系统的任何 Python 设置, github 地址 https://github.com/pyenv/pyenv 使用脚本自动安装,安装目录会在 $HOME/.pyenv 下,可以关注下安装过程中的输出日志。 yuziyue 14 Jul 2023 · 3 min read
编程语言 Java之HashMap原理与实战 一. HashMap的原理 HashMap 由 数组+链表的方式实现,一个 HashMap 对象主要维护了如下对象: 数组table:数组的元素是一个链表,相同索引的数据存在同一个链表里面 数据量size:已存入的 kv 对数量 数组 table 初始化容量:数组的元素个数 扩容因子:当数组达到一定的阈值后进行扩容 yuziyue 13 Jul 2023 · 4 min read
编程语言 Scala发送邮件完整示例 val from = "usernamexx@yeah.net" // 发件人邮箱 val password = "xxxx" // 发件人邮箱密码,注意:有些邮箱是是授权码 val to = "xxxxx@qq.com" // 收件人邮箱 val properties = new java.util.Properties() properties.put("mail.smtp.host", "smtp.yeah.net") // 使用 SMTP 服务器 properties.put("mail.smtp.port", "465") yuziyue 13 Jul 2023 · 3 min read
编程语言 Java单例模式完整示例 // 创建 SingletonObject 对象 private static final SingletonObject instance = new SingletonObject(); // 让构造函数为 private,这样该类就不会被实例化 private SingletonObject() { name = "beijing university"; location = "beijing"; } yuziyue 12 Jul 2023 · 1 min read
编程语言 项目构建工具Gradle快速入门 目录结构介绍 gradle 目录: 存放 gradle wrapper 相关文件,gradle wrapper 是 gradle 项目构建工具,它能在本地没有 gradle 的情况下,从远程下载 gradle 并自动解压缩以构建项目,自动管理 gradle 版本。gradle-wrapper.properties 是 gradle wrapper的配置。distributionUrl 指定本地没有配置 gradle 的情况下从哪下载 yuziyue 12 Jul 2023 · 5 min read
编程语言 使用Python实现杨辉三角 1. 杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列。下一行的每一个元素都等于本行相邻两元素相加而得到。 2. 实现方法 将本行拷贝两个副本,将这两个副本分别在前后各补上一个 0,然后将这两个副本相加即可得到下一行数据。lines 表示要显示的行数。 yuziyue 12 Jul 2023 · 1 min read
编程语言 Python模块与包使用实践 一. 定义 模块 : 一个 .py 文件就是一个模块(module),去除.py后缀的文件名就是模块名。 包 : __init__.py 文件所在目录就是包(package),目录名称就是包名称。 二. 两种形式的 import import ... from ... import ... 第一种import后面只能是模块名、包名。 yuziyue 12 Jul 2023 · 2 min read
编程语言 Python全局自定义异常处理 使用场景 自定义 exceptionhook ,当程序遇到错误后,可以发送钉钉消息、发送邮件等等,把重要的信息直接发出来,就不用去服务器上看错误日志了,这样简单直接省事。 使用示例 yuziyue 12 Jul 2023 · 1 min read
编程语言 Python描述器Descriptor 一个描述器就是一个实现了三个核心属性访问的方法 __get__() 、__set__() 、 __delete__() 的类。常用作数据合法验证、缓存耗时计算等。 当一个对象的属性被访问时,Python 解释器首先检查该属性是否是一个描述器,如果该属性是描述器,则调用描述器对应的三个方法, yuziyue 12 Jul 2023 · 3 min read
编程语言 Scala集合类型使用整理 Tuple Scala 中的元组包含一系列类:Tuple2,Tuple3等,直到 Tuple22。 因此,当我们创建一个包含 n 个元素(n 位于 2 和 22 之间)的元组时,Scala 基本上就是从上述的一组类中实例化 一个相对应的类,使用组成元素的类型进行参数化。 ● 用户有时可能在元组和 case 类之间难以选择。 通常,如果元素具有更多含义,则首选 case 类。 ● 元组一旦创建之后,就是不可变的 yuziyue 12 Jul 2023 · 3 min read
编程语言 Scala文件读写等常见操作 文件移动位置 val path = Files.move( Paths.get(sourceFilename), Paths.get(destinationFilename), StandardCopyOption.REPLACE_EXISTING ) 从指定位置开始读取 索引从 0 开始,英文一个字符占用一个索引,中文一个汉字占用 3 个字符。 yuziyue 11 Jul 2023 · 1 min read