linux上如何搭建Java环境

news2025/1/18 10:45:05

一 linux软件安装常用的方式对比

Linux下的软件安装,主要有如下三种,“正规”程度依次递减:

1、使用标准的yum/apt/yast包管理程序安装

2、使用标准rpm/deb或厂商自己的安装包(比如nVidia的显卡驱动用的bin包)安装

3、直接解压软件开发者的tar.gz包

其中:

1、使用标准的yum/apt/yast包管理程序安装

这种安装方式相当于苹果/安卓平台上的“应用商店”安装,是最安全可靠的安装模式

通过这种方式安装的软件,不仅完全契合你的操作系统本身,而且可以保证和系统其他软件包的相容性,一般来说是不可能遇到冲突的。yum并不是一种包,它是安装包的一个软件,在CentOS中是软件包的管理器,yum也对依赖关系进行管理,但是必须要在联网的情况下完成。

Linux有很多发行版;其中一些面对服务器的版本会非常保守,里面的每一个软件都会经过连续多年的测试,稳定度极高。但相应的,这里面的软件就会老旧一些。

优点:安装方便,稳定度极高,与系统兼容性好

缺点:需要联网,有些软件版本老旧或没有

2、使用标准rpm/deb或厂商自己的安装包(比如nVidia的显卡驱动用的bin包)安装

rpm包安装几乎在所有Linux平台上都支持,它就像Windows下的exe安装文件一样,各种文件已经编译好,并打包,哪个文件在哪个文件夹里面都已经被指定好,所以很方便。但可能会因为你用了过新/过旧的安装包而和系统其他部分产生相容性问题——比如系统用python2.4你到网上拖了个python3或python1.5、又强行把它装上去还附加到路径最前,那么很可能就会造成其他依赖python的软件出现混乱。

优点:安装方便

缺点:兼容性没有yum方式好

3、直接解压软件开发者的tar.gz包

这种类似于Windows的“免安装绿色版”软件。

你可以把它解压到你自己的用户目录,然后在自己的bash.rc之类配置文件中,用export把它加入path——这样你才可以直接在shell中敲它提供的新命令。

优点:文档齐全

​ 因为可以定位到代码,所以debug方便

​ 本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)

缺点:编译麻烦

​ 缺乏自动依赖管理,软件升级麻烦

二 如何安装JDK

Author:呆萌老师 QQ:2398779723 微信 it_daimeng

1 yum常用命令

注:yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum常用命令

1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:
    yum install <package_name>     找到安装包之后,询问你Is this OK[y/d/N],需要你手动进行选择
    yum -y install <package_name>  如果加上参数-y,就会自动选择y,不需要你再手动选择
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包 命令:yum search <keyword>
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

2. 如何卸载系统自带的JDK

列举匹配已安装的java的软件包:yum list installed | grep java

或者yum list installed | grep jdk (比如用rpm安装的jdk,需要搜索jdk才能找到)

也可以用 rpm -qa | grep java 或 rpm -qa | grep jdk

在这里插入图片描述

卸载安装的jdk:yum -y remove java-1.8.0-openjdk*

在这里插入图片描述

在这里插入图片描述

当结果出现了完毕!,就表示卸载成功。

3 三种安装方式

推荐第二种

3.1方法一:利用yum源来安装jdk

优点:安装方便,不需要配置环境变量
缺点: 只能安装yum库中自带的openjdk版本,不能安装sun公司的jdk版本

查看yum库中的java安装包 :yum -y list java*

在这里插入图片描述

在这里插入图片描述

​ 安装需要的jdk版本的所有java程序:yum -y install java-1.8.0-openjdk*

在这里插入图片描述

在这里插入图片描述

​ 当结果出现了完毕!即安装完成。

​ 查看java版本:java -version

在这里插入图片描述

3.2 方式二 RPM方式安装

优点:安装方便,不需配置环境变量,不需安装相关依赖(依赖自动安装)

1、官网下载jdk的rpm文件(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

2、到该文件所在目录执行命令,我这里是存放在/data文件夹中

先卸载之前装的所有jdk版本(卸载方式见上文)

然后通过rpm命令安装

rpm -ivh jdk-8u251-linux-x64.rpm
"rpm命令"是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

在这里插入图片描述

3、默认安装在/usr/java/jdk1.8.0_251-amd64目录下

在这里插入图片描述

4、检查是否成功

java -version

在这里插入图片描述

5.配置环境变量(如果后续要使用tomcat,则需要配置环境变量,只用jdk不需要配置)

​ 1)利用vi /etc/profile编辑profile文件

