第二章 环境的选择和安装

news2025/4/5 20:18:04

1、开发环境操作系统

1.1 选择Windows、Mac or Linux

首先明确一点:我们的首要目的是要快速上手使用Elasticsearch(以下简称ES),安装和部署ES并非重点,企业中真正需要你去安装的可能性或者机会非常小。大家可以想一想,对于刚入职的你来说,公司内部一般来说都已经有了一套完整的技术架构,让你亲自动手搭建除非是公司架构重构或者你作为公司技术团队的核心或者运维。

所以关于ES的安装,我们在基础篇不多做介绍,如果的确有需要,我会在进阶篇和运维篇,分别讲解基于CentOS、K8S搭建ES集群、部署ELK等从零到一完整详细讲解。建议大家跟随课程大纲学习,效率更高。

**结论:**建议选择Windows或者MacOS,不推荐Linux图形化界面学习(极客除外)。当然这并非绝对,如果你钟爱Linux图形化界面,并非不可以。但须知道,服务器上使用Linux非图形界面,基于Linux的开发和生产环境的部署方式大相径庭,在开发环境中学习到的Linux安装部署完全不适用于生产环境(生产环境的安装部署在运维篇讲解)。

1.2 选择虚拟机还是本地安装

基础篇内容关于ES安装部署限于Elasticsearch的自动发现和基本配置,集群配置相关内容在进阶篇-Elastic分布式原理中讲解,因此为了更高效的学习,建议基于OS本地多节点的部署方式部署集群,或者单节点模式启动均可。

2、Java版本选择

2.1 ES与JDK兼容性

Oracle/OpenJDK**/AdoptOpenJDK 1.8.0Oracle/OpenJDK** 9Oracle/OpenJDK** 10Oracle/OpenJDK** 11AdoptOpenJDK 11Oracle/OpenJDK** 12Oracle/OpenJDK**/AdoptOpenJDK 13Oracle/OpenJDK**/AdoptOpenJDK 14Oracle/OpenJDK**/AdoptOpenJDK 15Oracle/OpenJDK**/AdoptOpenJDK/Temurin 16Oracle/OpenJDK**/Temurin 17Oracle/OpenJDK**/Temurin 18Oracle/OpenJDK**/Temurin 19IBM J9 (any version)
Elasticsearch 5.0.xXXXXXXXXXXXXX
Elasticsearch 5.1.xXXXXXXXXXXXXX
Elasticsearch 5.2.xXXXXXXXXXXXXX
Elasticsearch 5.3.xXXXXXXXXXXXXX
Elasticsearch 5.4.xXXXXXXXXXXXXX
Elasticsearch 5.5.xXXXXXXXXXXXXX
Elasticsearch 5.6.xXXXXXXXXXXXXX
Elasticsearch 6.0.xXXXXXXXXXXXXX
Elasticsearch 6.1.xXXXXXXXXXXXXX
Elasticsearch 6.2.xXXXXXXXXXXXX
Elasticsearch 6.3.xXXXXXXXXXXXX
Elasticsearch 6.4.xXXXXXXXXXXXX
Elasticsearch 6.5.xXXXXXXXXXXXX
Elasticsearch 6.6.xXXXXXXXXXXXX
Elasticsearch 6.7.xXXXXXXXXXXX
Elasticsearch 6.8.xXXXX
Elasticsearch 7.0.xXXXXXXXXXXX
Elasticsearch 7.1.xXXXXXXXXXXX
Elasticsearch 7.2.xXXXXXXXXXXX
Elasticsearch 7.3.xXXXXXXXXXXX
Elasticsearch 7.4.xXXXXXXXXXX
Elasticsearch 7.5.xXXXXXXXXXX
Elasticsearch 7.6.xXXXXXXXXXX
Elasticsearch 7.7.xXXXXXXXXXX
Elasticsearch 7.8.xXXXXXXXXXX
Elasticsearch 7.9.xXXXXXXXXX
Elasticsearch 7.10.xXXXXXXXXX
Elasticsearch 7.11.xXXXXXXXXXX
Elasticsearch 7.12.xXXXXXXXXX
Elasticsearch 7.13.xXXXXXXXXXX
Elasticsearch 7.14.xXXXXXXXXXX
Elasticsearch 7.15.xXXXXXXXXX
Elasticsearch 7.16.xXXXXXXXXXX
Elasticsearch 7.17.xXXXXXXXX
Elasticsearch 8.0.xXXXXXXXXXXXXX
Elasticsearch 8.1.xXXXXXXXXXXXX
Elasticsearch 8.2.xXXXXXXXXXXXX
Elasticsearch 8.3.xXXXXXXXXXXXX
Elasticsearch 8.4.xXXXXXXXXXXXX
Elasticsearch 8.5.xXXXXXXXXXXX

