Jenkins安装启动(JDK8/11/17)

news2024/10/7 10:21:03

目录

  • 传送门
  • 前言
  • 一、概念
    • 1、Jenkins是什么
    • 2、Jenkins 的安装概念图
  • 二、下载
    • 1、下载war包(JDK17环境推荐)
    • 2、下载rpm安装包(JDK8环境推荐)
  • 三、对应JDK8的实际安装(Jenkins2.346.1)
    • 1、安装指令
    • 2、Jenkins2.346.1升级Jenkins2.346.3
    • 3、官网的其他方式安装教程
  • 四、对应JDK17的实际安装(Jenkins2.440.1)
    • 1、安装指令
    • 2、启动
  • 五、启动报错解决
    • 1、第1条
    • 2、第2条
    • 3、第3条(核心解决办法)
      • 3.1、解决方案一(推荐):增加软链接
      • 3.2、解决方案二:修改jenkins.service配置文件
    • 4、第4条
    • 5、第5条
  • 六、访问

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

以CentOS7纯Linux安装Jenkins(非Docker方式),有两个LTS版本的安装教程。一种是支持JDK8的Jenkins2.346-1的LTS版本安装,一种是支持JDK17的Jenkins 2.440.1的LTS版本安装。两种方式有些细节差别。

下面文章不定期更新中。。。

Linux安装JDK17(精品)
Linux安装MySQL(精品)
Linux安装Nginx(精品)
Linux安装Maven(精品)
运行一个jar包(精品)

Jenkins安装启动(JDK8/11/17)
Jenkins配置(插件/角色/凭证)
Jenkins的jdk和maven配置
Jenkins三种构建类型

一、概念

1、Jenkins是什么

在这里插入图片描述
做java开发的,都知道,自己开发的代码要通过svn或者git提交上去,然后运维或者java开发组长去发版测试环境和线上环境,有些大公司还有灰度环境(一般测试环境其实就够了,有些是需要支付回调之类的,是要真实的模拟url和现金账户之类的,所以灰度环境非常逼真,测试环境往往是内网ip地址。有些公司则是线上环境开一个单独的体系,用来测试,二者各有各的好处,也有些公司直接把测试环境当做灰度来用,不用内网ip地址,直接上域名,并且是通过公安备案的那种)。java开发组长或者运维早期,只是在Linux系统上通过指令来控制jar包或者war包的发版,当微服务时代来临以后就不太适合了。因为测试环境的实时提交代码更新测试,要求随时随地可能发版,这可得把运维或者小组长忙死。生产环境发版的谨慎规划等,是否要备份之前的jar包,是否马上就能发生产,是否有脚本要先执行之类的,太多细节了。全制动化工具Jenkins就是来帮忙处理的,只要根据需要配置好Jenkins,不管是普通开发、测试、产品,甚至实习生小白,一键点一下,全搞定。所以Jenkins在java体系学习中,虽然偏向运维或者测试那边,但是个人觉得,还是必须掌握的。不会玩Linux系统的,不是好程序员,不会运维的java开发,真的是缺点什么的。

2、Jenkins 的安装概念图

在这里插入图片描述

这个是比较粗狂的概念图。实际上安装要比这个复杂多了。有Linux系统上安装,有docker方式安装。安装以后还要具体根据自己公司或者个人环境配置端口等等,最好是了解每个环节,吃透搞懂,不然换个环境可能又跑不起来了。

二、下载

1、下载war包(JDK17环境推荐)

官网地址 https://www.jenkins.io/

在这里插入图片描述
Jenkins是一个开源项目,它没有特定的国家或地区归属。Jenkins最初由美国的Kohsuke Kawaguchi创建,并于2004年发起,但随着全球开发者的参与和贡献,Jenkins已经成为一个全球性的开源项目,得到了来自世界各地开发者和组织的支持和贡献。

大家看到英文网站不要慌,也不要急着去翻译。学java很多都是英文网站,其实看的多了,会发现很多规律。什么download这种简易单词总是认识的。真正需要翻译的再去翻译。习惯看英文网站,看多了,其实没有那么恐怖的。

我们点击网页中间那个红色的Download,进入下载界面,注意观察它网站的url,能看出很多东西。学java的都知道老外取名字,很有规律。

英文下载地址 https://www.jenkins.io/download/

