自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 基础学习(二十)Maven、XML与WebServer

1.1.1 Maven概述Maven是一种流行的构建工具,用于管理Java项目的构建,依赖管理和项目信息管理。它使用XML文件来定义项目结构和构建步骤,并使用插件来执行各种构建任务。Maven可以自动下载项目依赖项并管理它们的版本,从而使开发人员能够更轻松地创建和维护Java应用程序。依赖管理:Maven可以自动下载和管理项目依赖项,从而简化了构建和部署过程插件系统:Maven提供了一个强大的插件系统,使开发人员可以轻松地扩展和自定义构建过程。

2024-03-23 01:12:46 761

原创 Java 基础学习(十九)网络编程、反射

1.1.1 Socket简介在网络编程中,Socket(套接字)是一种抽象概念,它用于在不同计算机之间进行通信。Socket可以看作是一种通信的端点,可以通过Socket与其他计算机上的程序进行数据传输。1.1.2 Java中的套接字编程在Java中,Socket是一个类,可以用于创建客户端和服务器端的网络连接,并进行数据传输。在Java网络编程中,Socket类与IO类常常结合使用。通过Socket类建立网络连接后,可以使用它提供的输入输出流对象来进行数据的读取和写入。

2023-12-27 00:47:16 953

原创 Java 基础学习(十八)多线程进阶、网络编程基础

1.1.1 什么是并发工具包Java并发工具包是指java.util.concurrent(简称JUC),在Java 5 版本中添加。JUC中包含了大量在并发应用开发中非常实用的工具类。行业中说的JUC一般包含java.util.concurrent包、java.util.concurrent.atomic包及java.util.concurrent.locks包中的内容。1.1.2 并发工具包的构成。

2023-12-27 00:29:48 845

原创 Java 基础学习(十七)多线程高级

3.1.1 狭义的线程同步广义的线程同步被定义为一种机制,用于确保两个或多个并发的线程不会同时进入临界区。从该定义来看,线程同步和线程互斥是相同的。狭义的线程同步在线程互斥的基础上增加了对多个线程执行顺序的要求,即两个或多个并发的线程应按照特定的顺序进入临界区。可以简单地总结为,狭义的线程同步是一种强调执行顺序的线程互斥,也称为多线程协作。

2023-12-25 21:22:34 908

原创 Java 基础学习(十六)多线程基础、线程并发安全

2.1.1 什么是线程的状态线程是一个动态执行的过程,它也有一个从产生到结束的过程。线程从创建到执行完毕的整个过程称为线程的生命周期。一个线程对象在其整个生命周期中可能处于5种状态:1、新建状态(New):一个线程对象被创建出来时,该线程对象处于新建状态。2、就绪状态(Runnable):当调用了一个线程对象的start()方法后,该线程对象处于就绪状态。3、运行状态(Running):当CPU执行一个线程对象的run方法时,该线程对象处于运行状态。

2023-12-24 07:00:10 909

原创 Java 基础学习(十五)集合排序、Lambda和Stream

上述代码中,使用count()方法统计流中元素的个数,使用max()和min()方法求出流中的最大值和最小值,使用sum()方法求出流中元素的总和,使用average()方法求出流中元素的平均值。上述API定义在集合类和Collectors类上,可以让我们对流进行过滤、映射、排序、去重、统计、归约等常见的操作,并且提供了并行处理的支持,可以充分利用多核处理器的性能,提高程序的执行效率。需要注意的是,在使用Stream API时,应该避免在操作中修改流中的元素,以免出现意外的结果。

2023-12-20 23:58:58 946

原创 Java 基础学习(十四)Map集合与Set集合

3、如果两个对象被equals()方法判断为不相等,不强制要求它们的hashCode()方法返回不同的哈希码,但是开发者应该了解,返回不同的哈希码有利于提高哈希表的性能。Map接口是一种双列集合。此处需要注意,HashMap并不会直接使用开发者指定的长度作为内部数组的长度,而是会通过一个内部方法,计算大于开发者指定长度的最小的2的幂作为内部数组的长度。4、链地址法:将Hash表的每个单元作为链表的头节点,所有Hash地址为i的元素构成一个同义词链表,即发生冲突时就把该元素链接在该单元为头节点的链表的尾部。

2023-12-19 23:31:33 978

原创 Java 基础学习(十三)集合框架、List集合