Java 9、Java 10、Java 12 和 Java 13 均为短期版本。不建议使用。有关 JVM 支持,参考 Oracle 的时间表,网址为:http://www.oracle.com/technetwork/java/eol-135779.html

Elastic 支持部分 OpenJDK 派生的分发版:

  1. 由 IcedTea 项目构建;
  2. 操作系统供应商在“产品和操作系统”矩阵中生产并通过 TCK 测试的产品;
  3. Azul Zulu 从 Elasticsearch 6.6.0 版开始。

结论:

  • 对于ES 8.0 而言,JDK版本只有一个选择,即 JDK 17
  • 对于ES 8.1 及以上版本而言,支持 JDK 17、JDK 18

JDK兼容性:https://www.elastic.co/cn/support/matrix#matrix_jvm

操作系统兼容性:https://www.elastic.co/cn/support/matrix

自身兼容性:https://www.elastic.co/cn/support/matrix#matrix_compatibility

2.2 Java下载

  • 各大版本jdk国内镜像:https://www.injdk.cn/
  • ARM JDK:https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk
  • 程序员大礼包:https://www.programmer-box.com/?ref=jdk_1.8

2.3 不同系统下Java环境的安装

此处略过安装过程,如果无安装jdk基础,可自行百度

另外,从7.x开始,以后的版本ES均自带jdk,所以可即使不安装jdk也可正常运行ES。

3、安装Elastic离线文档

3.1 资源和软件下载

安装教程:Win、Mac 双系统 Elasticsearch离线文档(支持选择版本)安装部署教程

  • Zeal(文档查看工具):

    • Elastic开源社区星球下载链接:

      • Windows:https://t.zsxq.com/bmayvZB
      • Mac:https://t.zsxq.com/6UjmqjI
    • Zeal官网下载链接(速度较慢):https://zealdocs.org/

  • 8.3 版本文档集:

    • Elastic开源社区星球下载链接:https://t.zsxq.com/fYvfeaY

4、下载和安装ES

4.1 SDK下载地址

  • 官方下载: https://www.elastic.co/cn/downloads/past-releases#elasticsearch
  • 开源社区下载站:http://www.elastic.org.cn/download

4.2 Elasticsearch目录结构

目录名称描述
bin可执行脚本文件,包括启动elasticsearch服务、插件管理、函数命令等。
config配置文件目录,如elasticsearch配置、角色配置、jvm配置等。
libelasticsearch所依赖的java库。
data默认的数据存放目录,包含节点、分片、索引、文档的所有数据,生产环境要求必须修改。
logs默认的日志文件存储路径,生产环境务必修改。
modules包含所有的Elasticsearch模块,如Cluster、Discovery、Indices等。
plugins已经安装的插件的目录。
jdk/jdk.app7.x 以后特有,自带的 java 环境,8.x版本自带 jdk 17

5、基础配置

  • cluster.name:集群名称,节点根据集群名称确定是否是同一个集群。默认名称为 elasticsearch,但应将其更改为描述集群用途的适当名称。不要在不同的环境中重用相同的集群名称。否则,节点可能会加入错误的集群
  • node.name:节点名称,集群内唯一,默认为主机名。,但可以在配置文件中显式配置
  • network.host: 节点对外提供服务的地址以及集群内通信的ip地址,例如127.0.0.1和 [::1]。
  • http.port:对外提供服务的端口号,默认 9200
  • transport.port:节点通信端口号,默认 9300

