当前位置: 首页 > news >正文

LAMP源码编译安装——CentOS7

文章目录

    • LAMP是什么
    • LAMP软件组件
      • Linux
      • Apache
      • MySQL
      • PHP
    • 源码安装Apache
      • 一、准备工作
      • 二、安装环境依赖包
      • 三、配置软件模块
      • 四、编译及安装
      • 五、优化配置文件路径
      • 六、添加httpd系统服务(有两种方法)
        • 方法一:
        • 方法二:
      • 七、修改httpd 服务配置文件
      • 八、浏览器访问验证
    • 源码安装mysql
      • 一、准备工作
      • 二、安装环境依赖包
      • 三、配置软件模块
      • 四、编译及安装
      • 五、修改mysql 配置文件
      • 六、优化mysql
      • 七、初始化数据库
      • 八、启动mysql
    • 源码安装php
      • 一、准备工作
      • 二、安装环境依赖包
      • 三、配置软件模块
      • 四、编译与安装
      • 五、优化PHP
      • 六、修改httpd 服务的配置文件
      • 七、验证PHP测试页

LAMP是什么

在这里插入图片描述

LAMPLinuxApacheMySQLPerl / PHP / Python)是Web上最流行的应用程序最常用的软件堆栈之一的首字母缩写词。其通用软件堆栈模型具有大量可互换的组件。

该首字母缩略词中的每个字母代表其四个开源基石之一:

  • Linux操作系统
  • HTTP服务器
  • 关系数据库管理系统:MySQL
  • 编程语言:Perl、 PHP或Python

LAMP 堆栈的组件存在于大多数Linux 发行版的软件存储库中。

LAMP软件组件

Linux

Linux 是一种类 Unix计算机操作系统,采用自由开源软件开发和分发模式组装而成。大多数Linux 发行版都是基于Linux 内核并通常基于包管理系统的软件集合,通过其软件包提供完整的 LAMP 设置。

Apache

LAMP 的 Web 服务器角色传统上由 Apache 提供,后来还包括其他 Web 服务器,例如Nginx。
Apache是根据Apache 许可证发布的开源软件。它支持各种各样的功能,其中许多功能都是作为编译 模块实现的,这些模块扩展了 Apache 的核心功能。这些功能包括服务器端编程语言支持和身份验证。

MySQL

MySQL 最初作为 LAMP 的关系数据库管理系统,后来被其他系统交替使用,例如PostgreSQL、MariaDB(由 MySQL 的原始开发人员开发的社区开发的分支)甚至MongoDB等NoSQL数据库。

PHP

PHP 是一种服务器端脚本语言,专为Web开发而设计,但也可用作通用编程语言。 Web 服务器通过 PHP 处理器模块解释PHP 代码,并生成结果网页。 PHP 命令可以选择直接嵌入到HTML源文档中,而不必调用外部文件来处理数据。 它还发展到包含命令行界面功能,可用于独立的图形应用程序。 PHP 是根据PHP 许可证条款发布的免费软件,由于 PHP 许可证对术语PHP的使用有所限制,因此与GNU 通用公共许可证(GPL)不兼容。

源码安装Apache

一、准备工作

  1. 将安装Apache所需软件包传到/opt/apache目录下并解压
systemctl disable firewalld --now
setenforce 0
vim /etc/selinux/config SELINUX=0cd /opt
mkdir apache
tar xf apr-1.6.2.tar.gz 
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

使用xftp上传Apache所需软件包
请添加图片描述

二、安装环境依赖包

命令

yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl 

解析

yum -y install \
gcc \                            #C语言的编译器
gcc-c++ \                        #C++的编译器
make \                            #源代码编译器(源代码转换成二进制文件)
pcre \                            #pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel \                    #perl的接口开发包
expat-devel \                   #用于支持网站解析HTML、XML文件
perl                            #perl语言编译器

请添加图片描述

三、配置软件模块

mv apr-1.6.2 httpd-2.4.29/srclib/aprmv apr-util-1.6.0 httpd-2.4.29/srclib/apr-utilcd httpd-2.4.29/./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

请添加图片描述
请添加图片描述

四、编译及安装

make -j 3		#表示开3核同时进行编译make install

在这里插入图片描述

在这里插入图片描述

五、优化配置文件路径

