自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 Linux系统文件压缩与解压缩教程:一站式指南

本教程详细介绍了Linux系统中常用的文件压缩与解压缩工具,包括gzip、tar和zip的使用方法和示例代码。通过学习这些工具的基本命令,您可以在Linux系统中轻松进行文件压缩和解压缩操作,以节省磁盘空间并方便文件的传输和备份。希望本教程对您在Linux系统中进行文件压缩与解压缩有所帮助。

2023-12-19 14:56:21 426

原创 Linux vi编辑器详解:掌握文本编辑的利器

在Linux系统中,vi是一款强大而受欢迎的文本编辑器。它提供了丰富的功能和快捷键,使得编辑和修改文本文件变得高效而便捷。本教程将详细介绍vi编辑器的使用方法,并提供一些代码示例来帮助您快速上手。

2023-12-06 09:03:01 153

原创 Linux教程:使用命令行查看文件内容

在Linux系统下,我们可以使用多种命令行工具来查看文件的内容。本教程介绍了catlesshead和tail等常用命令的基本用法和选项。使用cat命令可以一次性显示整个文件的内容,或连接多个文件并显示它们的内容。使用less命令可以以交互式方式浏览文件的内容,并提供导航和搜索功能。使用head命令可以查看文件的前几行内容。使用tail命令可以查看文件的后几行内容。根据您的具体需求,选择适合的命令和选项来查看文件的内容。熟练掌握这些命令将使您更加高效地处理文件和调试问题。

2023-12-04 08:52:18 184

原创 Linux路径指南:理解和操作文件路径

路径在Linux系统中是定位和访问文件或目录的关键概念。本教程介绍了绝对路径和相对路径的概念,以及一些常用的路径操作命令。还展示了如何在Shell脚本中使用路径变量来进行文件和目录操作。掌握这些知识将帮助您更好地理解和操作Linux系统中的路径。

2023-11-30 08:50:53 109

原创 Linux教程:创建目录和文件

在Linux中,使用mkdir命令可以创建目录,使用touch命令可以创建文件。通过使用-p选项,可以创建嵌套的目录结构。使用chmod命令可以设置目录和文件的权限,而umask命令可以设置默认的权限掩码。创建目录和文件是Linux中常见的操作,对于组织和管理文件系统非常重要。通过掌握这些基本命令,您可以在Linux系统中轻松创建和管理目录和文件。

2023-11-29 10:06:02 1058

原创 初识Linux:入门指南和基本操作

Linux是一种基于UNIX的操作系统,它具有稳定性、安全性和可定制性的特点。Linux被广泛用于服务器、嵌入式设备和个人电脑等各种领域。本教程为您提供了Linux的入门指南和基本操作。您学会了如何登录和退出Linux系统,以及如何进行文件和目录操作。我们还介绍了两个常用的文本编辑器和一些常用的命令示例。Linux是一个功能强大的操作系统,掌握基本的操作和命令将帮助您更好地使用和管理Linux系统。随着您的学习深入,您将学习更多高级的Linux操作和命令,如软件安装、网络配置、进程管理等。

2023-11-27 17:42:21 25

原创 使用MySQL实现“附近的人“功能

使用MySQL数据库可以很好地实现"附近的人"功能,通过存储和查询用户的地理位置信息,我们可以找到附近的其他用户并展示给用户。"附近的人"功能能够满足这一需求,它通过用户的地理位置信息来查找附近的其他用户,并展示给用户。通过计算用户之间的距离,并设置一个合适的距离阈值,我们可以筛选出距离用户所在位置一定范围内的其他用户。这只是一个简单的示例,实际应用中可能还需要考虑更多的因素,例如用户隐私的处理、查询性能的优化等。"附近的人"功能是现代社交网络应用中常见的一项功能,它允许用户查找并连接附近的其他用户。

2023-11-07 13:26:39 126

原创 MySQL历史版本、发行时间、新特性

请注意,这里列出的是每个版本的一些主要新特性,并不包括所有的改进和修复。如果你对特定版本的详细特性感兴趣,建议查阅MySQL官方文档或版本发布说明。

2023-08-28 09:02:24 425

原创 Haversine公式:用于计算两个球面位置之间的球面距离

然而,对于较长距离,特别是跨越大片陆地或海洋的距离,Haversine 公式可能会引入一定的误差。需要注意的是,Haversine 公式是一种近似计算方法,适用于许多实际应用中的球面距离计算。然而,对于更高精度的计算,特别是在大范围内或需要考虑地球形状的其他因素时,可能需要使用更复杂的算法或地理空间扩展。Haversine 是一种常用的球面三角函数,用于计算两个球面位置之间的球面距离。它是根据地球的球体模型进行计算的,可以用于近似计算两个经纬度坐标之间的球面距离。