6、开发模式和生产模式

  • 开发模式:开发模式是默认配置(未配置集群发现设置),如果用户只是出于学习目的,而引导检查会把很多用户挡在门外,所以ES提供了一个设置项discovery.type=single-node。此项配置为指定节点为单节点发现以绕过引导检查。
  • 生产模式:当用户修改了有关集群的相关配置会触发生产模式,在生产模式下,服务启动会触发ES的引导检查或者叫启动检查(bootstrap checks),所谓引导检查就是在服务启动之前对一些重要的配置项进行检查,检查其配置值是否是合理的。引导检查包括对JVM大小、内存锁、虚拟内存、最大线程数、集群发现相关配置等相关的检查,如果某一项或者几项的配置不合理,ES会拒绝启动服务,并且在开发模式下的某些警告信息会升级成错误信息输出。引导检查十分严格,之所以宁可拒绝服务也要阻止用户启动服务是为了防止用户在对ES的基本使用不了解的前提下启动服务而导致的后期性能问题无法解决或者解决起来很麻烦。因为一旦服务以某种不合理的配置启动,时间久了之后可能会产生较大的性能问题,但此时集群已经变得难以维护和扩展,ES为了避免这种情况而做出了引导检查的设置,本来在开发模式下为警告的启动日志会升级为报错(Error)。这种设定虽然增加了用户的使用门槛,但是避免了日后产生更大的问题。

7、服务的安装和启动(基于Security开启)

注意

  • ES 8 默认启动Security,这对新手学习很不友好,实际上违背了Elastic官方设置开发模式的初衷,安全固然重要,但是没必要把门槛设置这么高,建议官方在后续更新中,把Security在开发模式中默认关闭,在生产模式下,默认开启。这样更加合理。

  • 本章内容基于默认开启Security进行单机和集群环境部署,在基础学习过程中,本不应该把经历花费在集群安全这件事情上,固然它很重要,但它本身属于运维范畴,而且对于初学者来说学习难度较大,有些本末倒置。对于刚接触ES的同学来说,更重要的应该是学习如何去快速上手和使用ES,让其为自身和公司带来价值。在基础篇中,本课程将不涉及深层次原理和ES运维知识。与ES集群相关的配置,将限于基本配置和原理范围。建议学习者根据自己的的情况选择是否学习本章(服务安装和启动)以及下一章(基于Security构建本地集群)的内容。

  • 本课程将在高手篇:底层原理与源码中讲解ES的分布式原理、高可用性原理等进阶知识,将在运维篇:ES运维及安全详细讲解ES集群的高级用法及详细的集群安全配置教程,基于上述原因,建议初学者跳过第7节内容**。**

7.1 创建ES服务账号

ES不允许使用root账号启动服务,如果你当前账号是root,则需要创建一个专有账户(以下命令均在root账户下执行,windows系统在power shell下执行)。如果你的账号不是root账号,此步骤可以跳过

useradd elastic
passwd elastic
chown -R elastic:elastic {{espath}}

7.2 单节点集群

7.2.1 启动命令

WindowsMacOSLinux
命令行# cd elasticsearch\bin # .\elasticsearch -d# cd elasticsearch/bin # ./elasticsearch -d# cd elasticsearch/bin # ./elasticsearch -d
图形界面在bin目录下双击elasticsearch.bat在bin目录下双击elasticsearch
Shellstart \bin\elasticsearch.batopen bin/elasticsearch

7.2.2 启动日志

ES在 7.x 版本时,控制台输出 started 时代表服务启动成功,和 7.x 版本不同,

ES 8.x 启动之后会输出以下信息,此时服务已经启动成功了。

在这里插入图片描述

首次启动 Elasticsearch 时,会自动进行以下安全配置:

  • 为传输层和 HTTP 层生成 TLS 证书和密钥。
  • TLS 配置设置被写入elasticsearch.yml.
  • 为 elastic 用户生成密码。
  • 为 Kibana 生成一个注册令牌。

红框1:ES为我们生成的elastic账户的默认密码,重要,需要复制记下来

红框2:CA证书的密钥信息,暂时先不管

红框3:ES为Kibana生成的访问令牌,Kibana访问ES服务需要用到。(有效期为 30 分钟)

红框4:ES位其他节点加入集群生成的访问令牌,当前集群中需要加入新节点时,需要携带此令牌(有效期为 30 分钟)

然后您可以启动 Kibana 并输入有效期为 30 分钟的注册令牌。此令牌自动应用 Elasticsearch 集群中的安全设置,使用内置kibana服务帐户向 Elasticsearch 进行身份验证,并将安全配置写入kibana.yml

7.2.3 修改账号密码

在 ES 8.x版本以后,elasticsearch-setup-passwords设置密码的工具已经被弃用删除,此命令为7.x之前第一次生成密码时使用,8.x在第一次启动的时候会自动生密码。