增强for循环会按照从头到尾的顺序逐个访问集合或数组中的元素,变量e的值与集合或数组中当前访问的元素的值相同。例如,使用增强for循环访问一个包含了“a”,“b”“c”三个元素的集合,第一次循环时,e的值为“a”,第二次循环时,e的值为“b”,以此类推。但是LinkedList集合不支持随机取值,每次都只能从一端或双向链表中的某节点开始遍历,直到找到查询的对象再返回,由于无法保存上一次的查询位置,因此实现查询操作的效率低下。此时,ArrayList会使用传入的值作为新建的内部数组的长度,源码入下图所示。

2023-12-19 23:13:18 910

原创 Java 基础学习(十二)文本I/O、日期与时间API

1、数据预处理:提取weather_data_ny_201906.csv文件中的"STATION","DATE","MAX"三列的值,写入新的文件data1.csv,新文件中需要表头行,的数据继续使用英文逗号分隔,但是数据前后不再包含双引号。参数pattern是一个字符串,代表日期时间的自定义格式,常用的格式为“yyyy-MM-dd HH:mm:ss”,其中,yyyy表示年份,MM表示月份,dd表示日期,HH表示小时,mm表示分钟,ss表示秒。字符流的底层仍然是基本的字节流,它封装了字符的编码解码算法。

2023-12-17 01:23:57 1151

原创 Java 基础学习(十一)File类与I/O操作

1.1.1 什么是File类File是java.io包下作为文件和目录的类。File类定义了一些与平台无关的方法来操作文件,通过调用File类中的方法可以得到文件和目录的描述信息,包括名称、所在路径、读写性和长度等,还可以对文件和目录进行新建、删除及重命名等操作。对于目录,Java把File类当作一种特殊类型的文件,即文件名单列表。但是File类不能读取文件内容,操作文件内容需要使用输入流和输出流。1.1.2 构建 File 对象通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。

2023-12-17 01:11:18 1350

原创 Java 基础学习(十)包装类、异常

1.1.1 什么是包装类在进行类型转换时,有一种特殊的转换:将 int 这样的基本数据类型转换为对象,如下图所示:所有基本类型都有一个与之对应的类,即包装类(wrapper)。因此,包装类即基本数据类型对应的类。基本数据类型不能直接参与引用类型的使用或计算,使用包装类将基本数据类型转换为引用数据类型,可以参与到其他引用类型的使用。包装类如下表所示:包装类中也提供了一些与类型相关的常用方法,可以简化开发者对基本数据类型的操作。1.1.2 【案例】包装类的赋值示例。

2023-12-14 23:54:34 889

原创 Java 基础学习(九)API概述、Object、String、正则表达式

1.1.1 什么是APIAPI(Application Programming Interface),意为:应用程序接口。API就是已经写好的的程序或功能,程序要需要时可以直接调用,无需再次编写。编程语言API:编程语言中内置的API方法库或框架API:第三方方法库或框架提供的API操作系统API:由操作系统提供的应用程序和操作系统之间的接口远程API:远程 API 允许开发人员通过协议操作远程资源,特定的通信标准允许不同的技术协同工作。

2023-12-14 23:40:34 1082

原创 Java 基础学习(八)多态、接口、造型与内部类

2.1.1 多继承问题讨论接口之前,先看一个物品归类的生活实例:查看这个商品分类,可看出:1、相同类别的商品具有相似特征,且属性类似:比如“新鲜水果“类、”海鲜水产“类2、同类标签便于管理统一存储和调度3、也存在跨类别的分类标签:比如“地方特产“、”国际美食“4、跨类别的分类标签体现了一个物品属于多种类型的现象,这种现象称为“多继承”如果用 Java 代码来表现上述情况,会发现,Java的继承可以实现树形分类,但是无法处理跨类别标签:不过,Java提供了接口,解决了跨类型的继承问题。

2023-12-13 21:49:17 949

原创 Java 基础学习(七)final、static、抽象

什么是抽象类使用抽象关键字abstract声明的类是抽象类,抽象类不能直接实例化创建对象。这个定义看上去非常茫然,究其原因是因为在面向对象设计时候,会利用“泛化”将子类的共同属性和方法抽取出来设计出父类,此时的父类往往是半成品类,只包含部分属性和方法,甚至属性值都没有合理初始化,如下图所示:如果直接创建对象并且使用有可能造成各种不理想结果,甚至是异常故障。可以用抽象父类来解决这个问题。3.1.2 抽象类示例。