在这里插入图片描述
由于这种网站都在实时更新,你打开的可能是更新的版本,我这边是24年3月份打开的网站截图。后面的都是以官网最新的为准。

LTS就是长期成熟稳定支持版本,在很多开源项目中,都是这么叫。像JDK8就是LTS的,JDK9则没有那么长期支持了。Weekly这个叫法也是有意思,反正就是周更版本。通常我们企业级搞Jenkins都是用LTS版本。但是通过这个下载页面,我们并不知道左边的2.440.1LTS到底支持哪些JDK,所以需要看另一个网页。

在这里插入图片描述
英文网站有个好处,蓝色标记的都是新rul地址,记不住的,可以挨个点开看看,总有一个适合你。

我们点击图中我框住的地址,进入新网页。

对jdk的支持列表 https://get.jenkins.io/war-stable/

可以发现网站规律。搞过网站备案的同学(就是自己有个人网站的同学)肯定了解。我这边小小提一下。jenkins.io就是Jenkins的主要域名了。前面的get什么的就是细分小类,结合后面的业务性质的war-stable可以让jenkins.io衍生出很多很多rul地址。简单点,就是前面的是分类,后面的就太多了,可以是特别多的业务的网页,比如写业务A页面、B页面等等。这个stable是成熟稳重的意思。

如果我们去打开右边周更版本的网站地址,会看到url是 https://get.jenkins.io/war/,明显少个stable单词。所以后面大家想灵活在不同环境不同操作系统弄的时候,这些网站规律会一定上帮到很大忙的。别因为下载Jenkins的包下载错了,而浪费很长时间排错。

言归正传,我们回到对jdk的支持列表 https://get.jenkins.io/war-stable/

打开以后
在这里插入图片描述
上面是周更版本,下面是LTS版本,我们主要看LTS版本。
在这里插入图片描述
超经典版本2.346.1,同时支持JDK8、JDK11、JDK17(这三个都是Java的LTS版本,也是企业级开发中用的最多的三个版本,像我们公司就是从JDK8直接升级到JDK17了,所以这种三个版本都支持的Jenkins版本无疑很吸引人,但是坑也是超级多,一个不小心,你的Jenkins就不干活儿了,而且插件不能乱升级) ,后面JDK8的实际安装,我就以这个版本为例子。

在这里插入图片描述
点击进来
在这里插入图片描述
2.346.1版本下载地址 https://get.jenkins.io/war-stable/2.346.1

点击最下面一行jenkins.war,下载war包到你的电脑上。下载的包就是jenkins.war。

如果实在不想看英文的下载网站,这边有Jenkins中文下载网站 https://www.jenkins.io/zh/download/,下载方式一样。

2、下载rpm安装包(JDK8环境推荐)

上面的是下载下来的是war包,还有一种下载下来是安装包,是rpm格式的。

rpm格式下载Jenkins https://mirrors.jenkins-ci.org/redhat/

在这里插入图片描述
这个下载以后的包是 jenkins-2.346-1.1.noarch.rpm,然后上传到你自己服务器。接下来的对应JDK8的实际安装,采取这种方式。采取rpm和直接war包方式差不多。为了更全面的教程,所以这里用rpm方式,rpm毕竟多个安装步骤,多了很多配置文件,这些配置文件可能是避坑的关键所在。

三、对应JDK8的实际安装(Jenkins2.346.1)

Jenkins的安装根据系统和一些环境的不同,甚至Jenkins本身的版本不同,安装方式都不同。笔者这边不考虑window系统的安装,先只考虑Linux系统的安装。然后根据java目前主流的JDK8和JDK17来区分两类安装。说实话两类差别还比较大。我们先看Jenkins2.346.1的安装(注意:它其实是JDK8/11/17都支持的,并且是采取rpm安装包方式,非war包方式)。

特别注意:安装前一定要把jdk8安装好。

1、安装指令

上传
xftp上传到 /usr/local/jenkins中,很多方式可以传到你自己服务器上,这里不细说。笔者我是放到了我自己Linux系统的/usr/local/jenkins文件夹下面了,可以在/usr/local新建个jenkins文件夹。熟悉我的读者可能都知道,我喜欢清楚的分类,知道自己安装的文件到底放到哪里的。将rpm格式下载Jenkins的包拷贝进去,笔者这里是
将 jenkins-2.346-1.1.noarch.rpm包直接放到了Linux服务器的/usr/local/jenkins下面。
cd /usr/local/jenkins