注意:上述(2.5.3截图)内容仅在第一次启动时显示,如果需要修改账户密码,需进行以下操作

bin/elasticsearch-reset-password

[-a, --auto] [-b, --batch] [-E <KeyValuePair]
[-f, --force] [-h, --help] [-i, --interactive]
[-s, --silent] [-u, --username] [--url] [-v, --verbose]

使用此命令重置本地领域中的任何用户或任何内置用户的密码。默认情况下,系统会为您生成一个强密码。要显式设置密码,请使用 以交互模式运行该工具-i。该命令在 文件领域中生成(并随后删除)一个临时用户,以运行更改用户密码的请求。

-a, --auto

将指定用户的密码重置为自动生成的强密码。(默认)

-b, --batch

运行重置密码过程而不提示用户进行验证。

-E

配置标准 Elasticsearch 或 X-Pack 设置。

-f, --force

强制命令针对不健康的集群运行。

-h, --help

返回所有命令参数。

-i, --interactive

提示输入指定用户的密码。使用此选项显式设置密码。

-s --silent

在控制台中显示最小输出。

-u, --username

本机领域用户或内置用户的用户名。

–url

指定工具用于向 Elasticsearch 提交 API 请求的基本 URL(本地节点的主机名和端口)。默认值由 elasticsearch.yml文件中的设置确定。如果xpack.security.http.ssl.enabled设置为true,则必须指定 HTTPS URL。

-v --verbose

在控制台中显示详细输出。

比如

elastic账号自动生成新密码,输出至控制台

bin/elasticsearch-reset-password -u elastic

手工指定user1的新密码

bin/elasticsearch-reset-password --username elastic -i

指定服务地址和账户名

bin/elasticsearch-reset-password --url "https://172.0.0.3:9200" --username elastic -i

7.3 验证服务状态

访问服务

在7.x的版本是通过如下地址访问ES服务:http://localhost:9200/

但是在 8.x 的版本访问会看到如下页面:

在这里插入图片描述

原因解释

这是正常现象,因为 Elastic 8 默认开启了 SSL,将默认配置项由true改为false即可

在这里插入图片描述

推荐做法

关闭SSL虽然可以访问服务了,但这本质上是在规避问题而非解决问题,更推荐的做法是使用https协议进行访问:

https://localhost:9200/,此时如果你的浏览器版本是比较新的版本会出现以下弹窗提示,即:

在这里插入图片描述

解决办法:

在chrome该页面上,直接键盘敲入thisisunsafe这11个字符(鼠标点击当前页面任意位置,让页面处于最上层即可输入,输入时是没有任何提示也不显示任何字符的,直接输入即可按回车即可),然后你会看到如下提示。

输入账号密码验证:

此时输入账号,也就是在 2.5.4 的启动日志中,红框一内的内容,确定即可访问ES服务,至此,单节点ES服务启动成功。

在这里插入图片描述

7.4 构建基于Security的本地集群

向集群中加入新节点

默认情况下,要集群中添加新节点,需要通过令牌来完成节点之间的通信,在第一个节点启动的时候,控制台会输出令牌信息(2.5.3 启动日志中的红框4中的Token),注意启动的时候

bin/elasticsearch --enrollment-token <token> 

//启动的时候替换<token>,不要待带括号 比如:
bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMuMTAwOjkyMDEiXSwiZmdyIjoiMWJkMTE0OWMzMTJjYzc5MGU1ZWU1YTgzZjlhZWRjMmU2MDkyN2Y2MWVkZDA0ZWU0YTAxZTk2MTVlYzJkODhlYiIsImtleSI6Ilo3elc0bjhCVk1ESEdsMmFzdDVNOkZTWVhrMHV3UjgyUzNlTFFERFlkdncifQ==

如下图为一个基于ES 8.x 的三节点集群:

在这里插入图片描述

7.5 部署Kibana

直接启动Kibana服务,控制台显示以下信息

在这里插入图片描述

然后我们访问控制台输出的Kibana的服务地址,在页面提示中输入 7.2.2 红框三中的访问令牌,确定即可。

8、服务的安装和启动(基于Security关闭)

本小节将讲解基于关闭Security的前提下,构建Elasticsearch的基本环境,包括单节点环境和基于自动发现的基本集群环境。并且会收录若干集群使用的基本技巧,这对新手来说可以很大程度上提高学习效率,十分友好。