2023-12-10 00:33:40 1200 1

原创 Java 基础学习(六)对象数组、继承与访问控制

而通过继承,我们可以将这些共同的属性和方法定义在父类中,子类通过继承获得了父类的属性和方法,无需重复编写,可以减少代码的冗余。使用package即可以解决命名冲突问题,只要保证在同一个包中的类名不重复即可,而不同的包中可以定义相同的类名,例如:test1.Point和test2.Point是两个截然不同的名称,虽然类名相同,但包名不同,亦表示两个完全不同的类。泛化的好处在于代码的重用和简化。同时,当需要修改或扩展共享的属性和方法时,只需要在父类中进行修改,所有的子类都会继承这些变更,减少了维护的工作量。

2023-12-10 00:22:07 833

原创 Java 基础学习(五)面向对象编程-对象和类

1.1.1面向对象简史面向对象编程思想最初的起源可以追溯到1960年的Simula语言,这被认为是第一个支持面向对象编程概念的语言。Simula引入了类、对象、继承等概念,将数据和操作进行封装。Simula的创始人奥利-约翰·达尔(Ole-Johan Dahl)和克利斯登·奈加特(Kristen Nygaard)于2001年获得了图灵奖,以表彰他们对面向对象编程概念的开创性贡献。面向对象编程具有封装、继承和多态等核心特点。封装将数据和操作封装在类中,通过类的实例化创建对象。

2023-12-04 23:44:36 1163

原创 Java 基础学习(四)操作数组、软件开发管理

它的基本思想是从数组的第一个元素开始,依次比较相邻的两个元素的大小,如果前一个元素大于后一个元素,则交换它们的位置,直到整个数组排序完成。2、需求分析:需求分析是相关人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。适用于单个团队的产品管理过程。在产品交付并且投入使用之后,为了解决在使用过程中不断发现的各种问题,保证系统正常运行,同时使系统功能随着用户需求的更新而不断升级,软件维护的工作是非常必要的。

2023-11-28 23:44:09 1274

原创 Java 基础学习(三)循环流程控制与数组

在Java中,数组的长度是指数组中元素的数量。数组的长度是在创建数组时确定的,并且在整个程序执行期间保持不变。要获取数组的长度,可以使用数组对象的 length 属性。

2023-11-28 23:16:49 1038

原创 Java 基础学习(二)运算符与分支流程控制

1.1.1 运算符概述运算符是一种告诉计算机执行特定的数学或逻辑等操作的符号。Java运算符号包括:数学运算符、关系运算符、逻辑运算符、赋值运算符号、字符串连接运算符。计算机本质上只能处理数字,处理数字的最常见的方式就是使用运算符,如:a+b。Java从C语言继承的丰富的运算符:1.1.2 运算符要点单目(元)运算符:比如 a++双目(元)运算符:比如 a+b三目(元)运算符:比如 running?a : b不同的运算符具有不同的优先级,多个运算符组成复杂运算时,优先级高的运算符先行计算。

2023-11-28 00:12:54 874

原创 Java 基础学习(一)Java环境搭建和基本数据类型

例如,一个byte类型的变量代表的值占用1个字节的内存空间(8位),能够表示的10进制整数数据范围是负128到正127,包含0。JDK(Java Development Kit)是用于Java应用程序开发的软件包,包括JRE(Java Runtime Environment)和开发工具,而JRE是运行Java程序所需的运行时环境,JVM(Java Virtual Machine)是在JRE中执行Java字节码的虚拟机。变量本质上代表了内存中的一个存储的区域,这个区域里的数据在同一数据类型中可以不断的变化。

2023-11-27 00:05:03 988

原创 Python 自动化(十八)admin后台管理

django提供了比较完善的后台数据库的接口,可供开发过程中调用和测试使用django会搜集所有已注册的模型类,为这些模型类提供数据管理界面,供开发使用一对一的模型类创建一对一的数据创建一对一的数据查询正向查询反向查询cookies 是保存在客户端浏览器上的存储空间。

2023-11-19 23:29:17 992

原创 Python 自动化(十七)ORM操作