安装,这步之后其实也有了jenkins.war,但是笔者对比发现,这种方式会比直接上传war包多出一些配置文件,而这些配置文件是可能是避坑关键。毕竟2.346.1版本同时支持JDK8/11/17,坑实在太多了,稍微一步不对,后面得花很长时间排错。其实后面启动Jenkins,就是启动这步生成的war包。
rpm -ivh jenkins-2.346-1.1.noarch.rpm

修改Jenkins配置,直接上传war包就没有这个/etc/sysconfig/jenkins配置文件
vim /etc/sysconfig/jenkins
修改内容如下: JENKINS_USER=“root” JENKINS_PORT=“8090”

修改/etc/init.d/jenkins文件 ,配置jdk安装路径,直接上传war包就没有这个/etc/init.d/jenkins 配置文件
whereis java   查询显示 /usr/local/jdk/jdk1.8.0_181/bin/java
vim /etc/init.d/jenkins  下拉到candidates这个变量,然后将java的安装路径(上面查出的路径,到bin/java)添加进去
systemctl daemon-reload     命令重新加载配置文件

增加软链接(关键,其他的都是 yum  java的,我这边是 单独配置的java8,如果你们也是yum方式安装的java,这步可以忽略,我这边是为了下面的报错,必须做这一步,注意前面路径改成你自己的jdk路径)
ln -s /usr/local/jdk/jdk1.8.0_181/bin/java      /usr/bin/java

启动Jenkins
systemctl start jenkins

启动期间一直报错,java环境不对  jenkins: failed to find a valid Java installation
ln -s /usr/local/jdk/jdk1.8.0_181/bin/java /usr/bin/java   (网上各种办法不行,最后这个软链接解决)

启动jenkins后发现端口并没有改为8090,原因和解决办法如下:
# 找到实际的jenkins.service  ,vim后会发现里面很多配置,包括接口都默认了,上面的jdk环境问题,也可能这边指定解决
vim /usr/lib/systemd/system/jenkins.service

# 修改为想要的端口(vim里面找到这行修改)
Environment="JENKINS_PORT=8090" 
# 重新加载配置文件
systemctl daemon-reload
#重启jenkins
systemctl restart jenkins

# 添加开机启动
sudo systemctl enable jenkins

# 查看启动状态
sudo systemctl status jenkins

访问地址:  服务器IP地址:8090   (注意防火墙或者安全组放行8090端口,jenkins默认是8080,这个8080太常用了,为了避免端口冲突,笔者上面才把它改成了8090)

在这里插入图片描述

修改/etc/init.d/jenkins文件 ,配置jdk安装路径
在这里插入图片描述
找jdk安装路径的正确办法,一路链接过去才是真正的安装位置。(下面截图,是有些服务器jdk的安装地址真是深,软链接用了好几个)
在这里插入图片描述
启动成功截图
在这里插入图片描述

ps -ef |grep java # 这个也可以查看,jenkins本身就是个war包

在这里插入图片描述

2、Jenkins2.346.1升级Jenkins2.346.3

注意,适合小版本升级,版本跨级太大,下面方式不一定有效。
在这里插入图片描述
2.346.3版本下载地址 https://get.jenkins.io/war-stable/2.346.3 去下载2.346.3包。

命令行:
whereis  jenkins.war
find / -name jenkins.war    这个找到的更准确,一般是在/usr/share/jenkins目录下

然后将下载好的jenkins.war包拷贝进去,进去之前将原来的备份一下,比如改个名字。这样重新启动Jenkins版本,会发现升级成功。就是这么简单。

3、官网的其他方式安装教程

官网安装教程地址 https://www.jenkins.io/doc/book/installing/linux/

在这里插入图片描述
官网这边有其他的详细的安装教程,只是这里无法精准自己控制版本。下载的是官方推荐的比较新的Jenkins版本。当然里面详细的区分了LTS版本和Weekly周更版本的。注意,官网里面是以JDK17为环境的指令。

四、对应JDK17的实际安装(Jenkins2.440.1)

Jenkins的安装根据系统和一些环境的不同,甚至Jenkins本身的版本不同,安装方式都不同。笔者这边不考虑window系统的安装,先只考虑Linux系统的安装。然后根据java目前主流的JDK8和JDK17来区分两类安装。说实话两类差别还比较大。上面我们看了Jenkins2.346.1的安装(rpm方式),现在我们来用war包方式,来看Jenkins2.440.1的安装(不支持JDK8,支持JDK17,是24年3月的最新支持JDK17的LTS版本)。

