Linux下C、C++、和Java程序设计

news2024/9/22 15:30:43

1.创建用户和之前一样。

RHEL7.2用户名和密码的创建以及DHCP服务的安装_封奚泽优的博客-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/130763469?spm=1001.2014.3001.55012.用yum安装(分别是c,c++,java,javac)(之前我以为是分开安装的,后面老师说只是版本不一样,安装之后java和javac都安装好了)5月29日补:可能需要先yum install java 才有后面的那个yum install java-1.8.0-openjdk-devel.x86_64。不然就是一直在尝试其他镜像。

[root@localhost 桌面]# yum install gcc -y
[root@localhost 桌面]# yum install gcc-c++ -y
[root@localhost 桌面]# yum install java -y
[root@localhost 桌面]# yum install java-1.8.0-openjdk-devel.x86_64 -y
[root@localhost 桌面]# java
[root@localhost 桌面]# javac

 参考链接:linux:centos7 yum命令安装java环境并配置JAVA_HOME环境变量_as57147的博客-CSDN博客https://blog.csdn.net/as57147/article/details/109295471

编写一个Java程序看看(不知道是不是我之前配置过环境变量的原因,这个可以直接编译运行

这个可能不是,用yum安装环境变量好像是自动配置好了。

public class hello {
	public static void main(String[] args) {
		System.out.println("hello world");
	}
}
[root@localhost java]# javac hello.java
[root@localhost java]# java hello
hello world
[root@localhost java]# echo $JAVA_HOME
usr/java/jdk1.8.0_361

3.编写C或C++和Java的语言程序,我这里是用c++和java写的。

 参考链接:

(3条消息) 求范围内的质数的个数_封奚泽优的博客-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/130451290?spm=1001.2014.3001.5502

代码分析:通过用户输入可以得到各自的学号,首先判断他本身是否是质数,如果不是质数就可以将他拆分,那么如何拆分,我们判断质数的时候如果他有因子就不是质数,在将他除以这个因子重复这个过程,整个翻译成程序就是如果他是质数就直接跳出循环,如果他不是质数就将他拆成质数乘以质数的形式,自己本身越来越靠近质数,最后跳出循环把自己也输出就得到了最终的表达式,整个程序不是很难想到,主要就是要注意int类型数据越界的情况

#include<iostream>
using namespace std;
//202140200126

bool isPrime(long long sno);
 
int main(){
	//用int类型数据越界 
	long long sno=0;
	cout<<"请输入您的学号:"; 
	cin>>sno;
	cout<<sno<<"=";
	while(!isPrime(sno)){
		for(long long i=2;i<sno;i++){
			//直接输出因子 
			if(sno%i==0){
				cout<<i<<"*";
				sno/=i;
				//直接进入下一次的循环 
				break;
			}
		}
	}
	cout<<sno<<endl;
	return 0;
}

//判断sno是否是质数 
bool isPrime(long long sno){
	for(long long i=2;i<sno;i++){
		if(sno%i==0){
			return false;
		}
	}
	return true;
}

 思路知道了用什么语言写就是转换一下就可以了。

import java.util.Scanner;
//202140200126
public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入您的学号:");
        long sno=sc.nextLong();
        System.out.print(sno+"=");
        while(!isPrime(sno)){
            for(long i=2;i<sno;i++){
                if(sno%i==0){
                    System.out.print(i+"*");
                    sno/=i;
                    break;
                }
            }
        }
        System.out.println(sno);
    }
    //判断sno是否是质数
    public static boolean isPrime(long sno){
        for(long i=2;i<sno;i++){
            if(sno%i==0){
                return false;
            }
        }
        return true;
    }
}

[root@localhost java]# gedit Test.java
[root@localhost java]# javac Test.java
[root@localhost java]# java Test
请输入您的学号:202140200126
202140200126=2*25339*3988717

 出现这个说明之前没有那个文件,现在是创建一个新的文件。

** (gedit:5177): WARNING **: 获取文件“/root/桌面/he”的信息出错:没有那个文件或目录

** (gedit:5177): WARNING **: Set document metadata failed: 设置文件元数据出错:没有那个文件或目录

说明:这个寻找质因子是采取一种比较笨的方法,所以整个的效率比较低,对于一些的学号会很久才出来结果,可以通过修改来优化整个程序,如:寻找不用判断每一种可能,主要判断质数就行,因为合数可以拆分成质数和质数相乘的形式,有因为需要时最小的因子,所以总会有一个质数比这个合数大。详细的思路还是看之前的参考链接。 