通常不会轻易在业务里把真正的数据删掉,取而代之的是做伪删除,即在表中添加一个布尔类型字段(例如is_active),默认是True;执行删除时,将欲删除数据的is_active字段设置为False注意:用伪删除时,确保显示数据的地方,均增加了is_active=True的过滤查询

2023-11-19 22:52:12 279

原创 Network(五)数值介绍与子网划分

互联网通信协议第6版 (Internet Protocol version 6缩写为IPv6)是互联网协议的最新版本旨在解决IPv4地址枯竭问题。

2023-11-19 21:59:54 118

原创 Network(四)NAT实现方式与VRRP概述

静态转换是指将内部网络的私有地址转换为公有地址时IP地址的对应关系是确定的静态转换是一对一的转换静态转换是双向的当网关路由器出现故障时,本网段内以该设备为网关的主机都不能与其他网络进行通信VRRP定义VRRP是虚拟路由冗余协议VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关实现网关的备份VRRP原理。

2023-11-19 21:08:58 510

原创 Network(三)动态路由与ACL配置

在三层交换机上配置的VLAN接口为虚拟接口,使用Vlanif(VLAN虚拟接口)实现VLAN间路由,VLAN接口的引入使得应用更加灵活三层交换机VLAN间通信的转发过程基于某种路由协议实现,减少了管理任务默认路由是一种特殊的静态路由默认路由的目标网络为 0.0000000,可匹配任何目标地址只有当从路由表中找不到任何明确匹配的路由条目时,才会使用默认路由,一般访问公网时使用格式:[Huawei]lip route-static 0.0.0.0 0 下一跳。

2023-11-19 20:32:58 191

原创 Network(二)VLAN技术与网络层解析

VLAN,Virtual LAN (虚拟局域网)交换机的所有接口默认属于同一个广播域,随着接入设备的增多,网络中广播增多,降低了网络的效率,而使用VLAN可以分割广播域避免该问题VLAN分割广播域广播控制、增加安全、提高带宽利用、降低数据传递延迟基于接口划分VLAN将数据包从一个网络发送到另一个网络路由器可以根据路由表选择路径每个路由器都维护着一张路由表,这是路由器转发数据包的关键每条路由表记录指明了:到达某个网段应从哪个接口发送。

2023-11-14 01:53:07 133

原创 Network(一)计算机网络介绍

为了使数据可以在网络上从源传递到目的地,网络上所有设备需要“讲”相同的“语言描述网络通信中“语言”规范的一组规则就是协议。

2023-11-14 01:06:57 485

原创 高级运维学习(十六)Prometheus 监控

Prometheus是一个开源系统监控和警报工具包,最初由 SoundCloud构建。也是一款监控软件,也是一个时序数据库。Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳以及称为标签的可选键值对一起存储。主要用在容器监控方面,也可以用于常规的主机监控。使用google公司开发的go语言编写。Prometheus是一个框架,可以与其他组件完美结合。Grafana是一款开源的、跨平台的、基于web的可视化工具展示方式:客户端图表、面板插件。

2023-11-13 22:47:32 382

原创 高级运维学习(十五)Zabbix监控(二)

表达式,如内存不足300M,用户超过30个等当触发条件发生后,会导致一个触发事件触发事件会执行某个动作当被监控的设备非常多的时候,手工添加将会变得非常不方便可以使用自动发现功能,实现添加主机、添加到主机组、 链接模板创建自动发现规则创建动作,当主机被发现之后,执行什么操作通过动作,添加主机,将模板应用到发现的主机默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。被动监控:Server向Agent发起请求,索取监控数据。此种模式常用。

2023-11-09 17:24:03 152

原创 高级运维学习(十四)Zabbix监控(一)

Zabbix是一个高度集成的监控解决方案可以实现企业级的开源分布式监控Zabbix通过C/S模式采集监控数据Zabbix通过B/S模式实现Web管理在被控端创建key。被控端被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。在web页面中创建监控项。监控项对应key值。在被控端创建keyUserParameter=自定义key值,命令# 命令的执行结果,是key的value创建自定义配置文件。文件名自定义。验证自定义监控项# 1. 安装zabbix-get。

2023-11-09 16:32:45 337

原创 项目部署(一)堡垒机 jumpserver 的安装以及使用

JumpServer是一款开源的堡垒机,可使系统的管理员和开发人员安全的连接到企业内部服务器上执行操作,并且支持大部分操作系统,是一款非常安全的远程连接工具。

2023-11-09 11:28:30 1120