​ 2)加入如下内容(jdk文件夹名称根据实际的填写)

#set java environment
JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
JRE_HOME=/usr/java/jdk1.8.0_251-amd64/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

​ 3)利用source /etc/profile让配置生效(无需该操作也可完成配置)。

​ 4)配置完成输入java -version

只用jdk,rpm方式不需要配置环境变量的原因

通过RPM方式安装时,是严格遵照Linux对环境变量的路径的要求,比如:

/usr/bin 可执行的命令安装目录

/usr/lib 程序所使用的库函数保存位置

/usr/share/doc 基本的软件使用手册保存位置

/usr/share/man 帮助文件保存位置

举例来说,我使用RPM安装的jdk1.8,安装完成后,没做任何配置,即可全局使用java命令,本以为安装过程自动在~/.bash_profile或者/etc/profile中做了环境配置,但是查看后并没有,通过$PATH也查看不到jdk的路径。

但是在 /usr/bin中看到了Java,javac命令

也就是说,将jdk安装目录下的bin下的java、javac等命令“复制”到了这里,当然这不是简单的复制,但道理就是那个道理。所以,也就是说,当我们在任意的位置执行java相关命令时,系统会到/usr/bin中来执行。

所以就可以理解为:/usr/bin是针对RPM安装的软件的profile文件,RPM安装过程会自动将一些可执行文件添加到/usr/bin里,从而“配置了环境”,而不需我们配置路径到profile里。

查看/usr/lib后也可以发现其中有jdk安装目录下的lib中的相关包,查看/usr/share/man后也可以发下其中有jdk安装目录下的man中的相关文档。

所以,说到这里,应该可以理解为什么RPM不需配置环境了。

3.3 方式三 源码编译

使用Xftp将下载好的jdk-8u251-linux-x64.tar.gz上传到CentOs上去

先将之前安装的jdk卸载掉(如果没有安装过可跳过此步骤)

1、复制安装包到/usr/java目录中(目录可以自己选):

cp jdk-8u251-linux-x64.tar.gz /usr/java/jdk-8u251-linux-x64.tar.gz

在这里插入图片描述

2、切换到/usr/java目录下:cd /usr/java

3、解压缩包:tar -zxvf jdk-8u251-linux-x64.tar.gz

在这里插入图片描述

解压成功(表式JDK已安装成功,可查看jdk的文件夹)

此时java -version命令还不能使用:

4、配置环境变量

使用vi /etc/profile 编辑profile文件 输入: vi /etc/profile

向文件里面追加以下内容:

#set java environment
JAVA_HOME=/usr/java/jdk1.8.0_251
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

注释:

JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径,此路径下包括lib,bin,jre等文件夹(tomcat,Eclipse的运行都需要依靠此变量)。

CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib。CLASSPATH变量值中的.表示当前目录

PATH使得系统可以在任何路径下识别java命令,设为:$JAVA_HOME/bin:$JRE_HOME/bin。

特别注意:环境变量值的结尾没有任何符号,不同值之间用:隔开(windows中用;)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LzzpPpfi-1668843626115)(pic/10.png)]

5、使配置文件生效:source /etc/profile

6、测试配置是否成功: java -version

7、源码编译的方式安装的jdk如何下载

卸载:

用java -version命令判断jdk是否安装(显示版本号等信息,说明已经安装)

which java(查看JDK的安装路径)

rm -rf JDK地址(卸载JDK)

rm -rf /usr/java/jdk/jdk1.8.0_251/

java -version查看是否卸载完毕

vi命令编辑文件profile vi /etc/profile

删除配置的环境变量,至此JDK卸载完毕

三 如何安装Tomcat

1下载

下载tomcat,从tomcat官网下载tomcat的压缩包。

Tomcat官网下载

在这里插入图片描述

2安装

2.1 将官网下载的apache-tomcat-8.5.57.tar.gz通过xftp上传到服务器中(我是放在根目录下的自建的data文件夹)

在这里插入图片描述

2.2 解压(进入到你的文件所在的目录)

tar -zxvf apache-tomcat-8.5.57.tar.gz		解压

2.3 重命名

mv apache-tomcat-8.5.57  tomcat8.5			重命名,非必须

2.4 复制tomcat8.5文件夹到usr/local下

​ 一般习惯将程序安装到local文件夹下.类似windows下的program files

mv  tomcat8.5  /usr/local/tomcat8.5

2.5 进入/usr/local/tomcat8.5/bin目录

 cd /usr/local/tomcat8.5/bin

3 启动