2023-08-28 08:44:32 1899

原创 MySQL的ST_Distance_Sphere函数

类型的参数表示两个地理位置点,分别是纽约(经度 -74.0059,纬度 40.7128)和洛杉矶(经度 -118.2437,纬度 34.0522)。函数是一个地理空间函数,用于计算两个地理位置之间的球面距离。函数进行球面距离计算需要 MySQL 版本 5.7.6 或更高版本,并且需要在数据库中启用地理空间功能。函数的返回值是以米为单位的球面距离。函数仅适用于球面距离的近似计算,并且可能不适用于较长距离或需要更高精度的计算。函数来计算这两个点之间的球面距离,并将结果命名为。在上述示例中,我们使用。

2023-08-28 08:41:46 1467

原创 RabbitMQ名字的由来

RabbitMQ 的设计目标之一是提供快速和可靠的消息传递机制,以支持分布式系统和应用程序之间的通信。消息队列是 RabbitMQ 的核心概念之一。RabbitMQ 作为一个强大的消息队列系统,提供了丰富的功能和灵活的消息传递模式。综合来说,RabbitMQ 这个名字将兔子的快速和敏捷特性与消息队列的功能特点结合在一起,形象地表达了 RabbitMQ 在快速、可靠的消息传递方面的能力。RabbitMQ 的名字由来是结合了两个元素:兔子(Rabbit)和消息队列(Message Queue)。

2023-08-18 09:04:18 90

原创 接口流量突增,如何做好性能优化?

今天我们分享了 Tomcat 的核心组件,接着讲解了 Tomcat 处理请求过程时的 3 个核心参数及其调优经验。对于 maxThreads 参数而言,如果按照公式计算的话,我们需要获取 IO 时间和 CPU 时间,但实际上这两个值并不是很好获取。所以一般情况下,我们可以通过压测的方式来获得一个比较合适的 maxThreads。对于 maxConnections 参数而言,可以设置一个与 maxThreads 相同的值,再根据具体情况进行调整。

2023-06-10 17:01:58 118 2

原创 Java Optional

在java中,空指针一直是开发者们十分头疼的一个ERROR,你永远也不知道你的程序会在何处抛出空指针异常,为了更优雅的处理代码中的空指针问题,java引入了Optional这一类型,Optional 是Java 8之后引入的一个新的类型,用于表示一个可能为空的值。它的设计目的是帮助我们在程序中,避免 null 异常。希望这些代码能够帮助更好地理解Optional的概念。总之,Optional是一种有用的类,可以帮助处理可能为空的值。

2023-05-10 11:26:13 77

原创 Java CompletableFuture

JDK 8 是一次重大的版本升级,新增了非常多的特性,其中之一便是 CompletableFuture。自此从 JDK 层面真正意义上的支持了基于事件的异步编程范式,弥补了 Future 的缺陷。在我们的日常优化中,最常用手段便是多线程并行执行。这时候就会涉及到 CompletableFuture 的使用。

2023-04-03 08:40:27 111 2

原创 【创作赢红包】Java8中的Map函数

java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,一起来看看吧。

2023-04-01 14:09:42 197

原创 【创作赢红包】Spring注释大全

本文我们通过代码打印出了大部分Spring相关的注解,你也可以通过这个方式熟悉其它框架的注解(毕竟注解是框架赋予我们各种便捷功能的一个重要入口,对注解了解个八九成也往往可以对框架赋予我们的丰富功能了解六七成)。然后我们梳理了一下Spring相关的各种注解,其中主要需要关注的是几方面:元注解,也就是注解的注解Spring容器相关的一些注解,包括@Qualifier、@AliasFor、@Order等看似不重要但其实很重要的注解Spring Java配置相关的一些注解,包括条件注解。

2023-04-01 14:05:08 55

原创 单例模式(Singleton Pattern)

单例模式是最常用的设计模式之一。它可以确保在整个应用程序中,某个类只有一个实例存在,并提供一种访问这个实例的全局访问点。单例模式在需要限制某些类的实例数量时非常有用。它通常用于需要全局访问的资源,如配置文件、日志记录器、数据库连接等。应用场景日志记录器 在一个应用程序中,通常会有多个模块或类需要记录日志。为了避免创建多个日志记录器实例,使用单例模式可以确保只有一个日志记录器实例,从而避免重复记录日志并提高应用程序的性能。

2023-03-31 08:18:55 80

原创 Spring中的@Autowired注解