原创 Python 自动化(十六)静态文件处理

如:图片、音频、视频、css、js等静态文件配置静态文件的相关配置也在文件中进行配置配置静态文件的访问路径【该配置默认存在】功能:通过哪个 url 地址找静态文件说明:指定访问静态文件时是需要通过 /static/xxx 或获取的,xxx表示具体的静态资源位置配置静态文件的存储路径STATICFILES_DIRS:保存的是静态文件在服务器端的存储位置,例如:实验:使用Django显示静态图片资源修改配置文件—文件,添加指定参数配置。

2023-10-31 13:29:39 1055

原创 ELK 日志分析实践

elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTfulAPI的Web接口elasticsearch 的一大优势是拥有集群协调子系统。集群协调子系统可以从只有几个节点的小集群无缝扩展到拥有数百个节点的大集群是一个数据采集、加工处理以及传输的工具2数据可视化平台工具2 特点灵活分析和可视化平台实时流量统计报表种类繁多的数据图表为不同的用户定制分析界面。

2023-10-27 13:29:20 164

原创 Python 自动化(十五)请求和响应

请求是指浏览器端通过HTTP协议发送给服务器端的数据响应是值服务器端接收到请求后做相应的处理后再回复给浏览器端的数据无论是GET还是POST请求,统一都由视图函数接收请求,通过判断request.method属性来区分具体的请求动作样例处理GET请求时的业务逻辑处理POST请求时的业务逻辑else:其他请求业务逻辑处理方式pass# 处理用户提交数据passelse:passreturn HttpResponse("--test get post is ok --")GET处理。

2023-10-24 09:25:51 1112

原创 CICD 流程学习(五)Jenkins后端工程构建

HIS-BACKEND工程配置自动发布。测试HIS-BACKEND工程构建。

2023-10-24 08:39:45 546

原创 CICD 流程学习(四)搜素服务与消息队列

消息消息指的是两个应用之间传递的数据数据的形式有很多,可能是文本字符串,也可能是嵌入对象队列队列是一个数据结构,具有先进先出的特点是存储消息的介质消息队列: MQ(Message Queue)是指利用高效可靠的消息传递机制进行与平台无关的数据交流基于数据通信来进行分布式系统的集成,是在消息的传输过程中保存消息的容器消息队列本质上是一个队列,而队列中存放的是一个个消息是一款基于AMQP协议使用Erlang开发的开源消息队列中间件。

2023-10-16 23:10:12 304

原创 虚拟化技术学习(一)

IaaS: 基础设施服务,Infrastructure-as-a-servicePaaS: 平台服务,Platform-as-a-serviceSaaS: 软件服务,Software-as-a-service。

2023-09-30 00:41:32 83 1

原创 Python 自动化(十四)Django框架

2005年发布,采用Python语言编写的开源web框架早期的时候Django主做新闻和内容管理重量级的Python Web框架,Django配备了常用的大部分组件settings.py 中也可以添加开发人员的一些自定义配置配置建议:名字尽量个性化,以防覆盖掉公有配置例如:ALIPAY_KEY = ‘xxxxxxxx’settings.py中的所有配置项,都可以按需的在代码中引入引入方式:from django.conf import settings。

2023-09-30 00:31:23 304

原创 基础运维(十三)Linux 基础命令

podman generate systemd --name 容器名 --files。–podman ps [ -a 所有容器id ] [ -q 只显示容器 id ]用户--systemctl--》systemd--服务启动配置文件--》容器启动。–podman start|stop|restart 容器id。–podman run -选项 镜像名称:镜像标签 启动命令。–podman run –选项 镜像名称:镜像标签 启动命令。–podman exec -it 容器id 启动命令。

2023-09-29 23:55:21 62

原创 基础运维(十二)Linux 基础命令

Linux系统管理员: 对于Linux系统有最高权限,名字为root,能够登陆Linux系统的用户信息,/etc/passwd进行储存。软件包inotify-tools提供了一个主要程序inotifywait,可以用来监控指定目录或文档的变化,并及时给出通知。数据库系统管理员:对于数据库系统有最高权限,名字为root,能够登陆数据系统的用户信息,由mysql库中user表进行储存。源码包----开发工具gcc与make----》可以执行的程序-----》运行安装。

2023-09-29 17:34:13 48

空空如也

空空如也

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

TA关注的人

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