特别注意:安装前一定要把jdk17安装好。

1、安装指令

方式一:直接获取最新版

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum install jenkins

方式二:上传指定版本war包安装

上面下载的jenkins.war包通过xftp等工具,上传到你自己的服务器上面,不过上传的位置有严格要求,必须是/usr/share/java目录下
在这里插入图片描述

yum install jenkin

可以看出方式一和方式二差不多。方式一是直接服务器上操作指令,获取了最新版的LTS的war包。方式二是通过自己点击下载网页,下载自己喜欢的war包,可以不是最新版的LTS的war包。

2、启动

sudo vim /usr/lib/systemd/system/jenkins.service

# 修改为想要的端口(vim里面找到这行修改)
Environment="JENKINS_PORT=8090" 
# 重新加载配置文件
systemctl daemon-reload
#重启jenkins
systemctl restart jenkins

# 添加开机启动
sudo systemctl enable jenkins

# 查看启动状态
sudo systemctl status jenkins

访问地址:  服务器IP地址:8090   (注意防火墙或者安全组放行8090端口,jenkins默认是8080,这个8080太常用了,为了避免端口冲突,笔者上面才把它改成了8090)

启动成功截图
在这里插入图片描述

ps -ef |grep java # 这个也可以查看,jenkins本身就是个war包

在这里插入图片描述

五、启动报错解决

systemctl start jenkins   # 启动jenkins,报错会出现下面信息

Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
systemctl status jenkins.service  # 这个是查看jenkins状态,如果没有启动成功,能看到当前最新报错日志

journalctl -xe  #  这个查看的是累积日志

Jenkins启动报错的日志提示真的很扯淡,啥也看不出个啥。
在这里插入图片描述
上面截图基本都是废话信息,什么关键报错信息都没有。
在这里插入图片描述

这个报错信息还稍微有点用,至少能往Java配置那边想一想。

在这里插入图片描述
我们分析一下上面的1-5。

1、第1条

第1条就很扯淡了,反正我是没在我的服务器找到两个日志文件。

find / -name jenkins.log  # 没找到,而且后面正常运行以后也没找到这个文件。可能Debian之类的Linux系统会有。
find / -name jenkins.out # 没找到,而且后面正常运行以后也没找到这个文件。可能Debian之类的Linux系统会有。
# 其实用这个就够了,不过日志实在看不出什么,太坑了
journalctl -xe  #  这个查看的是累积日志

2、第2条

第2条还是比较有用的,端口被占用,确实会启动失败

netstat -nplt   # 查看启动端口,可以跟 |  grep 8080 查看具体一个;netstat -an查看更多

netstat -nplt | grep 8090  # r如果查到了,说明8090被别的需占用了,就换一个其他端口再试,注意新端口放行安全组的和防火墙的。

3、第3条(核心解决办法)

笔者经过多年使用Jenkins,发现最常见启动Jenkins失败,就是JAVA_HOME的配置问题。

下面以JDK17环境为主做案例。JDK8环境的读者类比,都是一样的道理。

首先,安装jdk方式不同导致问题

  • 有些读者,直接使用了yum方式安装jdk17,导致安装下来的是openjdk17,当然这个版本没什么问题的,只是jdk、jre的路径需要whereis java查看确认。
  • 有些读者是使用了Jenkins官网的 sudo yum install fontconfig java-11-openjdk命令来安装的,这种就是版本问题,本来是要弄jdk17环境的,但是下载的jdk确实11版本或者8版本的,虽然Jenkins也能运行起来,但是将来项目的支持埋下了祸患,比如你们公司项目还在用jdk8,那么用jdk17环境的Jenkins会有很多很多坑,反之公司用的jdk17,结果用了jdk8环境的jenkins,jenkins是跑不起公司项目的。
  • 有些读者,比如笔者,则是自己通过下载Oracle的tar.gz包,解压后来的,这种是Oracle的包,和openjdk是不一样的。当然只要都是jdk17的,版本都是没什么问题,只是这种jdk、jre的路径也需要whereis java查看确认好。

上面各种安装jdk方式,会导致jdk、jre的路径五花八门,这也让JAVA_HOME配置出现了很大的问题。