8.1 关闭Security

前面内容已经多次阐述,ES 8 默认是开启Security的,我们现在需要修改器配置文件使其关闭Security。打开 Config 目录,修改 elasticsearch.yml 文件,删除文件内所有内容,配置以下信息:

xpack.security.enabled: false

此时,配置文件中仅一行代码:

在这里插入图片描述

8.2 启动单机服务

ES不允许使用root账号启动服务,如果你当前账号是root,则需要创建一个ES的专用账户,此步骤课参考 7.1 小节操作。如果当前账户不是root账户,此步骤忽略即可。

8.2.1 启动命令:同 7.2.1

WindowsMacOSLinux
命令行# cd elasticsearch\bin # .\elasticsearch -d# cd elasticsearch/bin # ./elasticsearch -d# cd elasticsearch/bin # ./elasticsearch -d
图形界面在bin目录下双击elasticsearch.bat在bin目录下双击elasticsearch
Shellstart \bin\elasticsearch.batopen bin/elasticsearch

8.2.2 启动日志

服务正常启动,没有报信息会输出elected-as-master,此时集群已经启动成功,访问http://127.0.0.1:9200或者http://localhost:9200即可,注意如果在地址栏手工输入http://,默认可能使用https

看到以下界面,即代表服务启动成功。

在这里插入图片描述

8.3 部署本地集群

在基础篇,不建议基于Linux、docker或K8S部署远程集群,同时在基础篇也不会涉及这些内容的讲解,如需查看基于生产环境的集群部署方案,请移步运维篇

那么推荐初学者基于本地多节点的方式部署,采用自动发现机制来部署集群,也就是不需要配置任何 Discover 模块的配置,也就是说任何和集群配置相关的配置项均保持注释状态,仅仅修改一下集群、节点名称即可。或者不做任何配置亦可。

8.3.1 单项目多节点启动

操作系统命令
LinuxMacOS节点1:./elasticsearch -E path.data=data1 -E path.logs=log1 -E node.name=node1 -E cluster.name=elastic.org.cn节点2:./elasticsearch -E path.data=data2 -E path.logs=log2 -E node.name=node2 -E cluster.name=elastic.org.cn节点N:… …
Windows节点1:.\elasticsearch.bat -E path.data=data1 -E path.logs=log1 -E node.name=node1 -E cluster.name=elastic.org.cn节点2:.\elasticsearch.bat -E path.data=data2 -E path.logs=log2 -E node.name=node1 -E cluster.name=elastic.org.cn节点N:… …

8.3.2 多项目多节点启动

操作系统脚本
MacOSopen /node1/bin/elasticsearch open /node2/bin/elasticsearch open /node3/bin/elasticsearch
windowsstart D:\node1\bin\elasticsearch.bat start D:\node2\bin\elasticsearch.bat start D:\node3\bin\elasticsearch.bat

8.4 部署 Kibana

示例**:**下图中包含一个3节点集群,每个节点都是独立的SDK文件

在这里插入图片描述

**验证服务状态:**浏览器执行 http://localhost:9200/_cat/nodes注意,这里和单节点启动方式不同

优点:配置简单,一劳永逸

缺点:占用较多磁盘空间,因为每个节点都有一套独立的SDK文件,大约几百MB。

9、推荐安装的几款浏览器插件

插件名称插件图标功能介绍下载地址
Elasticsearch Headimg方便查看集群节点数据方便管理和索引、分片支持同时连接多集群Chrome下载|Github下载|安装教程
Elasticsearch Toolsimg方便查看节点资源占用可执行查询语句Chrome下载
Elasticvueimg功能强大对国人友好Chrome下载|Edge下载