把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/httpd/conf/httpd.conf /etc/ln -s /usr/local/httpd/bin/* /usr/local/bin/

在这里插入图片描述

六、添加httpd系统服务(有两种方法)

方法一:
```bash
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd		#用于service服务管理
chmod +x /etc/init.d/httpd
vi /etc/init.d/httpd#!/bin/bash												#在第一行前插入新行,添加此三行内容# chkconfig: 35 85 21									#35级别自动运行  第85个启动 第21个关闭# description: Apache is a World Wide Web serverchkconfig --add httpd     		#将httpd服务加入到service管理器systemctl start httpd.service
```

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

在这里插入图片描述

方法二:
```bash
vim /usr/lib/systemd/system/httpd.service[Unit]													#服务的说明Description=The Apache HTTP Server						#描述服务After=network.target									#依赖,当依赖的服务启动之后再启动自定义的服务[Service]												#服务运行参数的设置Type=forking											#后台运行方式PIDFile=/usr/local/httpd/logs/httpd.pid					#PID文件位置ExecStart=/usr/local/bin/apachectl $OPTIONS				#服务的运行命令ExecReload=/bin/kill -HUP $MAINPID						#根据PID重载配置[Install]												#服务安装的相关设置WantedBy=multi-user.target								#设置为多用户systemctl start httpd.service
systemctl enable httpd.service```

七、修改httpd 服务配置文件

vim /etc/httpd.conf#--52行--修改Listen 192.198.80.10:80		#<serverIP>:80#--197行--取消注释,修改ServerName www.wl.com:80	#自定义域名#可以不修改#--221行--默认首页存放路径DocumentRoot "/usr/local/httpd/htdocs"#--255行--默认首页文件名设置DirectoryIndex index.html
httpd -t  或 apachectl -t			#检查配置文件的配置项是否有误cat /usr/local/httpd/htdocs/index.htmlsystemctl restart httpd.service

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

八、浏览器访问验证

netstat -anpt | grep 80
echo "10.190.33.40 www.wl.com" >> /etc/hosts

在这里插入图片描述

在这里插入图片描述

源码安装mysql

一、准备工作

将安装mysql 所需软件包传到/opt目录下并解压,卸载mariadb

cd /opt
mkdir mysql
cd mysql
tar xf mysql-boost-5.7.44.tar.gz
yum remove -y mariadb*  #卸载mariadb相关内容

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、安装环境依赖包

yum -y install \
gcc \
gcc-c++ \
ncurses \				#字符终端下图形互动功能的动态库
ncurses-devel \			#ncurses开发包
bison \					#语法分析器
cmake					#mysql需要用cmake编译安装

在这里插入图片描述

三、配置软件模块

cd mysql-5.7.44/cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \          #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件

如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

在这里插入图片描述

四、编译及安装

make -j 3 && make install

时间较长,请耐心等待

在这里插入图片描述

五、修改mysql 配置文件

useradd -M -s /sbin/nologin  mysql	#创建mysql用户
vim /etc/my.cnf								#删除原配置项,再重新添加下面内容[client]									#客户端设置port = 3306socket = /usr/local/mysql/mysql.sock		#开启自动补全功能[mysqld]									#服务全局设置user = mysql       							#设置管理用户basedir=/usr/local/mysql					#指定数据库的安装目录datadir=/usr/local/mysql/data				#指定数据库文件的存储路径port = 3306									#指定端口character-set-server=utf8					#设置服务器字符集编码格式为utf8pid-file = /usr/local/mysql/mysqld.pid		#指定pid 进程文件路径socket=/usr/local/mysql/mysql.sock			#指定数据库连接文件bind-address = 0.0.0.0						#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开skip-name-resolve							#禁止域名解析,包括主机名,所以授权的时候要使用 IP 地址max_connections=4096						#设置mysql的最大连接数default-storage-engine=INNODB				#指定默认存储引擎max_allowed_packet=32M						#设置在网络传输中一次消息传输量的最大值。系统默认值为 1MB,最大值是 1GB,必须设置 1024 的倍数。server-id = 1								#指定服务ID号sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

在这里插入图片描述

在这里插入图片描述

六、优化mysql

更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/chown mysql:mysql /etc/my.cnf

在这里插入图片描述

设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

在这里插入图片描述

七、初始化数据库

cd /usr/local/mysql/bin/./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径

在这里插入图片描述

八、启动mysql

添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/		#用于systemctl服务管理
systemctl daemon-reload         #刷新识别     
systemctl start mysqld.service  #开启服务
systemctl enable mysqld         #开机自启动
netstat -anpt | grep 3306       #查看端口

在这里插入图片描述

修改mysql 的登录密码

mysqladmin -u root password "abc123" 	#给root账号设置密码为abc123,原始密码为空

在这里插入图片描述

授权远程登录

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限show databases;			#查看当前已有的数据库

在这里插入图片描述

源码安装php

一、准备工作

cd /opt/
mkdir php
cd php
tar xf php-7.1.10.tar.bz2 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、安装环境依赖包

yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

在这里插入图片描述

三、配置软件模块

cd php-7.1.10/./configure \
--prefix=/usr/local/php \							#指定将 PHP 程序的安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \			#指定Apache httpd服务提供的apxs 模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指定mysql 数据库连接文件的存储路径
--with-config-file-path=/usr/local/php/lib			#设置 PHP 的配置文件 php.ini 将要存放的位置
--with-mysqli \										#添加 MySQL 扩展支持,mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \										#支持zlib功能,提供数据压缩
--with-curl \										#开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
--with-gd \											#激活gd 库的支持
--with-jpeg-dir \									#激活jpeg 的支持
--with-png-dir \									#激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \									#启用多字节字符串功能,以便支持中文等代码
--enable-xml \										#开启扩展性标记语言模块
--enable-session \									#会话
--enable-ftp \										#文本传输协议
--enable-pdo \										#函数库
--enable-tokenizer \								#令牌解释器
--enable-zip										#ZIP压缩格式

在这里插入图片描述

四、编译与安装

make -j 3&& make install

在这里插入图片描述

五、优化PHP

优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/php/bin/* /usr/local/bin/
php -m 			#查看PHP 加载了哪些模块

在这里插入图片描述

复制模版文件作为PHP 的主配置文件,并进行修改

php --ini
cp php.ini-development /usr/local/php/lib/php.ini	
#在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件
vim /usr/local/php/lib/php.ini#--1170行--修改mysqli.default_socket = /usr/local/mysql/mysql.sock#--939行--取消注释,修改date.timezone = Asia/Shanghai

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

在这里插入图片描述

六、修改httpd 服务的配置文件

vim /etc/httpd.conf 
#--395行--插入以下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#--259行--修改首页文件名设置
DirectoryIndex index.html index.php#---检查支持php7的模块是否存在------
#使用反斜杠搜索
LoadModule php7_module        modules/libphp7.so

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

七、验证PHP测试页

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>systemctl restart httpd.service

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

相关文章:

LAMP源码编译安装——CentOS7

文章目录 LAMP是什么LAMP软件组件LinuxApacheMySQLPHP 源码安装Apache一、准备工作二、安装环境依赖包三、配置软件模块四、编译及安装五、优化配置文件路径六、添加httpd系统服务&#xff08;有两种方法&#xff09;方法一&#xff1a;方法二&#xff1a; 七、修改httpd 服务配…...

oracle 还原被覆盖的视图

1.现在的视图 select to_lob(text) from SYS.DBA_views where view_nameXXX; 2.查旧数据 --as of timestamp to_date(2024-05-28 10:30:00,yyyy-mm-dd hh24:mi:ss) select to_lob(text) from SYS.DBA_views as of timestamp to_date(2024-05-28 10:30:00,yyyy-mm-dd hh24:mi:s…...

go语言同一包中的同一变量实现不同平台设置不同的默认值 //go:build 编译语法使用示例

在使用go来开发跨平台应用的时候&#xff0c;比如配置文件的路径&#xff0c;我们希望设置一个默认值&#xff0c;windows下的路径是类似 d:\myapp\app.conf 这样的&#xff0c; unix系统中的路径是 /opt/myapp/app.conf 这样的&#xff0c; 而我们在使用的时候需要使用的是同…...

校园周边美食探索及分享平台,基于 SpringBoot+Vue+MySQL 开发的前后端分离的校园周边美食探索及分享平台设计实现

目录 一. 前言 二. 功能模块 2.1. 前台首页功能模块 2.2. 用户功能模块 2.3. 管理员功能模块 三. 部分代码实现 四. 源码下载 一. 前言 美食一直是与人们日常生活息息相关的产业。传统的电话订餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起&#xff0…...

Discourse 编辑没有办法显示更多的 JS 错误

Priority/Severity: High Platform: 3.3.0.beta3-dev UI bugs Description: 昨天升级的时到最新版本的时候就发现有这个错误&#xff0c;是 JS 的错误。 发了一个帖子到官方的网站上&#xff0c;官方说可能是插件的问题。 但是我们实在是没有安装什么插件呀&#xff1f; 官方…...

CSS实现一个雨滴滑落效果

使用纯CSS来实现一个真实的雨滴滑落效果可能会有些挑战&#xff0c;因为CSS主要关注于静态样式和简单的动画效果。然而&#xff0c;你可以使用CSS动画和keyframes来模拟一个雨滴滑落的简化效果。 以下是一个基本的示例&#xff0c;展示如何使用CSS来模拟雨滴从顶部滑落到底部的…...

vue2+echarts地图下钻+地图遮盖物散点

一、下载工具 npm i echarts echarts-gl axios -S -S是生产依赖默认是-S不写也可以 -D是开发依赖 二、引入工具 import * as echarts from "echarts"; import "echarts-gl"; import axios from "axios"; 三、HTML部分代码 <div class&…...

关于C++的特殊类定制

特殊类定制 在C中&#xff0c;一些特殊性质的类如何设计 类禁止拷贝的对象 C11 使用delete关键字赋值给拷贝构造和赋值C98将拷贝构造和赋值声明在私有里 类只能在堆上创建的对象 将构造函数私有化, 提供一个获取对象堆上创建对象的公有函数将析构函数私有化, 提供一个释放…...

Linux备份脚本

作用 Linux文件备份的作用较多&#xff0c;推荐以下几种&#xff1a; 保护文件&#xff1a;备份可以帮助用户保护文件&#xff0c;防止文件被意外删除或损坏。保证系统安全和应用安全&#xff1a;Linux系统管理人员对系统和业务应用要有一个合理的备份恢复策略&#xff0c;完…...

【Unity】实现轮盘抽奖

简介 示例一&#xff1a;使用协程完成轮盘转动 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public class Lunpan : MonoBehaviour {[Tooltip("轮盘节点")]public Transform Roulette;[Tooltip("轮盘旋转的…...

面下对象之overload与override

简介 在面向对象编程中,重载(overloading)和重写(overriding)是两个不同的概念。 重载(Overloading)的定义 重载是同一个类中定义多个同名方法,但是这些方法具有不同的参数列表(参数个数、参数类型或参数顺序不同)。 当调用这个方法时,编译器会根据实际传入的参数自动选择对…...

大数据之Hive函数大全

&#x1f527; Hive函数大全 更多大数据学习资料请关注公众号“大数据领航员"免费领取 一、数学函数 1、取整函数: round 1.函数描述 返回值语法结构功能描述doubleround(double a)返回double类型的整数值部分&#xff08;遵循四舍五入&#xff09; 2.例程 hive>…...

宝塔下应该用 Memcached 还是 Redis?

明月最近在跟几个使用宝塔面板的客户运维的时候发现不少站长不知道如何选择 Memcached 和 Redis&#xff0c;甚至都说不清楚 Memcached 或者 Redis 具体是用来干啥的&#xff1f;甚至还碰到过一个站长 Memcached 和 Redis 都安装了&#xff0c;但一个都没有用&#xff0c;就那么…...

恢复视频3个攻略:从不同情况下的恢复方法到实践!

随着科技的进步&#xff0c;我们的生活被各种各样的数字内容所包围&#xff0c;其中&#xff0c;视频因其独特的记录性质&#xff0c;承载着许多重要的资料。但不管是自媒体人还是普通人日常生活随手一拍&#xff0c;都会遇到误删视频的情况。为了帮助您找回手机视频&#xff0…...

从git上拉取项目进行操作

1.Git的概念 Git是一个开源的分布式版本控制系统&#xff0c;可以有效、高速的处理从很小到非常大的项目版本管理。它实现多人协作的机制是利用clone命令将项目从远程库拉取到本地库&#xff0c;做完相应的操作后再利用push命令从本地库将项目提交至远程库。 2.Git的工作流程…...

ES升级--01--环境准备和安装

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Linux 单机1.官网下载 Elasticsearchhttps://www.elastic.co/cn/downloads/past-releases/#elasticsearch 2.解压软件3.创建用户设置用户 es 密码 es赋权ES用户数据…...

Linux 防火墙 firewalld 常用命令

1 防火墙 - firewalld 1.1 开启防火墙 # 临时性开启&#xff0c;服务器重启后会恢复为原来的状态 systemctl start firewalld # 永久性开启&#xff08;即开机启动&#xff09;&#xff0c;重启服务器后生效 systemctl enable firewalld1.2 关闭防火墙 # 临时性关闭&#xf…...

时间|基于SprinBoot+vue的时间管理系统(源码+数据库+文档)

时间管理系统 目录 基于SprinBootvue的时间管理系统 一、前言 二、系统设计 三、系统功能设计 1管理员功能模块 2用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农…...

C++青少年简明教程:for循环语句

C青少年简明教程&#xff1a;for循环语句 C的for循环语句是一种迭代控制语句&#xff0c;用于重复执行一段代码。 语法格式&#xff1a; for(表达式1&#xff1b;表达式2&#xff1b;表达式3) 循环体 for循环语句执行流程图&#xff1a; 不太好理解&#xff0c;请看下图&am…...

自动驾驶技术现状与需求分析

随着科技的不断进步和智能化浪潮的席卷&#xff0c;自动驾驶技术已成为当今交通领域的热点话题。本文旨在深入探讨自动驾驶技术的当前发展状况&#xff0c;并对其未来的市场需求进行细致分析。首先&#xff0c;我们将回顾自动驾驶技术的起源、发展历程以及当前的技术水平&#…...

SQL生成自然数,日历序列 浅析

01.sqlserver版本 使用sqlserver将数据复制n条 selectt.indx,t.name,tmp.vlue from (values(1,苹果) ) as t(indx, name) ,(select[number] as vluefrom master.dbo.spt_valueswhere [type] pand [number] between 1 and 10 ) as tmpspt_values是什么 spt_values是SQL Se…...

【数据结构(邓俊辉)学习笔记】二叉树04——Huffman树

文章目录 0. 概述1. 无前缀冲突编码2. 编码成本3. 带权编码成本4. 编码算法5. 算法实现流程6. 时间复杂度与改进方案 0. 概述 学习Huffman树。 1. 无前缀冲突编码 在加载到信道上之前&#xff0c;信息被转换为二进制形式的过程称作编码&#xff08;encoding&#xff09;&…...

arcgisPro将一个图层的要素复制到另一个图层

1、打开两个图层&#xff0c;如下&#xff0c;其中一个图层中有两个要素&#xff0c;需要将其中一个要素复制到另一个图层中&#xff0c;展示如下&#xff1a; 2、选中待复制要素&#xff0c;点击复制按钮&#xff0c;如下&#xff1a; 3、下拉粘贴按钮列表&#xff0c;选择【选…...

难兄难弟——Java中 goto 与 const关键字

目录 简洁版&#xff1a; 详解版&#xff1a; 一&#xff1a;goto 二&#xff1a;const 简洁版&#xff1a; 1&#xff1a; 在Java中&#xff0c;goto也是一个关键字&#xff0c;但是取消了goto的使用&#xff0c;使用循环标记进行代替&#xff1b; 2&#xff1a;在Java中&a…...

如何优化大文件读取时的性能

1、分块读取 1、不要一次性将整个文件加载到内存中&#xff0c;而是将其分割成多个较小的块&#xff08;例如&#xff0c;每块1MB或更大&#xff09;&#xff0c;然后逐块读取和处理。 2、使用FileInputStream和BufferedInputStream来分块读取文件。 2、使用缓冲区 1、使用…...

【机器学习】Chameleon多模态模型探究

Chameleon&#xff1a;引领多模态模型的新时代 一、多模态模型的时代背景二、Chameleon模型的介绍三、Chameleon模型的技术特点四、Chameleon模型的性能评估五、Chameleon模型的代码实例 随着人工智能技术的深入发展&#xff0c;我们逐渐认识到单一模态的模型在处理复杂问题时存…...

cv2.imdecode 和 cv2.imread 的区别

cv2.imdecode 和 cv2.imread 都是 OpenCV 用于读取图像的函数&#xff0c;但它们用于不同的场景&#xff0c;处理方式也不同。 cv2.imread 用法&#xff1a; img cv2.imread(image_path)功能&#xff1a; cv2.imread 用于直接从文件系统中读取图像文件。image_path 是图像文件…...

Android数据缓存框架 - 内存数据载体从LiveData到StateFlow

引言&#xff1a;所有成功者的背后&#xff0c;都有一份艰苦的历程&#xff0c;不要只看到了人前的风光&#xff0c;而低估了他们背后所付出的努力。 随着flow到流行度越来越高&#xff0c;有开发者呼吁我使用flow&#xff0c;于是我就如你们所愿&#xff0c;新增了StateFlow作…...

多态的好处

使用多态&#xff08;Polymorphism&#xff09;在C中有多个重要的原因&#xff0c;这些原因使得多态成为面向对象编程中不可或缺的一部分。以下是使用多态的一些关键原因&#xff1a; 代码复用和灵活性&#xff1a; 多态允许我们编写可以处理多种类型对象的通用代码。通过使用…...

Java基础语法---Stringjoiner

Stringjoiner 使用需要加入 import java.util.StringJoiner 构造方法: StringJoiner(CharSequence delimiter) 创建一个 StringJoiner 实例&#xff0c;使用指定的分隔符&#xff0c;前缀和后缀默认为空字符串。 StringJoiner(CharSequence delimiter, CharSequence prefix, C…...