./startup.sh  启动Tomcat
./shutdown.sh  关闭Tomcat

在这里插入图片描述

4 测试

curl http://192.168.1.4:8080/

在这里插入图片描述

在这里插入图片描述

四 如何安装Mysql

使用yum源安装

1.卸载已有的mysql

查询已安装的mysql(可能没有)

yum list installed | grep mysql

在这里插入图片描述

如果存在已安装的,则卸载

yum -y remove mysql-community-*

*在这里匹配任意字符,可以一次卸载多个。

在这里插入图片描述

卸载完成

在这里插入图片描述

2.配置仓库

由于CentOS 的yum源中没有mysql,需要到mysql的官网下载rpm文件或者配置 repo文件去镜像下载。

mysql 镜像之一:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/

在这里插入图片描述

如何配置 repo文件:

[root@localhost ~]# vim /etc/yum.repos.d/mysql.repo
添加
[mysql5]
name=mysql57
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0

在这里插入图片描述

在这里插入图片描述

3.安装指定版本

[root@localhost ~]# yum install mysql-community-server-5.7.14 -y

在这里插入图片描述

4.检查是否安装成功

yum list installed | grep mysql

在这里插入图片描述

5.启动

​ service mysqld start

6.跳过登录验证.

​ 如何设置跳过登录验证

​ 6.1 编辑my.cnf文件: vim /etc/my.cnf

在这里插入图片描述

​ 在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程

​ 6.2保存文档并退出

​ 6.3重新启动mysql

在这里插入图片描述

6.4 登录

在这里插入图片描述

7.免密登录后设置初始密码

mysql5.7开始 密码字段不再是password而是authentication_string:

update mysql.user set authentication_string=password(‘新密码’) where user=‘root’ and Host = ‘localhost’;

在这里插入图片描述

8.测试用新密码登录

先退出: quit

在这里插入图片描述

​ 启动mysql

​ service mysqld start

​ 登录

在这里插入图片描述

​ 出现Mysql> 代表登录成功.

9.取消“跳过登录验证”

现在有密码了,需要取消“跳过登录验证”,不然可以无密码登录

1.输入quit;退出mysql

在这里插入图片描述

2.编辑my.cnf文件

​ vim /etc/my.cnf

在这里插入图片描述

​ 删除刚加入的“skip-grant-tables”,保存退出

3.重新启动mysql

在这里插入图片描述

10.修改初始设定的密码

1.第一次安装完mysql不管是用临时密码登入还是通过免密方式修改密码登入之后,如果没有马上修改密码,而有其他的对数据库的操作动作都会报错,要求先修改密码。

在这里插入图片描述

2.这个时候需要修改密码

如果密码格式简单(比如只有小写字母和数字),会报错

alter user user() identified by ‘daimenglaoshi666’

在这里插入图片描述

如果密码格式复杂(有大写字母,小写字母,数字,特殊符号),则成功

alter user user() identified by ‘Daimeng666=’;

在这里插入图片描述

原因分析:

这个其实与validate_password_policy的值有关。

validate_password_policy有以下取值:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CQeNR8s4-1668843626128)(pic/20180226165346246)]

强度为LOW,LOW代表什么?代表密码任意,但长度在8位或以上。

强度为MEDIUM,这个强度代表什么?代表密码包括:数字、大写字母、小写字母、特殊符号、长度8位以上。

强度为STRONG,这个时候必须先满足0,1的要求,然后它还追加了一个,对于密码中任意连续4个(或4个让上)字符不得是字典中的单词。

查看默认的密码策略会发现是 1 。

select @@validate_password_policy

在这里插入图片描述

可以通过命令自己修改策略。

set global validate_password_policy=0;

在这里插入图片描述

再修改密码,则简单密码也可以通过,一般开发时还是建议设置复杂一点的密码。

在这里插入图片描述

3 密码修改好以后,可以正常操作数据库了

在这里插入图片描述

11.测试sql,和windows里一样

在这里插入图片描述

12.其它配置

12.1开启远程控制

MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的。

方式一:

1.1、连接服务器: mysql -u root -p

1.2、看当前所有数据库:show databases;

1.3、进入mysql数据库:use mysql;

1.4、查看mysql数据库中所有的表:show tables;

1.5、查看user表中的数据:select Host, User from user;

1.6、修改user表中的Host: update user set Host=‘%’ where User=‘root’;

​ 说明: % 代表任意的客户端,可替换成具体IP地址。

1.7、最后刷新一下:flush privileges;

​ 注意:一定要记得在写sql的时候要在语句完成后加上" ; "

方式二:

​ 使用 grant 命令添加远程访问权限

 grant all privileges on *.* to root@"%" identified by "Daimeng666=";
 或
 grant all privileges on *.* to root@"192.168.1.4" identified by "Daimeng666=";
 
 格式说明

 grant all privileges on 数据库名.表名|*.* to 创建的用户名(root)@"%|ip" identified       by  "密码";

 @ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)

如果要移除允许远程访问的权限:

​ 1.进入mysql数据库:use mysql;查询user表会发现表中新增了一条记录

在这里插入图片描述

​ 2.删除刚添加的权限记录

​ delete from user where host=‘%’ and user=‘root’;

​ 3. 刷新一下:flush privileges;让权限生效

在这里插入图片描述

12.2 关闭MySQL

service mysqld stop

12.3 重启MySQL

service mysqld restart

12.4 查看MySQL运行状态

service mysqld status

12.5 设置开机启动

service mysqld enable

12.6 关闭开机启动

service mysqld disable

12.7 配置默认编码为utf8:

vi /etc/my.cnf #添加 [mysqld] character_set_server=utf8 init_connect=‘SET NAMES utf8’

其他默认配置文件路径:

配置文件:/etc/my.cnf

日志文件:/var/log//var/log/mysqld.log

服务启动脚本:/usr/lib/systemd/system/mysqld.service socket

文件:/var/run/mysqld/mysqld.pid

12.8 查看版本

select version();

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

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

相关文章

黑*头条_第2章_文章列表前端成形与后端变身

黑*头条_第2章_文章列表前端成形与后端变身 文章目录黑*头条_第2章_文章列表前端成形与后端变身文章列表前端成形与后端变身学习目标1.前端工程结构1.1 环境准备1.1.1 导入工程1.1.2 测试运行1.2 weex 跨终端前端框架1.3 工程结构说明1.4 源码结构1.5 WEEX UI2.文章列表前端开发…

算法实验题(涉外黄成老师!!!)

日期 2022.11.19 目录 实验报告一 第一题 2 实验报告二 第二题 3 实验报告三 第三题 4 实验报告四 第四题 5 实验报告五 第五题 6 实验报告六 第六题 7 实验报告一 第一题 一、实验目的 由1&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;7&#xff0c;8这六个数字所组…

剑指 Offer II 021. 删除链表的倒数第 n 个结点【链表】

难度等级&#xff1a;中等 上一篇算法&#xff1a; 82. 删除排序链表中的重复元素 II【链表】 力扣此题地址&#xff1a; 剑指 Offer II 021. 删除链表的倒数第 n 个结点 - 力扣&#xff08;LeetCode&#xff09; 1.题目&#xff1a;删除链表的倒数第 n 个结点 给定一个链表&a…

DWGViewX Pro 2021.4.X Crack by Cracki

DWGViewX pro 2021.4.X --Ω578867473 DWGViewX 是一个 ActiveX 组件&#xff0c;可让您在一个查看器中管理和查看 DWG、DXF 和 DWF 工程图。查看 R14 到 2022 版本的 DWG、DXF 和 DWF。加载本地磁盘或网络网站上的图纸&#xff0c;并使用查看器缩放、平移、旋转图纸、打开/关闭…

Java中的线程

线程 什么是线程&#xff1a; 什么是多线程&#xff1a; 学习目的&#xff1a; 多线程的创建 方式一&#xff1a;继承Thread类 public class MyThread{public static void main(String[] args) {Thread thread01 new Thread01();thread01.start();for (int i 0; i < 5; …

翻倍增长!C-V2X商业化“提速”,新一代模组加速“助跑”

C-V2X正在逐步走向商业的规模化部署&#xff0c;由此也带动了C-V2X模组需求的高速增长。 高工智能汽车研究院监测数据显示&#xff0c;今年1-9月中国市场&#xff08;不含进出口&#xff09;乘用车前装标配搭载V2X技术新车交付上险为10.58万辆&#xff0c;同比增长283.33%&…

计算机视觉|投影与三维视觉

这一篇将学习投影与三维视觉&#xff0c;沿用上一篇 计算机视觉|针孔成像&#xff0c;相机内外参及相机标定&#xff0c;矫正的重要性 摄像机内参数矩阵M、畸变参数、旋转矩阵R、平移向量T以及但影响矩阵H。回顾放射和投影变换&#xff0c;并使用POSIT算法从一幅图像中查找获得…

基于stm32单片机有害气体监测检测Proteus仿真