10、对于初学者的建议(提高生产力,高效学习方法!)

  1. 有所舍,有所学:学习理论基础不要执着于非要在Linux集群环境下进行,基于Linux环境部署ES服务属于运维范畴,不管是面试还是工作,能让你真正去做这件事的机会很少。在基础阶段,我们更应该把时间花在刀刃上,花在收益比更高的事情上。在基础掌握不牢固的前提下,这样只会耽误更多时间。
  2. 时间花在刀刃上:基础篇课程多以应用技术为主,也就是主要是学习如何去使用ES,不会有太多原理性内容,原理、源码、算法等内容均在进阶篇中包含。学习过程一定要有目标和针对性,要明白自己要做什么,要学会什么。技术的学习的目标要以能“变现”为主,说白了有益于升职加薪,其次才是才是提升技能。如果你提升的所谓技能,对自己将来的工作甚至长远考虑,基本没有机会用到,或者可能性很小,那么一定要把它排在最末优先级。要优先去学习那种“花20%时间学习能提升80%薪资”的内容,其次才是剩下20%,好比一张100分的考卷,最后那20分往往要花更大的代价,甚至远超你学习得80分所需要的知识所花的时间。
  3. 总结

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

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

相关文章

C++运算符重载

运算符重载运算符重载一、重载‘’运算符1.非成员函数版本重载2.成员函数版本二、重载关系运算符三、重载左移运算符四、重载下标运算符五、重载赋值运算符六、重载new和delete1.重载2.内存池七、重载括号运算符八、重载一元运算符运算符重载 C将运算符重载扩展到自定义的数据…

23 张图细讲使用 Devtron 简化 K8S 中应用开发

23 张图细讲使用 Devtron 简化 K8S 中应用开发 在本文中&#xff0c;您将学习如何在多集群环境中使用 Devtron 在 K8S 上进行应用开发。 https://devtron.ai/ Devtron 附带用于构建、部署和管理微服务的工具。它通过提供直观的 UI 和 Helm 图表支持来简化 K8S 上的部署。今天&a…

Java数据结构 | 模拟实现优先级队列

目录 一、前言 二、堆模拟实现优先级队列 2.1 堆的概念 2.2 堆的性质 2.3 堆的存储方式 2.4 堆的创建 一、前言 在前面我们学习过队列&#xff0c;队列是一种先进先出(FIFO)的数据结构&#xff0c;但有些情况下&#xff0c;操作的数据可能带有优先级&#xff0c;一般出队…

mybatis-plus代码生成工具

mybatis-plus版本升级尝试遇到的问题 若遇到高版本&#xff1a;【全局覆盖已有文件的配置已失效&#xff0c;已迁移到策略配置中】or【覆盖已有文件&#xff08;已迁移到策略配置中&#xff0c;3.5.4版本会删除此方法&#xff09;】这句话&#xff0c;可参考文章中解决办法 参考…

python机器人编程——基于单目视觉、固定场景下的自动泊车(下)

目录一、前言二、主要思路step0 设定一个中间位置step1 掉转马头step2 直线匀速前进step3 调整姿态step4 视觉匹配三、效果四、全篇总结一、前言 本篇来讨论一下在固定场景下&#xff0c;如何仅通过单目视觉&#xff0c;实现差速小车的自动停靠&#xff0c;这种方式实现成本比…

_cpp 位图

文章目录1. 位图概念1.1 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中。2. 位图的实现2.1 运行结果&#xff1a;3. 位图应用3.1 具体代码封装实现如下3.2 部分结果演示&#xff1a;3.3 应用总结&#x…

力扣(LeetCode)791. 自定义字符串排序(C++)

排序 这道题只关心 orderorderorder 出现的字符&#xff0c;在 sss 中的排序。 sss 中不在 orderorderorder 的字符&#xff0c;在排序后是什么位置&#xff0c;不影响答案。 可以用 sortsortsort 函数&#xff0c;传入我们自定义的排序方式&#xff0c;按照 orderorderorder …

【JavaSE】类和对象 (二) —— 封装、包以及 static 关键字

目录 1. 封装 1.1 封装的概念 1.2 访问限定符 2. 包 2.1 包的概念 2.2 导入包中的类 2.3 自定义包 2.3.1 包的基本规则 2.3.2 创建一个包 2.4 包访问权限——defualt 3. 何为封装 3.1 private 关键字 4. static 成员 4.1 对学生类的进一步思考 4.2 static 修饰成员变量 4.3 …

计算机毕业设计之java+javaweb的物业管理系统

项目介绍 系统权限按管理员,物业和住户这三类涉及用户划分。 (a) 管理员&#xff1a;管理员使用本系统涉到的功能主要有&#xff1a;首页,个人中心,用户管理,员工管理,房屋类型管理,房源信息管理,房屋预约管理,订单信息管理,我的收藏管理,系统管理等功能。 (b) 住户&#xf…