这种情况不用多说了,值得注意的是,默认情况下,因为@Autowired中的required属性为true,表示强制依赖,如果更加某个属性找不到所依赖的Bean是不会赋null值的,而是会报错,如果把required属性设置为false,则会赋null值。对于@Autowired写在构造方法上的情况,跟Spring选择构造方法的逻辑有关,一个类中是不是有多个构造方法,是不是加了@Autowired注解,是不是有默认构造方法,跟构造方法参数类型和个数都有关系,后面单独来介绍。

2023-03-31 08:12:28 79

转载 Python:6. Modules(模块)

为了加快加载模块的速度,Python 缓存了每个模块的编译版本 在名称下的目录中 , 其中版本对编译文件的格式进行编码;例如,模块名称指定子模块 在名为 的包中命名。就像使用模块可以节省 不同模块的作者不必担心彼此的全局 变量名,使用虚线模块名省去了多模块的作者 像NumPy或Pillow这样的软件包不必担心 彼此的模块名称。因此,如果更改模块,则必须重新启动 解释器 – 或者,如果它只是您想要交互式测试的一个模块, 使用 importlib.reload(),例如 import importlib;

2023-03-30 08:15:04 184

转载 Python:5. Data Structures(数据结构)

如果一个序列是另一个序列的初始子序列,则 较短的序列是较小(较小)的序列。元组是不可变的,通常包含 通过解包(请参阅本节后面的内容)或索引访问的元素 (甚至在命名元组的情况下按属性)。列表是可变的,它们的元素通常是同质的,并且 通过循环访问列表。它们可以是带或不带周围环境的输入 括号,尽管括号通常是必需的(如果元组是 较大表达式的一部分)。提取值是错误的 使用不存在的密钥。常见的应用程序是制作新列表,其中每个元素都是 某些操作应用于另一个序列或可迭代对象的每个成员,或 创建满足特定条件的元素的子序列。

2023-03-30 08:11:17 227

原创 CentOS7安装JDK8

官方下载页面:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html。将下载好的jdk文件传至。

2023-03-30 08:07:42 50

原创 VMware安装CentOS7后设置静态IP

