计算机网络 计算机网络传输层 UDP 数据报总结 UDP是面向报文的发送方的UDP对应的应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。在接收方的UDP,对IP层交上来的UDP用户数据报。 yuziyue 3 Aug 2023 · 3 min read
编程语言 Java 反射原理与实际使用场景 加载的流程 class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类型时,将其加载进内存。Java的所有类都是一个叫做Class的类的一个实例,Class类大概如下所示。每加载一种class,JVM就为其创建一个Class类型的实例,并关联起来。注意:这里的Class类型是一个名叫Class的class。 yuziyue 2 Aug 2023 · 5 min read
计算机网络 计算机网络层 IP 数据包总结 计算机网络层 IP 数据包总结 一个IP数据报有首部和数据两部分组成。首部的前一部分是固定长度20字节,是所有IP数据报必须有的,在首部的固定部分的后面是一些可选字段,其长度是可变的。首部长度(Header Length)占4位,可表示的最大十进制数值是15。请注意,首部长度字段所表示的数的单位是32位,即4个字节。因为首部的最小长度是20字节,所以首部长度的十进制数最小是5。 yuziyue 2 Aug 2023 · 4 min read
操作系统 linux 命令 sftp 文件传输工具总结 文件传输的工具有:scp ftp sftp rsync 使用 sftp 命令的优点:sftp(SSH File Transfer Protocol)是一种通过 ssh 安全通道进行文件传输的协议。sftp 使用 ssh 协议进行加密和认证,所有传输的数据都通过安全通道进行加密传输。这意味着在传输过程中,数据是被加密的,不容易被窃听和篡改,提供了更高的安全性。sftp 是交互式的,登录一次可以多次传输,同时还可以断点续传(reget reput) ftp 不安全scp 每次都要把用户名写在命令行上 yuziyue 2 Aug 2023 · 1 min read
大数据开发 Hive ORC 文件存储格式详解 ORC文件是自描述的,它的元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消耗,目前也被Spark SQL、Presto等查询引擎支持,但是Impala对于ORC目前没有支持,仍然使用Parquet作为主要的列式存储格式。2015年ORC项目被Apache项目基金会提升为Apache顶级项目。 yuziyue 2 Aug 2023 · 13 min read
编程语言 Java 泛型机制理解与实践 泛型就是定义一种模板,例如ArrayList,然后在代码中为用到的类创建对应的ArrayList<类型>,在Java标准库中的ArrayList实现了List接口,它可以向上转型为List ,Java泛型的主要目的是实现代码的重用性和类型安全性。假如没有泛型,我们可能就会定义很多遍ArrayList了,比如 ArrayList 、ArrayList 、ArrayList 等等。 yuziyue 2 Aug 2023 · 4 min read
计算机网络 为什么最小帧长度是64字节 我们来看一下,假设A检测到网络是空闲的,开始发数据包,尽力传输,当数据包还没有到达B时,B也监测到网络是空闲的,开始发数据包,这时就会发生碰撞,B首先发现发生碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,十六进制就是55或AA。这个碰撞信号会返回到A,如果碰撞信号到达A时,A还没有发完这个数据包 yuziyue 1 Aug 2023 · 2 min read
操作系统 服务管理工具 supervisor 使用总结 superviosr 是一个 Linux/Unix 系统上的进程管理工具,可以管理和监控 Linux 上面的进程,能将一个普通的命令行进程变为后台 daemon,并监控进程状态,异常退出时能自动重启,它不能监控 daemon 进程。 supervisor 提供了一种统一的方式来start、stop、monitor你的进程,通过命令行或者web页面来配置 supervisor。 yuziyue 1 Aug 2023 · 5 min read
操作系统 xdotool 自定义切换应用窗口总结 xdotool 是一个在 X Window 系统中模拟鼠标和键盘输入的命令行工具。它可以通过命令行来模拟用户的鼠标点击、键盘输入等操作,用于自动化、脚本编写和其他一些用途。 我用 xdotool 的目的是想在多个应用之间快速切换,比如 现在打开了5个应用:idea、vscode、securecrt、chrome、wechat 这个5应用,此时下我可以按 alt + tab yuziyue 1 Aug 2023 · 2 min read
操作系统 i3wm 个人快捷键分享 i3wm 个人快捷键分享 在我的键盘布局上:$mod 表示 Alt, 下面的命令部分是根据个人使用习惯更改过了的快捷键。 Alt + h # 光标左移到隔壁窗口 Alt + j # 光标下移到隔壁窗口 Alt + k # 光标上移到隔壁窗口 Alt + l # 光标由移到隔壁窗口 yuziyue 1 Aug 2023 · 1 min read
操作系统 i3wm 窗口管理器总结 i3(i3wm)是一个非常漂亮的桌面窗口管理器,它只是一个管理器,和gnome、kde桌面类似,但它的快捷键非常丰富、屏幕的使用率非常高,推荐尝试。下面的安装在ubuntu18.04的桌面环境上进行,其他linux发行版本类似。window manager 配置全局i3wm配置文件目录, 编辑文件 /etc/profile,添加如下配置。此全局路径在后面会用到。 yuziyue 1 Aug 2023 · 4 min read
操作系统 linux 检测密码是否正确方法 linux 检测密码是否正确方法 linux 上用户的密码是加密后存储在/etc/shadow里面的,如果我们要判断某个用户的密码是否正确,需要一些取巧的方法来实现,我们要判断密密码是否匹配,密码是否正确有两种方法:shell、python。第二步:使用相同的加密算法计算新的密码,然后判断是否相同,比如: yuziyue 1 Aug 2023 · 1 min read
操作系统 linux 命令 numfmt 转换字节为可定性强的字符串 一. --to=iec numfmt可以用来格式化字节大小,使得更易读和直观。在 linux 中,numfmt提供了--to=iec选项,用于将字节大小转换为 K、M、G、T等,适合显示文件大小、网络速度、磁盘大小等等,字节转换为可读性高的字符串。1M = 1024 * 1024 = 1048576 1M = 1000 * 1000 = 1000000 yuziyue 1 Aug 2023 · 1 min read
操作系统 ubuntu centos 配置IP地址 ubuntu centos 配置IP地址 network 修改网卡文件 /etc/sysconfig/network-scripts/ifcfg-ens33, 配置项含义一目了然。重启网络 service network restart Netplan是 Ubuntu17.10 中引入的一种新的命令行网络配置实用程序,用于在Ubuntu系统中轻松管理和配置网络设置。它允许您使用YAML抽象来配置网络接口。它可与 NetworkManager 和 systemd-networkd 网络守护程序一起作为内核的接口。 yuziyue 31 Jul 2023 · 1 min read
操作系统 git submodule 子模块使用 git submodule 子模块使用 主仓库默认是记住子模块的当前commit号,所以git submodule update的子模块默认是在某一个commit上,而不是在分支上。主仓库和子模块的关系是通过子模块的某一个commit来绑定的,如果子模块的内容修改了,主仓库则需要提交这种变化。git clone 带子模块的仓库 yuziyue 31 Jul 2023 · 2 min read
操作系统 linux 命令 date 时间使用详解 linux 命令 date 时间使用详解 # date获取当前时间的 字符串 同时显示时区 date获取当前时间 date 时间 => 时间戳 date时间戳转换 同时格式化时间 同时显示时区 date 时间加减年月日 date -d @1690792648 '+%Y-%m-%d %H:%M:%S %Z %z' 2023-07-31 16:37:28 CST +0800 yuziyue 31 Jul 2023 · 4 min read
操作系统 linux rdesktop 远程连接 windows linux rdesktop 远程连接 windows 有朋友可能会使用 Linux 作为工作电脑,这时如果需要远程连接到 Windows 的话, 可以使用十分轻巧、简单易用的远程连接工具 rdesktop 来连接。表示全屏显示,声音重定向到本机,Ctrl+Alt+Enter 组合键退出全屏 rdesktop -a 16 -r sound:local -r clipboard:PRIMARYCLIPBOARD -f 192.168.0.2 yuziyue 31 Jul 2023 · 1 min read
大数据开发 flink 如何自定义 source 数据源 Flink 如何自定义 Source 数据源 Apache Flink 提供了自定义 Source 的能力,使用户可以根据自己的需求实现数据源的逻辑。自定义Source是通过实现 Flink 的 SourceFunction接口来实现的。一. 单并行度DataSource 单并行度source实现SourceFunction,并且单并行度source不允许使用setParallelism方式设置并行度。创建MySource 如果 run 方法不会退出,那么就是一个无限的数据流 yuziyue 31 Jul 2023 · 2 min read