- 博客(178)
- 收藏
- 关注
原创 Java 单例模式
只需要在实例还未生成时才需要做线程同步,实例生成以后直接使用即可,所以就有了方法 3。该实现方式避免了多线程场景下每次都做线程同步的问题,但在实例生成之前线程间仍然是需要做线程同步的。但该方法还是需要线程之间的同步,如果实例初始化比较复杂或者需要的时间比较长会阻塞很多线程等待。为了解决实现 1 不能在多线程场景下使用的问题,给 getInstance 方法做线程同步是一种简单的实现方式。该方法通过私有化构造方法,并且提供生成类对象的静态 getInstance 方法来保证该类只生成一个实例。
2025-10-27 00:56:29
415
原创 Hive 内置字符串(String)函数
个人博客地址:Hive 内置字符串(String)函数 | 一张假钞的真实世界Hive 支持以下内置字符串函数:
2025-10-27 00:48:34
588
原创 Hive 加载文件数据到表
Hive 在加载数据进表的时候不会做任何转换。Load 操作只是纯粹将数据文件复制/移动到 Hive 表关联的位置。注意:Hive 表字段分隔符必须与文件中数据字段分隔符一致。
2025-10-24 15:58:38
353
原创 Markdown 转义
在 Markdown 中想要表示字符串‘\s’,那么代码要怎么写呢?是‘\s’还是‘\\s’?后一种写法是很明显的,但是前一种写法也是可以的。原因是,Markdown 会根据转义字符‘\’之后的字符判断是否需要执行转义。\s 不是一个需要执行转义的表达式,所以转义字符‘\’按照原字符表达显示。这种特性可以让我们在类似的情况下少输入一些字符。试一下就知道这样是不行的。
2025-10-24 15:53:20
227
原创 MySQL 表分区修改操作不支持 IF [NOT] EXISTS
最近的工作中需要用到 MySQL 的分区表。表根据每天的日期分区,如:20160518、20160519 等。需要支持数据重新写入分区,即如果对应的分区下已经存在数据,则先清理再写入。IF [NOT] EXISTS 是一种判定表是否存在简便方式,非常适合这种场景。但查看了 MySQL 的官方文档,PARTITION 的添加、删除操作不支持该操作。
2025-10-22 08:41:09
291
原创 基于 hexo + github 的个人博客系统搭建
Hexo 是一个快速、简单,并且强大的博客框架。Node.js 带来不可思议的生成速度。建立数百个文件只需要几秒钟。支持 GitHub 所有推荐的 Markdown 特性。你甚至可以在 Hexo 中使用大部分 Octopress 的插件。只需要一个命令就可以部署个人博客到 GitHub、Heroku 或者其他站点。Hexo 有一个强大的插件系统。可以安装很多 Jade 插件和 CoffeeScript 插件。过程简单,只要有基础英文文档阅读能力。按照官网介绍操作就好。不用开发也可以完成。
2025-10-21 09:49:08
858
原创 通过 MongoDB 日志信息定位操作来源
问了团队成员,都未进行过删除操作,说明可能是两种情况:一、误删,连操作者自己也没意识到做了一个删除操作;MongoDB 的复制集是通过 oplog 来实现的,主库的更改操作会被记录到主库的 oplog 日志中,然后从库通过异步方式复制主库的 oplog 文件并且将 oplog 日志应用到从库,从而实现了与主库的同步。这个库下存放的都是配置信息,变动很少,但读取很频繁,而且多个地方都会读取。为了控制权限,创建这个库的只读账号,对外只开放只读账号,只有管理功能使用可写账号。md 正是被删除的库。
2025-10-20 00:20:08
675
原创 Redis 初探
Jedis 是推荐的 Java 客户端,并且近 6 个月有更新,所以选用该客户端。编译之后的二进制文件在 src 目录下。Redis 目前没有官方支持的 Windows 平台版本。
2025-10-20 00:16:48
182
原创 Java Socket 多线程实例
Java 网络编程的客户端和服务端编写都非常简单。客户端使用 Socket 对象与服务端交互;服务端创建 ServerSocket 对象,然后使用accept()方法进行监听,并返回一个Socket的对象。accept 方法是阻塞调用,并将一直阻塞,直到接收到下一个客户端请求为止。非多线程情况下,服务器同时只能服务一个客户端。这通常是不能满足现实需求的。
2025-10-19 23:57:10
343
原创 LRU 算法
如果你去看 LinkedHashMap 的源码可知,LRU 算法是通过双向链表来实现,当某个位置被命中,通过调整链表的指向将该位置调整到头位置,新加入的内容直接放在链表头,如此一来,最近被命中的内容就向链表头移动,需要替换时,链表最后的位置就是最近最少使用的位置。LRU-K 具有 LRU 的优点,同时能够避免 LRU 的缺点,实际应用中 LRU-2 是综合各种因素后最优的选择,LRU-3 或者更大的 K 值命中率会高,但适应性差,需要大量的数据访问才能将历史访问记录清除掉。效率也就非常的慢了。
2025-10-19 23:53:54
980
原创 Socket.IO 聊天应用实例
本篇翻译自。在本篇指导中,我们将创建一个基本的聊天应用。这个应用几乎不要求事先具有 Node.JS 或的基础知识,因此对任意知识水平的用户它都是适合的。
2025-10-17 21:12:49
1037
原创 Socket.IO Java 客户端
是一个非常棒的项目;Java 是目前应用非常广的开发语言。两者的结合也是必然的。本篇翻译自 Socket.IO-client Java 项目的 github 主页。是 Socket.IO v1.x 的 Java 客户端类库,这个类库是从移植过来的。
2025-10-16 15:14:22
385
原创 在 Linux 平台上安装 64 位 JDK
这个二进制文件可以被所有用户安装(不只是 root 用户)在任何有写入权限的位置。但是,只有 root 用户可以安装 JDK 到系统位置。这个过程使用二进制打包文件(.tar.gz)为 64 位 Linux 安装 Java 开发包(JDK)。2. 切换目录到要安装 JDK 的位置,然后移动二进制 .tar.gz 文件到当前目录。本教程使用文件:jdk-8uversion-linux-x64.tar.gz。4. 如果想节省磁盘空间则删除 .tar.gz 文件。如果看到类似上面的信息则说明安装成功。
2025-10-16 15:07:59
314
原创 Windows下Jenkins服务未自动重启问题解决
成功安装 Jenkins 服务后,有时开机后 Jenkins 服务未自动启动。查看 Jenkins 服务安装目录下的日志发现没有服务启动的日志,所以猜测是系统启动后 Jenkins 服务未调起。通过按 Win + R,然后输入 services.msc 并按回车来打开服务管理工具。
2025-10-15 09:16:38
524
原创 Windows11 + Deepin 双系统,卸载 Deepin
注意:务必确认删除的是正确的分区!如果你不确定某个分区是做什么的,不要删除。删除操作会立即永久清除该分区上的所有数据。4. 删除成功后,这些分区会变成“未分配”空间,可以供相邻的磁盘分区扩展使用,或者新建分区。2. 在磁盘管理窗口中,找到并识别出 Deepin 所使用的分区。3. 逐个右键点击这些属于 Deepin 的分区,选择“删除卷…在 Windows 11 中,按。快捷键,选择“磁盘管理”。
2025-10-15 09:00:16
912
原创 Ubuntu 安装 SSH,并开启 root 远程登录
参数值必须是“yes”、“prohibit-password”、“without-password”、“orced-commands-only”或者“no”。如果这个选项设置为“orced-commands-only”,root 用户只允许通过公钥授权登录,但只是指定了 conmmand 选项的时候(这可能对远程备份是有好处的,即使 root 不允许登录)。如果这个选项设置为“prohibit-password”、“without-password”,通过密码和键盘交互的授权方式对 root 用户禁用。
2025-10-14 23:48:38
395
2
原创 Ubuntu SSH 免密码登陆
使用 Ubuntu 系统远程登陆时,一般使用用户名加密码登陆,但这种方式每次需要输入用户名和密码,比较繁琐。我们可以用更具安全性的 RSA 密钥认证方式避免频繁输入用户名和密码。
2025-10-14 23:46:26
583
原创 Jenkins 项目迁移
在 $JENKINS_HOME/jobs/ 目录下,每个任务都有一个对应的文件夹。将需要迁移任务的文件夹复制到新服务器的相同路径下。复制后,需要在 Jenkins 的 “系统管理” -> “读取配置” 页面点击一下,让 Jenkins 重新加载磁盘上的配置。因升级并搭建了新的 Jenkins 环境,所以只迁移原来的 Job。
2025-10-13 10:07:56
676
原创 使用通用二进制文件在Ubuntu上安装MySQL
在安装位置解压下载的二进制包,我的安装位置在 /opt。为了后续访问方便,加压后创建目录软连接。需使用 root 权限进行安装,所以先切换至 root 后进行后续的安装操作。默认的 Socket 文件在 /tmp 目录下,该目录下的文件会被自动清理。在执行初始化时出现上面的错误,这是因为 libaio 库安装位置的问题。注意保存好在初始化过程中会生成 root 用户的随机密码。
2025-10-11 16:56:06
416
原创 [: ==: unary operator expected
显然 [ 和 “scp” 不相等并且缺少了 [ 符号,所以报了这样的错误。检查程序发现是 OPERATION 在声明的时候写错导致的。Shell 脚本报错:“line 10: [: =: unary operator expected”。
2025-09-29 15:12:17
221
原创 Windows 11主机Ubuntu 24.04虚机共享目录权限问题
问题如下图:问题原因是在虚机中挂在目录的属主非系统登陆用户引起的,如下:可通过以下方法解决:在虚机终端执行以下命令,将当前用户添加到 boxsf 组:2. 重启虚机执行上述命令后,需重启虚拟机使权限生效。
2025-09-05 11:33:33
208
原创 双系统通过Grub修改启动顺序
我的双系统是 Deepin + Windows 11。安装完后,默认启动 Deepin。按照以下步骤修改默认启动的系统为 Windows 11。
2025-09-05 09:09:09
700
原创 Deepin 安装 Nginx
安装完成后,Nginx 默认会启动。看到下图所示的 Nginx 欢迎页面则说明安装并启动成功。系统版本:Deepin 23.10。
2025-06-04 21:22:52
489
原创 安装 Nginx
在 Debian/Ubuntu 系统上,为了生效 nginx 仓库的签名,并且消除 nginx 安装过程中丢失 PGP 密钥的告警,必须向 apt 程序密钥环添加用来签名 nginx 安装包和仓库的密钥。对于 Linux 平台,Nginx 安装包 可以从 nginx.org 下载。
2025-06-04 21:21:00
333
原创 Please make sure the TESSDATA_PREFIX environment variable is set to your tessdata directory
根据提示信息,需要设置 TESSDATA_PREFIX 环境变量指向包含 Tesseract 语言数据文件(如 eng.traineddata、fra.traineddata 等)的 tessdata 目录。Linux 下,可以在 /etc/profile 或 ~/.bashrc 中设置环境变量,避免每次临时设置。其他系统下,可自行设置环境变量。再次执行验证,成功!
2025-06-03 21:05:12
287
原创 Linux 下 ChromeDriver 安装
可以通过它驱动浏览器执行特定的操作,如点击、下滑、资源加载与渲染等。Selenium 需要通过浏览器驱动操控浏览器,不同的浏览器对应的驱动不同,Chrome 浏览器的驱动是ChromeDriver,Firefox 浏览器的驱动是 GeckoDriver。要注意的是,浏览器驱动版本必须与计算机上的浏览器版本对应,否则无法正常使用。如果在命令执行后唤起下图所示的浏览器窗口,且无报错,则代表浏览器与驱动程序匹配,可以正常使用。正确显示 ChromeDriver 版本信息,则说明安装正确,可以正常使用了。
2025-06-03 21:02:58
858
2
原创 Linux配置DockerHub镜像源配置
国内可用镜像源一般只包含了基础镜像,如我使用的镜像源中就没有Superset的镜像,使用Docker部署本地试用Superset环境时,只能自行构建镜像,之后的文章再分享部署过程。因为某些原因,DockerHub官方镜像源已不可用,国内一些镜像源也已不可用,大家可以搜索可用的镜像源并修改配置。镜像源不保证一直可用,如不可用自行搜索查找可用的镜像源。
2025-06-02 22:20:37
637
原创 Deepin 20.9社区版安装Docker
注意,一些镜像源缺少对应版本的发行包,可以浏览器访问镜像源查看确定。查看Debian版本列表,10.10版本代号为buster。查看Deepin对应的Debian版本。重启电脑,如果不重启可能会 有问题。如果安装过老版本,确保先卸载。
2025-05-31 18:34:45
592
原创 Deepin 23.10安装Docker
Deepin 是基于 Debian 的国产 Linux 发行版,安装 Docker Desktop 可能会遇到兼容性问题,因为 Docker Desktop 官方主要支持 Ubuntu/Debian/Red Hat/Fedora/Arch 等主流发行版,所以选择安装 Docker Engine。由于 Deepin 基于 Debian,可以使用 Debian 的 Docker 源(需匹配 Deepin 版本对应的 Debian 版本)。需先配置国内镜像源。
2025-05-31 17:24:07
1119
原创 Linux命令行命令自动补全
怀疑是Python版本导致的问题,由于时间关系没继续研究。反正该错误不影响安装和正常使用。由于我的环境没有安装pip,所以先安装。
2025-05-28 21:12:04
243
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