其次,不管什么方式安装,都能统一解决。有多种解决方案,我们挨个来看,读者喜欢哪个就用哪个。

3.1、解决方案一(推荐):增加软链接

查看服务器的环境变量配置文件

vim /etc/profile

在这里插入图片描述
如果没有配置JAVA_HOME,就赶快配置上。必须配置的。这和你window电脑做开发配置JAVA_HOME一个道理。(不管哪个解决方案,这个必须做)

# 在末尾处添加   JAVA_HOME是你安装jdk的路径,你的jdk版本(不一定是17.0.10版本)
export JAVA_HOME=/usr/local/jdk-17.0.10   
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}


// 注意:JAVA_HOME、CLASSPATH、PATH必配置,最好5个变量都配置上。
// JAVA_HOME一定注意是你安装的jdk路径,是你安装的jdk17版本。注意,是bin目录上一层,这里一定要配置对,不然Jenkins是启动不了的。下面有验证命令

刷新一下
source /etc/profile


验证,如果出现java版本号之类的,就成功了,同window电脑一样,那么JAVA_HOME就配置好了。
java -version

接下来查看Jenkins的配置文件,Jenkins不管是rpm或者war包方式,最重要的配置文件就是

/usr/lib/systemd/system/jenkins.service

vim  /usr/lib/systemd/system/jenkins.service

在这里插入图片描述
我们可以看到这个配置文件是配置端口、Jenkins工作目录等的主要配置文件。第一个红框框住的地方,JAVA_HOME前面是用#注释了的,说明配置没有启用。Jenkins启动要依赖jdk,毕竟Jenkins是个war包,上面的英文注释大概意思就是JAVA_HOME的配置路径,如果这个配置为空(就是没有去配置),那么默认的就去JENKINS_JAVA_CMD and PATH这两个变量去找。然后可以发现第二个红框框住的地方也是注释的了。

jenkins启动,找自己配置文件,发现JAVA_HOME、JENKINS_JAVA_CMD都是注释的,去找PATH,发现PATH自己配置文件也没有。启动失败。这边jenkins为什么不去/etc/profile中找JAVA_HOME呢?有知道的小伙伴评论区回复下。/usr/bin/jenkins文件有很多启动运行的配置信息。

cd /etc/alternatives

ll  # 查看当前目录文件列表

在这里插入图片描述

通过截图可以发现,存放了大量的软链接。

解决办法:

# 一般会找到两个文件夹java: /usr/share/java /usr/local/jdk-17.0.10/bin/java
whereis java  
# 增加软链接,我们选择实际安装jdk17的那个目录,长的是笔者实际安装的jdk17目录。/usr/bin/java是软链接名称。
ln -s /usr/local/jdk-17.0.10/bin/java      /usr/bin/java
# 查看ls -lrt /usr/bin/java  ,删除软链接可以用 sudo  rm  /usr/bin/java,慎用删除,删错文件可不好恢复。如果软链接红色闪缩,说明文件不见了并且是失败的链接,比如本例的/usr/local/jdk-17.0.10/bin/java 中java文件不见了,需要重新解压jdk17压缩包,或者重新安装jdk17,有了java文件以后,再看发现红色闪缩消失,软链接也真正成功了。
# whereis java  发现也变了 java: /usr/bin/java /usr/share/java /usr/local/jdk-17.0.10/bin/java

# 启动Jenkins,这下在增加软链接以后,启动成功了
systemctl start jenkins

查看ls -lrt /usr/bin/java 查看软链接
在这里插入图片描述

3.2、解决方案二:修改jenkins.service配置文件

本质思想还是让jenkins启动的时候找到jdk。
在这里插入图片描述

Environment="JAVA_HOME=/usr/local/jdk-17.0.10"

#  注意:双引号要加好,jdk路径要写对,bin上一层目录


# 重新加载配置文件,这个一定要做,不然修改后配置无效
systemctl daemon-reload

# 启动Jenkins,启动成功了
systemctl start jenkins

4、第4条

重新安装是一种尝试方式,不一定能成功,但是可以尝试。重新安装的时候,建议换个版本试一试。

5、第5条

百度一下,你就知道。这个是更好的解决办法了。

六、访问