基于单片机的导盲拐杖设计

目 录 引言 1 1 系统概述 1 1.1 设计研究的背景和意义 1 1.2 本次设计内容 1 2 系统设计的整体方案 2 2.1 主控芯片的方案论证 2 2.2 显示模块的方案论证 3 2.3 本章小节 4 3 系统硬件电路设计 4 3.1 单片机最小系统的电路设计 4 3.1.1 STC…

李峋同款爱心代码!跳动的心,给你爱的人一个惊喜!

Hello 大家好 如何浪漫的表白&#xff0c;作为程序员出身的小编&#xff0c;今天就带你实现热播剧《点燃我&#xff0c;温暖你》中超火的李峋同款爱心代码&#xff01;前面是教程&#xff0c;怕麻烦的朋友可以直接划到文末&#xff0c;下载现成的&#xff0c;下载完成后打开就可…

java毕业设计基于的校园头条新闻管理系统的设计与实现(附源码、数据库)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

【Linux】基础:进程地址空间

【Linux】基础&#xff1a;进程地址空间 摘要&#xff1a;本文首先通过复习关于C语言内存空间的知识来做实验提出问题&#xff0c;从而引入进程的地址空间。需要理解的是进程地址空间的组织形式与其表示意义&#xff0c;在需要理解如何完成进程地址空间的划分以及关键对应物理内…

C++12 ---对象于对象的关系

一、对象于对象的关系 在一个系统中&#xff0c;一个对象可能与不同的对象相关&#xff0c;以下是不同的关系。 依赖(Dependency) (使用一个) 关联(Association) (使用一个) 聚合(Aggregation) (有一个) 组合(Composition ) (有一个&#xff0c;"用..来实现") …

从Matlab实例学习遗传算法

文章目录前言问题背景遗传算法Matlab实例代码附录君主方案遗传算法解决旅行商问题前言 本文旨在使用智能优化算法及其MATLAB实例&#xff08;第2版&#xff09; 一书中的例子&#xff0c;来透彻理解遗传算法的本质。 问题背景 目标&#xff1a; 求解最大化函数 f(x)x10sin⁡…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java星光之夜香水网站的设计与开发bfmcr

大学计算机专业毕业的&#xff0c;实际上到了毕业的时候&#xff0c;基本属于会与不会之间。说会&#xff0c;是因为学了整套的理论和方法&#xff0c;就是所谓的科班出身。说不会&#xff0c;是因为实践能力极差。 不会的问题&#xff0c;集中体现在毕设的时候&#xff0c;系…

CTFSHOW菜狗杯 web

文章目录web签到web2 c0me_t0_s1gn我的眼里只有$抽老婆一言既出驷马难追TapTapTapWebshell化零为整无一幸免传说之下&#xff08;雾&#xff09;算力超群算力升级2遍地飘零茶歇区小舔田&#xff1f;LSB探姬Is_Not_Obfuscate龙珠NFTweb签到 eval($_REQUEST[$_GET[$_POST[$_COOK…

Ubuntu22.04虚拟机配置双网

文章目录Ubuntu22.04虚拟机配置双网一、 虚拟机网络1、 简介1.1 概述1.2 四种网络2、 配置双网2.1 NAT2.2 主机模式3、 添加到虚拟机二、 ubuntu设置Ubuntu22.04虚拟机配置双网 一、 虚拟机网络 1、 简介 1.1 概述 近期在使用VirtualBox的时候遇到这样的场景&#xff0c;我…

Docker(五)—— 镜像原理、容器快照commit

一、如何得到镜像 1&#xff09;从远程仓库下载 2&#xff09;朋友/同事拷贝给你 3&#xff09;自己制作DockerFile 二、联合文件系统 Docker的镜像是由一层层的文件系统组成&#xff0c;这种层级的文件系统叫做联合文件系统UnionFS。 三、Docker镜像加载原理 1. bootfs:…

第十四届蓝桥杯校内模拟赛第一期——Python

第十四届蓝桥杯校内模拟赛第一期——Python 文章目录第十四届蓝桥杯校内模拟赛第一期——Python1.二进制位数问题描述参考答案扩展2. 晨跑问题描述参考答案扩展3. 调和级数问题描述参考答案4. 山谷问题描述参考答案5. 最小矩阵问题描述参考答案6. 核酸日期问题描述输入格式输出…