找到【NAT模式】的网络,没有则添加。勾选【将主机虚拟适配器连接到此网络】,并设置子网IP(选中【网络适配器】,右侧的网络连接,选择【NAT模式】右击安装好的虚拟机(CentOS7),选中【设置】点击【NAT设置】,设置网关IP(设置子网掩码,与上面配置保持一致。点击【编辑】-【虚拟网络编辑器】设置网关,与上面配置保持一致。

2023-03-30 08:06:04 220

原创 JUC 之 Lock 锁

Lock。

2023-03-29 08:36:52 62

原创 Kafka集群环境的搭建与详解

Kafka 使用 Zookeeper 来保存集群的元数据信息和消费者信息,所以要先安装 Zookeeper。下面来看Kafka Broker的安装和集群环境的配置。为每个broker的标识符,可以设置为任意整数,这个值必须在整个kafka集群中保持唯一。上面操作在一台虚拟机中进行即可,配置好后,分发至另外两台虚拟机(scp命令需要输入密码)上面操作在一台虚拟机中进行即可,配置好后,分发至另外两台虚拟机(scp命令需要输入密码),其中2.13为Scala版本,2.5.0为Kafka版本。

2023-03-29 08:35:03 352 1

翻译 Python:4. More Control Flow Tools(更多控制流工具)

因此,全局变量和封闭函数的变量 不能在函数中直接赋值(除非,对于全局 变量,在全局语句中命名,或者,用于封闭变量 函数,在非本地语句中命名),尽管它们可能是 引用。方法是一个“属于”对象的函数,被命名为 ,其中是某个对象(这可能是一个表达式), 和 是由对象的类型定义的方法的名称。当与循环一起使用时,该子句与 try 语句的子句比与 if 语句的子句有更多的共同点:try 语句的子句运行 当没有发生异常时,循环的子句在未发生时运行。因此,参数是 使用按值调用传递(其中值始终是对象引用, 而不是对象的值)。

2023-03-28 08:37:27 96 1

翻译 Python:3. An Informal Introduction to Python(对 Python 的非正式介绍)

标准比较运算符 写法与 C 相同:(小于)、(大于)、(等于)、(小于或等于)、(大于或等于) 和(不等于)。它不同于仅仅编写您想要编写的表达式(就像我们所做的那样) 在计算器示例的前面)处理多个参数的方式, 浮点数量和字符串。记住切片工作原理的一种方法是将索引视为字符之间的指向,第一个字符的左边缘编号为 0。从 i 到 j 的切片由标记为 i 和 j 的边缘之间的所有字符组成, 分别。整数(例如、、)的类型为 int, 带有小数部分(例如 )的那些具有浮点类型。

2023-03-28 08:27:41 54

原创 发布/订阅系统

消息的发布者与订阅者是一个一对多的关系,即一个发布者可以有多个订阅者。你可以理解为微信的公众号,当你使用微信关注(订阅)了一个公众号后,该公众号有了新的消息会推送给你,而你未关注的公众号是不会给你推送消息的。发布者将消息发送到一个中间的消息代理,订阅者向该消息代理注册订阅,由消息代理来进行过滤。消息(Message)的发送者不会直接将消息发送给接收者,而是将消息分为不同的类别,接收者订阅它们,以便接收特定类型的消息。当发布/订阅系统有了更多的应用后,消息的种类也变得繁多,订阅者不可能接收所有消息。

2023-03-28 08:17:49 186

原创 十分钟入门Kafka

Apache Kafka 是由 Apache 软件基金会开发的一个开源的分布式流处理平台,由 Scala 和 Java 编写。该项目的目标是为了处理实时数据提供一个统一、高吞吐、低延迟的平台。其本质上是一个分布式发布订阅消息系统,它可以作为企业级基础设施来处理流式数据。Kafka 最初是由 Linkedin 开发,并随后于2011年初开源,并于2012年10月23日由 Apache Incubator 孵化出站。

2023-03-28 08:16:19 61

翻译 Python:2. Using the Python Interpreter(使用 Python 解释器)

使用 -m 模块时,设置为 的全名 定位模块。在 -c 命令或 -m 模块之后找到的选项不会被 Python 解释器的选项处理使用,而是 留给命令或模块处理。在那 编码,世界上大多数语言的字符可以同时使用 在字符串文字、标识符和注释中——尽管标准库 仅使用 ASCII 字符作为标识符,这是任何可移植代码的约定 应该跟随。要正确显示所有这些字符,编辑器必须 认识到文件是 UTF-8,并且它必须使用支持所有 文件中的字符。启动解释器的第二种方法是 , 它执行命令中的语句,类似于 shell 的 -c 选项。

2023-03-27 11:16:27 171 1

翻译 Python:1. Whetting Your Appetite(吊起你的食欲)

另一方面,Python 还提供了比 C,并且,作为一种非常高级的语言,它具有构建的高级数据类型 中,例如灵活的数组和字典。Python是可扩展的:如果你知道如何用C编程,那么很容易添加新的 解释器的内置功能或模块,以执行关键 以最大速度操作,或将 Python 程序链接到可能 仅以二进制形式提供(例如特定于供应商的图形库)。本教程的其余部分介绍了 Python 语言的各种功能,并且 通过示例进行系统,从简单的表达式、语句和数据开始 类型,通过功能和模块,最后触及高级 异常和用户定义的类等概念。

2023-03-27 11:09:46 44

原创 23种设计模式(中英文对照)

将这些对象连成一个链,并沿着这条链传递请求,知道有对象处理它为止。门面模式(Facade Pattern)Provide a unified interface to a set of interface in a subsystem.Facede defines a higher-level interface that makes the subsystem easier to use.(要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。工厂方法是一个类的实例化延迟到其子类。

2023-03-27 09:44:25 363

原创 Python动态网页抓取

中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/下载地址:http://npm.taobao.org/mirrors/chromedriver/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/阿里云 https://mirrors.aliyun.com/pypi/simple/安装Selenium。

2023-03-27 09:43:44 91 2

原创 Spring IoC 源码解析

/ 为刷新做好准备:设置启动时间、活动标志及初始化属性资源 prepareRefresh();// 获取新的bean工厂(刷新) ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();// 准备上下文的bean工厂:比如类加载器、后置处理器、bean的默认环境。try {// Bean工厂的后置处理器 postProcessBeanFactory(beanFactory);

2023-03-27 09:42:48 54

原创 Python变量

如果在函数内部创建具有相同名称的变量,则该变量将是局部变量,并且只能在函数内部使用。变量可以使用短名称(如 x 和 y)或更具描述性的名称(age、carname、total_volume)。通常,在函数内部创建变量时,该变量是局部变量,只能在该函数内部使用。变量名称区分大小写(age、Age 和 AGE 是三个不同的变量)另外,如果要在函数内部更改全局变量,请使用 global 关键字。要在函数内部创建全局变量,您可以使用 global 关键字。在函数外部创建的变量(如上述所有实例所示)称为全局变量。

2023-03-27 09:29:31 30

原创 Python 中 JSON 的使用

Python 中如何使用 JSON,以及如何转换成 JSON 字符串

2022-06-12 23:16:38 322

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除