资料编号&#xff1a;097 下面是相关功能视频演示&#xff1a; 97-基于stm32单片机有害气体监测检测Proteus仿真&#xff08;仿真源码全套资料&#xff09;功能介绍&#xff1a;检测当前的有害气体浓度&#xff0c;LCD1602显示&#xff0c;并且可以自动打开关闭风扇&#xff…

Pulsar 各个Shedder分析及新的Shedder -- AvgShedder

看到今年Pulsar 峰会上挺多人分享负载均衡的内容&#xff0c;这里也整理分享一下相关的内容。 社区现有策略的分析 LoadSheddingStrategy pulsar进行shedding的时候&#xff0c;使用的是ThresholdShedder类&#xff0c;ThresholdShedder类是LoadSheddingStrategy接口的其中一…

锐捷SuperVlan实验配置

Super Vlan配置 创建Vlan vlan range 2,3,4,10,20 配置Vlan10为Super Vlan&#xff0c;Vlan 2,3,4为Sub Vlan vlan 10 supervlan subvlan 2,3,4 配置Sub Vlan的地址范围&#xff08;也可以不配置&#xff09; Vlan 2 subvlan-address-range 192.168.10.10 192.168.10.50 配置S…

【数据结构】—时间复杂度or空间复杂度以及基础题目练习

小菜坤日常上传gitee代码&#xff1a;https://gitee.com/qi-dunyan ❤❤❤ 个人简介&#xff1a;双一流非科班的一名小白&#xff0c;期待与各位大佬一起努力&#xff01; 推荐网站&#xff1a;cplusplus.com 目录前言算法与复杂度时间复杂度大O的渐进表示法时间复杂度计算练习…

[附源码]java毕业设计社区疫情防控管理系统

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

MySQL纯代码复习(上)

前言 本文章是用于总结尚硅谷MySQL教学视频的记录文章&#xff0c;主要用于复习&#xff0c;非商用 原视频连接&#xff1a;https://www.bilibili.com/video/BV1iq4y1u7vj/?p21&spm_id_frompageDriver&vd_sourcec4ecde834521bad789baa9ee29af1f6c https://www.bilib…

【设计模式】 - 创建者模式 -建造者模式

1. 建造者模式 1.1 概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于&#xff1a;某个对象的构建过程复杂的情况。 由于实现了…

小目标检测:基于切图检测的yolov5小目标检测

目前在目标检测方面有着众多的检测框架,比如两阶段的FasterRcnn、以及yolo系列的众多模型。yolo系列在实际中用的最多,一方面性能确实不错,另一方面具有着较多的改进型系列。今天我们主要使用的yolov5系列。具体原理过程就不多说了,大家自行百度。放一张v5的网络结构图。 大…

计算机网络部分(一)

1 请描述 TCP/IP 协议中主机与主机之间通信的三要素 答&#xff1a; IP 地址&#xff08;IP address&#xff09; 子网掩码&#xff08;subnet mask&#xff09; IP 路由&#xff08;IP router&#xff09; 扩展&#xff1a; TCP/IP定义&#xff1a;TCP/IP是基于TCP和IP这两个…

883. 三维形体投影面积

883. 三维形体投影面积 在 n x n 的网格 grid 中&#xff0c;我们放置了一些与 x&#xff0c;y&#xff0c;z 三轴对齐的 1 x 1 x 1 立方体。 每个值 v grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。 现在&#xff0c;我们查看这些立方体在 xy 、yz 和 zx 平面上的投…

【Java八股文总结】之Java设计模式

文章目录Java设计模式一、设计模式概述1、什么是设计模式&#xff1f;2、设计模式的6大原则3、具体的设计模式1、单例模式Q&#xff1a;为什么使用两个 if (singleton null) 进行判断&#xff1f;Q&#xff1a;volatile 关键字的作用&#xff1f;2、原型模式补充&#xff1a;浅…

yml中无法解析类 ‘HikariDataSource‘

目录 yml中无法解析类 HikariDataSource ⭐关于HikariDataSource的信息 yml中无法解析类 HikariDataSource 修改之前该行是报红的 具体代码 # 配置项目信息 spring:profiles:active: prod # yml中配置文件的环境配置&#xff0c;dev&#xff1a;开发环境&#xff0c;t…

06_通信过程

知识点1【通信过程概述】 2、PC和集线器Hub 2、PC机和交换机switch 2、路由器&#xff08;重要哟&#xff09; 知识点1【通信过程概述】 1、PacketTracer5.exe 安装 一路next 2、PC和集线器Hub 选择集线器 选择主机&#xff1a; 选择线 一个集线器4台主机&#xff1a; 配…