编程语言 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连接Redis实战 编写模块 redishelper.py ,这样一来,在其他需要连接 redis 的地方只有导入该模块,然后在初始化即可使用 redis 数据。在需要连接redis的地方通过from redishelper import RedisHelper方式导入模块,然后对 RedisHelper 进行初始化。注意可根据实际情况对 RedisHelper 对象的初始化传递具体参数即可。 yuziyue 12 Jul 2023 · 2 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
编程语言 掌握Maven项目管理工具 本文将在项目开发中常见的 Maven 需求总结成单个的小项,按照需求查阅目录即可。增加第三方Jar包到项目,参考:https://blog.51cto.com/u_12660945/5159508 ,首先在项目中新建lib目录,把第三方的jar包放在这个目录,比如 myproject/lib/ImpalaJDBC41-2.6.12.jar 新增pom依赖。 yuziyue 11 Jul 2023 · 12 min read
编程语言 Maven入门实战总结 一. 概要说明 Maven是一个Java项目管理和构建工具,它可以定义项目结构、项目依赖,并使用统一的方式进行自动化构建,是Java项目不可缺少的工具。它的主要功能有: 提供了一套标准化的项目结构。 提供了一套标准化的构建流程(编译,测试,打包,发布……)。 提供了一套依赖管理机制。 yuziyue 11 Jul 2023 · 5 min read
编程语言 Java发送邮件完整示例 或者在官网下载 jar 包 https://javaee.github.io/javamail/ Properties properties = System.getProperties(); properties.put("mail.smtp.host", host); properties.put("mail.smtp.port", "465"); properties.put("mail.smtp.ssl.enable", "true"); properties.put("mail.smtp.auth", "true"); yuziyue 11 Jul 2023 · 2 min read
编程语言 Scala调用并执行外部Linux命令 Scala 执行命令非常简单,不需要额外的依赖。 val cmd = "cat /etc/profile | wc -l" val stdoutStr = new mutable.StringBuilder val stderrStr = new mutable.StringBuilder var exitCode = 0 var stdout = "" var stderr = "" yuziyue 11 Jul 2023 · 1 min read
编程语言 Java调用并执行外部Linux命令 一. pom依赖 commons-exec,// 接收正常结果流 ByteArrayOutputStream susStream = new ByteArrayOutputStream(); 四. 特殊情况 当执行的命令有参数时,构建 commandLine 要特殊处理,比如命令 impala-shell -q "REFRESH db.table",这种命令必须使用下面的方式创建。 yuziyue 11 Jul 2023 · 2 min read