访问地址: 服务器IP地址:8090 (注意防火墙或者安全组放行8090端口,jenkins默认是8080,这个8080太常用了,为了避免端口冲突,笔者上面才把它改成了8090)
在这里插入图片描述
这个密码哪里看呢,其实指令就可以查看的。

# 查看启动状态,这边是可以看到密码的
sudo systemctl status jenkins    
# 也可以通过进入 页面提示目录  里面直接cat查到密码
cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述
在这里插入图片描述
选择插件安装-》选无-》选 安装 (跳过插件安装,后面换成本地的下载源快很多,国外的插件下载太慢了)
在这里插入图片描述
创建admin管理员账户
在这里插入图片描述
点击使用admin账户继续
在这里插入图片描述
这个url就是jenkins访问地址。点击保存并完成。
在这里插入图片描述
点击开始使用jenkins。用新设置的admin用户登录。如果不能登录,按照下图挨个解决
在这里插入图片描述
备注:第5条 就是 ,如果确认自己设置了admin账户,密码也是对的,怎么尝试都不行的话,就用下admin当用户名,下面查出的长串密码当口令。

# 也可以通过进入 页面提示目录  里面直接cat查到密码
cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述
在这里插入图片描述

前言中有Jenkins的Jenkins配置文章,请点击查看后续处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1707274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java入门基础学习笔记46——String的案例

完成用户登录功能: 需求: 系统的正确的用户名和密码:changchunhua/123456,请在控制台开发一个登录界面,接收用户输入的登录名和密码,判断用户是否登录成功,登录成功后展示:“欢迎进…

2024HBCPC:E Breakfast II