类似参考:

#include<iostream>
using namespace std;
#include<cmath>

//202140200126

bool isPrime(long long sno);
 
int main(){
	//用int类型数据越界 
	long long sno=0;
	cout<<"请输入您的学号:"; 
	cin>>sno;
	cout<<sno<<"=";
	while(!isPrime(sno)){
		long long i=0; 
		//同样2拿出来单独判断 
		if(sno%2==0){
			//输出2,sno除以2 
		 	cout<<2<<"*";
			sno/=2;
			//这里就不是用break了 
			continue; 
		}
		double tmp=sqrt(sno);
		//缩小可能的范围 
		for(i=3;i<=tmp;i+=2){
			//直接输出因子 
			if(sno%i==0){
				cout<<i<<"*";
				sno/=i;
				//直接进入下一次的循环 
				break;
			}
		}
	}
	cout<<sno<<endl;
	return 0;
}

//判断sno是否是质数 
bool isPrime(long long sno){
	//把2单独拿出来判断 
	if(sno%2==0){
		return false;
	}
	double tmp=sqrt(sno);
	//之后就仅仅考虑奇数,而且范围也可以缩小 
	for(long long i=3;i<=tmp;i+=2){
		if(sno%i==0){
			return false;
		}
	}
	return true;
}

c++编写的程序用gcc编译就会发生报,所以应该要用g++来编译。

[root@localhost c]# gedit sno.c
[root@localhost c]# gcc sno.c -o sno.o
sno.c:1:19: 致命错误:iostream:没有那个文件或目录
 #include<iostream>
                   ^
编译中断。
[root@localhost c]# g++ sno.c -o sno.o
[root@localhost c]# ./sno.o
请输入您的学号:202140200126
202140200126=2*25339*3988717

4.这个题目还不确定是什么意思,我是先把.c的文件准备好,如何编写makefile文件。

[root@localhost c]# gedit Makefile

写下面这几行代码 

sno.o:sno.c
	g++ sno.c -o sno.o

如果出现这个,说明之前已经编译过了,可以删除之后重新执行

[root@localhost c]# make -f Makefile
make: “sno.o”是最新的。
[root@localhost c]# rm -f sno.o
[root@localhost c]# make -f Makefile
g++ sno.c -o sno.o

也可以增加一个clean,修改之前的文件就是成这样了。

sno:sno.c
	g++ sno.c -o sno
clean:
	rm -f *.o
	rm -f sno

之前有一直以为的是,下面是执行sno和clean一起执行,这就导致我的理解是他生成了sno的目标文件然后又删除了。其实不是,他的意思是只执行Makefile里面的clean。也就是我们要删除的时候可以执行这条语句。

[root@localhost c]# make -f Makefile clean
[root@localhost c]# ls
a.out  cdx  cdx.c  Makefile  sno.c

[root@localhost c]# make -f Makefile
g++ sno.c -o sno
[root@localhost c]# ls
a.out  cdx  cdx.c  Makefile  sno  sno.c

[root@localhost c]# ./sno
请输入您的学号:202140200126
202140200126=2*25339*3988717

[root@localhost c]# make -f Makefile clean
rm -f *.o
rm -f sno