题目描述 作为一个合格的大学生,你不仅需要学习成绩好,还需要会买包子和鸡蛋。 今天,又轮到你们给你的导师买早饭了! 这一次你们一共需要给导师买 n n n 个包子和 m m m 个鸡蛋(请注意,这一次可能不再只…

【class18】人工智能初步----语音识别(4)

【class17】 上节课,我们学习了: 语音端点检测的相关概念,并通过代码切分和保存了音频。 本节课,我们将学习这些知识点:1. 序列到序列模型2. 循环神经网络3. 调用短语音识别接口 知其然,知其所以然 在调用语…

JS——对象

1.什么是对象 对象是什么? 对象是一种数据类型 无序的数据的集合( 数组是有序的数据集合 ) 对象有什么特点? 无序的数据的集合 可以详细地描述某个事物 静态特征 (姓名, 年龄, 身高, 性别, 爱好) > 可以使用数字, 字符串…

数据结构算法题day03

数据结构算法题day03 题目 题目 2.设计一个高效算法&#xff0c;将顺序表L的所有元素逆置&#xff0c;要求算法的空间复杂度为O(1)算法思想&#xff1a; 1、常规的解法&#xff1a; Void reverse (sqlist &L){Elemtype temp; //辅助变量for(i 0,i < L.length; i){temp…

985上交应届生转正12天,被某东辞退了!

&#x1f447;我的小册 45章教程:(小白零基础用Python量化股票分析小册) ,原价299&#xff0c;限时特价2杯咖啡&#xff0c;满100人涨10元。 01.事情起源 最近粉丝群都在转发一个截图&#xff0c;某应届毕业生在某东实习一年&#xff0c;才转正才12天&#xff0c;就因为自己调侃…

kafka-消费者组-发布订阅测试

文章目录 1、发布订阅测试1.1、创建消费者4并指定组 my_group21.2、列出所有的消费者组1.3、查看 my_group2 组的详细信息1.4、发送第六条消息accomplish1.4.1、查看 my_group1 组的详细信息1.4.2、查看 my_group2 组的详细信息 1、发布订阅测试 接着上一篇点对点博客测试 kafk…

【RabbitMQ】使用SpringAMQP的Publish/Subscribe(发布/订阅)

Publish/Subscribe **发布(Publish)、订阅(Subscribe)&#xff1a;**允许将同一个消息发送给多个消费者 **注意&#xff1a;**exchange负责消息路由&#xff0c;而不是存储&#xff0c;路由失败则消息丢失 常见的**X(exchange–交换机)***类型&#xff1a; Fanout 广播Direc…

小白怎么看DDR

有做和参与这么些芯片 虽说每每是片上系统 但是DDR是个远观 没近看的 它们说DRAM长这样 SRAM长这样 可见SRAM更复杂 但是DRAM的控制就不简单了

Web3革命:探索科技与物联网的无限可能

引言 Web3时代正在悄然而至&#xff0c;带来了对互联网的彻底颠覆和改变。作为互联网的下一代&#xff0c;Web3不仅是技术革新的延续&#xff0c;更是对传统互联网模式的重新构想。在这个新时代&#xff0c;科技与物联网的结合将迎来无限的可能性&#xff0c;将探索到一片全新…

CLIP部署:在Ubuntu配置环境

前置背景&#xff1a; 需求是把CLIP模型在实验室Ubuntu服务器上配置环境&#xff0c;有一个老师给的账号和密码&#xff0c;用mobaXterm可以连接上服务器。 首先&#xff0c;需要在自己的文件夹里面下载Anaconda&#xff0c;因为我的账户里面别人已经下过了&#xff0c;所以&am…

Vue3项目练习详细步骤(第一部分:项目构建,登录注册页面)

项目环境准备 工程创建 安装依赖 项目调整 注册功能 页面结构 接口文档 数据绑定和校验 数据接口调用 解决跨域问题 登录功能 接口文档 数据绑定和校验 数据接口调用 优化登录/注册成功提示框 项目演示 项目的后端接口参考&#xff1a;https://blog.csdn.net/daf…

太阳能语音监控杆(球机LED款)有什么用

传统监控设备依赖电力支持&#xff0c;在偏远地区和没有网络地区难以发挥其作用&#xff0c;而鼎跃安全的太阳能语音监控杆&#xff08;球机LED款&#xff09;在传统监控基础上&#xff0c;进行了全面优化&#xff0c;解决了无电无网区域使用受限的问题。 太阳能语音监控杆&am…

Postgresql源码(134)优化器针对volatile函数的排序优化分析

相关 《Postgresql源码&#xff08;133&#xff09;优化器动态规划生成连接路径的实例分析》 上一篇对路径的生成进行了分析&#xff0c;通过make_one_rel最终拿到了一个带着路径的RelOptInfo。本篇针对带volatile函数的排序场景继续分析subquery_planner的后续流程。 subquer…

LeetCode题练习与总结:有序链表转换二叉搜索树--109

一、题目描述 给定一个单链表的头节点 head &#xff0c;其中的元素 按升序排序 &#xff0c;将其转换为平衡二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0&#xff0c;-3,9&#xff0c;-10,null,5]&#xff0c;它表…

eBPF可观测之网络流量控制和管理traffic control浅尝

目录 工程背景 环境准备 安装工具​​​ 安装依赖包 安装C依赖库 操作步骤 目录结构 代码展示 效果展示 拓展提升 工程背景 首先发表一个"暴论" eBPF在可观测方面的应用&#xff0c;就是各种google。 不需要学习内核&#xff0c;只要掌握ebpf开发套路。…

3D应用开发工具HOOPS如何优化复杂3D大模型的实时渲染和交互?

在现代工程设计、仿真和可视化领域&#xff0c;处理和交互大型三维模型&#xff08;3D Models&#xff09;的需求日益增加。随着模型复杂度和数据量的增长&#xff0c;如何有效地管理和实时操作这些模型成为了一个关键挑战。HOOPS技术以其卓越的速度和效率&#xff0c;成为了应…

java项目——图书管理系统

文章目录 前言图书管理系统整体框架&#xff1a;book包user包Main包&#xff1a;iooperation包总结&#xff1a; 前言 针对这些天所学的javaSE的知识&#xff0c;用一个小项目来实践一下。 图书管理系统 整体框架&#xff1a; 采取面向对象的思想实现此项目&#xff0c;首先…

SALOME源码分析:MDF框架

SALOME是由EDF、CEA、Open CASCADE等联合开发的开源CAE集成平台。 作为一款开源CAE软件集成平台&#xff0c;SALOME以其现代化的架构设计、良好的扩展性&#xff0c;提供了几何建模、网格生成、数据同化、求解器调用、后处理可视化、流程管理、作业管理等方面的支持。而这一切…

Shell编程中的循环语句和函数

一、for循环语句 当面对各种列表重复任务时&#xff0c;使用简单的if语句已经难以满足需求&#xff0c;这时就需要for循环语句。for语句的结构为&#xff1a; for 变量 in 取值列表 do 命令序列 done 使用for循环语句时&#xff0c;需要指定一个变量及取值列表&#xff0c;针对…