[root@localhost c]# ls
a.out  cdx  cdx.c  Makefile  sno.c

 当然这个老师上课是讲过的,也确实书上还有笔记,以为要在多个文件,为此还特地把文件拆开来用。直接看文件内容吧。(这里我是提前创建了文件,而且把内容写到里面的,所以用cat查看,如果有感兴趣的可以直接创建文件,把内容写进去,我这没有写填写过程,因为我感觉写在一个文件夹里面貌似也是可以的

[root@localhost make]# ls
bar.c  bar.h  foo.c  foo.h  Makefile

[root@localhost make]# cat foo.h
#include<iostream>
using namespace std;

[root@localhost make]# cat foo.c
#include "foo.h"
#include "bar.h"

bool isPrime(long long sno);

int main(){
	//用int类型数据越界 
	long long sno=0;
	cout<<"请输入您的学号:"; 
	cin>>sno;
	cout<<sno<<"=";
	while(!isPrime(sno)){
		for(int i=2;i<sno;i++){
			//直接输出因子 
			if(sno%i==0){
				cout<<i<<"*";
				sno/=i;
				//直接进入下一次的循环 
				break;
			}
		}
	}
	cout<<sno<<endl;
	return 0;
}

[root@localhost make]# cat bar.h
#include<iostream>
using namespace std;

[root@localhost make]# cat bar.c
#include "foo.h"
#include "bar.h"

//判断sno是否是质数 
bool isPrime(long long sno){
	for(long long i=2;i<sno;i++){
		if(sno%i==0){
			return false;
		}
	}
	return true;
}

[root@localhost make]# cat Makefile
sno:foo.o bar.o
	g++ foo.o bar.o -o sno
foo.o:foo.c foo.h
	g++ -c foo.c -o foo.o
bar.o:bar.c foo.h bar.h
	g++ -c bar.c -o bar.o
clean:
	rm -f *.o
	rm -f sno
[root@localhost make]# 

然后就是编译运行,和之前就是一样的了。

[root@localhost make]# ls
bar.c  bar.h  foo.c  foo.h  Makefile
[root@localhost make]# make -f Makefile
g++ -c foo.c -o foo.o
g++ -c bar.c -o bar.o
g++ foo.o bar.o -o sno

[root@localhost make]# ls
bar.c  bar.h  bar.o  foo.c  foo.h  foo.o  Makefile  sno
[root@localhost make]# ./sno
请输入您的学号:202140200126
202140200126=2*25339*3988717

[root@localhost make]# make -f Makefile clean
rm -f *.o
rm -f sno

[root@localhost make]# ls
bar.c  bar.h  foo.c  foo.h  Makefile
[root@localhost make]# 

5.我刚开始还以为是环境变量的问题,现在感觉应该是权限的问题。(文件夹位置没有发生改变

先切换到普通用户,执行上面的语句。发现权限不够,这个时候就想到了sudo。

[root@localhost make]# su lj200126
[lj200126@localhost make]$ ls
bar.c  bar.h  foo.c  foo.h  Makefile
[lj200126@localhost make]$ make -f Makefile
g++ -c foo.c -o foo.o
Assembler messages:
Fatal error: can't create foo.o: 权限不够
make: *** [foo.o] 错误 1

 结果还是不行。被报告是什么意思,让我们重新回到root用户。(这里是要输入普通用户的密码,不是root用户的密码)

[lj200126@localhost make]$ sudo make -f Makefile
[sudo] password for lj200126: 
lj200126 不在 sudoers 文件中。此事将被报告。
[lj200126@localhost make]$ 

 切回到root用户。(也可以用su root

[lj200126@localhost make]$ exit
exit
您在 /var/spool/mail/root 中有新邮件
[root@localhost make]# 

 咋还有邮件来了,我到要看看是什么。(末尾显示这个,原来他在打"小报告",会记录这违规的事情)

[root@localhost make]# cat /var/spool/mail/root

localhost.localdomain : May 23 20:51:56 : lj200126 : 用户不在 sudoers 中 ; TTY=pts/0 ; PWD=/root/make ; USER=root ; COMMAND=/bin/make -f Makefile

 那现在的思路就是提升他的权限了。

把只读权限修改为可写权限。

[root@localhost make]# ls -l /etc/sudoers
-r--r-----. 1 root root 4188 7月   7 2015 /etc/sudoers
[root@localhost make]# chmod u+w /etc/sudoers
[root@localhost make]# ls -l /etc/sudoers
-rw-r-----. 1 root root 4188 7月   7 2015 /etc/sudoers
[root@localhost make]# 

 编辑配置文件(增加下面一行,详细思路看参考链接)

[root@localhost make]# gedit /etc/sudoers

恢复权限(440就是9位权限码,里面的每一位就是rwx读,写,可执行,三位对应的是user,group,other。440就是自己是可读的不可写不可执行,组里面也是可读的不可写不可执行,对于其他用户是不可读不可写不可执行的

[root@localhost make]# ls -l /etc/sudoers
-rw-r----- 1 root root 4209 5月  23 21:05 /etc/sudoers
[root@localhost make]# chmod 440 /etc/sudoers
[root@localhost make]# ls -l /etc/sudoers
-r--r----- 1 root root 4209 5月  23 21:05 /etc/sudoers
[root@localhost make]#

 重新编译

[lj200126@localhost make]$ make -f Makefile
g++ -c foo.c -o foo.o
Assembler messages:
Fatal error: can't create foo.o: 权限不够
make: *** [foo.o] 错误 1

[lj200126@localhost make]$ sudo make -f Makefile
[sudo] password for lj200126: 
g++ -c foo.c -o foo.o
g++ -c bar.c -o bar.o
g++ foo.o bar.o -o sno

[lj200126@localhost make]$ ls
bar.c  bar.h  bar.o  foo.c  foo.h  foo.o  Makefile  sno

[lj200126@localhost make]$ ./sno
请输入您的学号:202140200126
202140200126=2*25339*3988717
[lj200126@localhost make]$ 

参考链接:

 (1条消息) 解决Linux系统下,出现“不在sudoers文件中,此事将被报告”的问题_不在 sudoers 文件中。此事将被报告。_正积分的博客-CSDN博客https://blog.csdn.net/weixin_46984358/article/details/121497015

6.官网下载,可以不用捐助。我是在windows下面下载在移动到虚拟机里面的。.tar.gz后缀的压缩包Thank You for Downloading Eclipse | The Eclipse Foundationhttps://www.eclipse.org/downloads/download.php?file=/oomph/epp/2023-03/R/eclipse-inst-jre-linux64.tar.gz&mirror_id=1142

[root@localhost 下载]# ls
eclipse-inst-linux64.tar.gz
[root@localhost 下载]# tar -zxvf eclipse-inst-linux64.tar.gz

 理论上是解压之后进入解压后的文件夹,然后打开eclipse-inst就可以了,但是我这里报错了,不知道是不是文件不对。

[root@localhost eclipse]# cd eclipse-installer
[root@localhost eclipse-installer]# ls
artifacts.xml  eclipse-inst      features  p2       readme
configuration  eclipse-inst.ini  icon.xpm  plugins
[root@localhost eclipse-installer]# ./eclipse-inst

 坐等老师发文件。

 我的启动没成功。(应该是版本不兼容的原因,官网下载的是最新版的,但是rhel7不是)

老师最终没有发文件,还是要靠自己,终于功夫不负有心人找到一个链接。

RHEL7.2 安装Eclipse-oxygen Hadoop开发环境 - ccskun - 博客园 (cnblogs.com)https://www.cnblogs.com/ccskun/p/7822277.html先下载(可以直接复制到虚拟机里面,然后就直接下载了

[root@localhost 下载]# wget http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/oxygen/1a/eclipse-java-oxygen-1a-linux-gtk-x86_64.tar.gz

 查找文件名字

[root@localhost 下载]# ls -lrt|grep eclipse
-rw-r--r--  1 root root 186642081 10月 10 2017 download.php?file=%2Ftechnology%2Fepp%2Fdownloads%2Frelease%2Foxygen%2F1a%2Feclipse-java-oxygen-1a-linux-gtk-x86_64.tar.gz
drwxr-xr-x  8 root root      4096 5月  24 18:50 eclipse

解压

[root@localhost 下载]# tar -zxvf download.php?file=%2Ftechnology%2Fepp%2Fdownloads%2Frelease%2Foxygen%2F1a%2Feclipse-java-oxygen-1a-linux-gtk-x86_64.tar.gz

 出现eclipse文件

 点击文件

 搞定了

 

 接下来的操作大家比我熟悉了吧。

他这个不能直接移动到桌面来,要配置一下,感兴趣的同学可以自己尝试一下。 

然后把之前写的程序拷贝过来看一下是否可以运行。那就搞定了。

5月25日还是更新一下方法吧移动到桌面的方法吧。

进入目录创建文件,并编辑他。

[root@localhost 桌面]# cd /usr/share/applications
[root@localhost applications]# gedit eclipse.desktop

 文件信息

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse IDE
Comment=Eclipse Luna
Exec=/root/下载/eclipse/eclipse
Icon=/root/下载/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

 可以通过先找到之前的文件然后右键在终端打开

[root@localhost 下载]# cd eclipse
[root@localhost eclipse]# pwd
/root/下载/eclipse

 其实就是下面这两个文件的路径把他复制下来粘贴到 eclipse.desktop文件相对应的位置。

 保存之后就可以看到图标了。

 网上说是可以右键直接发送到桌面,但是我这里右键直接加入软件了,所以还是要用指令拷贝的方式到桌面来。

[root@localhost 桌面]# pwd
/root/桌面
[root@localhost 桌面]# cp /usr/share/applications/eclipse.desktop /root/桌面

 注意勾选这个以后每次进入软件的时候就不会总是询问你了。当然路径是自己选择的,自己记得在哪里就行了。

5月27日更新一下eclipse中的c++。

Windows系统下下载下面的安装包(后缀.zip格式)

http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/juno/sr2/cdt-master-8.1.2.zip&mirror_id=1093http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/juno/sr2/cdt-master-8.1.2.zip&mirror_id=1093解压后移动到虚拟机中。

 把features和plugins文件夹复制粘贴到上面的eclipse文件夹中(eclipse文件夹也是你之前编辑配置文件的那个)因为有同名的文件,选择合并,一定是合并不然编译器用不了。(--zsy)

 然后再次重启eclipse,就是再次打开这个软件。

7.保存命令也和之前是一样的了。

(1条消息) RHEL7.2用户名和密码的创建以及DHCP服务的安装_封奚泽优的博客-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/130763469?spm=1001.2014.3001.5501

 整个的这篇写下来的不只是怎么操作,仅仅是敲代码,敲指令的话没有什么效果,更加重要的是应该去试错,命令报错可以直接把错误的内容复制粘贴到浏览器上面,基本上互联网上面都会有人同样也出现这种错误,并且有类似的解决方案,我听到一种说法就是如果你的错误在网上没有,那么你就是这个领域的佼佼者了。这就是我把错误的部分也写里面,把解决写在错误后面原因,也不能说这些错误没有意义,至少当有人来问我的时候我可以自信地说这个我之前也错过,但是我现在知道了。

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

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

相关文章

Sui Builder House首尔站倒计时!

Sui主网上线后的第一场Builder House活动即将在韩国首尔举行&#xff0c;同期将举办首场线下面对面的黑客松。活动历时两天&#xff0c;将为与会者提供独特的学习、交流和娱乐的机会。活动详情请查看&#xff1a;Sui Builder House首尔站&#xff5c;主网上线后首次亮相。 Sui…

2. 虚拟环境

一、为什么要搭建虚拟环境&#xff1f; 在实际开发过程中&#xff0c;多个程序可能需要调试各种版本的不同环境&#xff0c;比如不同的Python解释器&#xff0c;不同的flask版本 二、如何搭建虚拟环境&#xff1f; 什么是虚拟环境&#xff1f; 它就是一个特殊的文件夹&…

一个matlab colorbar的简易代码cmocean

matlab自带的色阶不全&#xff0c;无法满足绘图的需求&#xff0c;而cmocean函数提供了一些常用的色阶。 函数命令&#xff1a;cmocean(ColormapName,varargin)&#xff0c;其中的ColormapName有如下的可选参数&#xff1a; 各个参数的绘图效果如下&#xff1a; 另外的一个参…

基于CAPL版本的CRC32算法

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

UI设计用什么软件做?

1、即时设计 即时设计是一款国内的在线协同设计工具&#xff0c;提供原型设计、UI/UX 设计和设计交付等核心功能。它无需第三方插件&#xff0c;拥有丰富的组件样式、中英文字体库和本地化资源&#xff0c;受到专业设计师的好评。与其他国外的 UI 工具相比&#xff0c;即时设计…

加拿大访问学者博士后签证材料清单指南

加拿大作为一个受欢迎的留学和研究目的地&#xff0c;吸引着许多国际学者和博士后前往交流和深造。作为准备申请加拿大访问学者或博士后签证的申请人&#xff0c;准备充分的材料是至关重要的。下面是知识人网小编整理的个关于加拿大访问学者博士后签证材料清单的指南&#xff0…

mysql-xtrabackup的使用

一、安装 1.下载压缩包 根据当前地址选择对应的版本和系统 wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/tarball/percona-xtrabackup-2.4.28-Linux-x86_64.glibc2.17.tar.gz2.解压缩 tar xvf percona-xtrabac…

【分布鲁棒和多目标非负矩阵分解】基于DR-NMF的对NMF问题噪声模型的识别鲁棒性研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

A*寻路之旅:用SDL图形化演示

前言 欢迎来到小K的数据结构专栏的第十小节&#xff0c;本节将为大家带来A*寻路算法的图形化详解&#xff0c;学了之后寻路不再迷路&#xff08;✨当然也为大家准备了完整的源码&#xff0c;好像在文章顶部欸~ &#xff09;~希望你看完之后&#xff0c;能对你有所帮助&#xff…

ctfshow 每周大挑战 RCE极限挑战4、5

看过官方wp之后复现的&#xff0c;用的payload是自己后来写的&#xff0c;可能不如官方的看着清晰 有点强迫症似的在抠细节&#xff08;x 目录 挑战4最初的思路通过HackBar拿flag的写法写法一写法二 挑战5burp中的payload 大佬们也太极限啦 挑战4 最初的思路 第4题的长度限制…

UM2082F08 125k三通道低频无线唤醒ASK接收功能的SOC芯片 汽车PKE钥匙

1产品描述 UM2082F08是基于单周期8051内核的超低功耗8位、具有三通道低频无线唤醒ASK接收功能的SOC芯片。芯片可检测30KHz~300KHz范围的LF (低频)载波频率数据并触发唤醒信号&#xff0c;同时可以调节接收灵敏度&#xff0c;确保在各种应用环境下实现可靠唤醒&#xff0c;其拥…

母婴健康老人护理医护上门陪诊产后恢复预约上门小程序源码

母婴健康老人护理医护上门陪诊产后恢复预约上门小程序 在线预约 上门打针 产后恢复 会员卡 余额充值 优惠券 分销商 unippthinkphp <template> <view class"container" :style"{background:pagebase.base.bc}"> <Pengp…

Django+Vue实现文件上传下载功能

目录 前言 上传功能 后端代码 前端代码 下载功能 后端代码 前端代码 前言 首先我要实现的页面效果是这样的 当点击上传文件按钮&#xff0c;弹出上传文件的弹出框&#xff0c;可以上传多个文件&#xff0c;点击确定后才正式开始上传 点击右侧下载按钮&#xff0c;可以直…

springboot中将logback切换为log4j2

前言 springboot默认使用logback作为日志记录框架&#xff0c;常见的日志记录框架有log4j、logback、log4j2。这篇文章我们来学习怎样将logbak替换为log4j2。 一、为什么使用log4j2&#xff1f; 我们在项目中经常使用一个叫SLF4J的依赖&#xff0c;它是做什么的呢&#xff1f; …

Java 实现在顺序表末尾插入一个元素

一、思路 1.因为我们是用数组实现的顺序表&#xff0c;因此首先要保证数组有足够的空间来进行插入元素. 2.如果数组满了就需要将数组扩容&#xff0c;没满就开始插入. 3.当前数组中的元素个数就是每一次要插入的末尾位置的下标. 4.定义一个 usedSize 来表示当前的元素个数. 5.插…

Pandas+ChatGPT强强结合诞生PandasAI,数据分析师行业要变天了?

大家好&#xff0c;我是千与千寻&#xff0c;可以叫我千寻&#xff0c;我自己主要的编程语言是Python和Java。 说到Python编程语言&#xff0c;使用Python语言主要使用的是数据科学领域的从业者。 Python编程语言之所以在数据科学领域十分火热&#xff0c;源于Python语言的三…

9.Ansible Conditions介绍

Ansible条件语句 1)上面的例子在不同的机器上安装nginx&#xff0c;不同的操作系统风格使用不同的软件包管理器&#xff61;debian使用APT, Red Hat使用Yum, 但这是两个独立的Playbook,您必须为各自的服务器使用正确的剧本&#xff61; 可以使用条件语句&#xff0c;将这两个P…

Mongodb在Linux下载安装及部署

前言 一、下载安装包 Mongodb官网&#xff1a;Download MongoDB Community Server | MongoDB 二、安装及配置 博主下载的安装包是&#xff1a;mongodb-linux-x86_64-rhel70-6.0.6.tgz 新建目录 # 进入 usr 文件夹 cd /usr# 新建 mongodb 文件夹 mkdir mongodb# 进入 mongodb …

如何自学成为黑客

学习路线 不BB&#xff0c;直接上干货。 学完下面的内容&#xff0c;绝对可以进入黑客圈。 文末有福利噢&#xff01; 第一步&#xff1a;计算机基础 了解计算机基本常识&#xff0c;常用软件使用。需要学会基本使用的软件或技术有&#xff1a;Word、VMware、VPN、Visual St…

快速实现工程化部署,亚马逊云科技为AIGC产品化提供可靠基础

本文将以Stable Diffusion Quick Kit在亚马逊云科技Amazon SageMaker上的部署来介绍Stable Diffusion模型基础知识&#xff0c;HuggingFace Diffusers接口&#xff0c;以及如何使用Quick Kit在SageMaker Endpoint上快速部署推理服务。 Stable Diffusion模型 2022年由Stability…