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

青少年编程与数学 02-004 Go语言Web编程 01课题、Web应用程序

青少年编程与数学 02-004 Go语言Web编程 01课题、Web应用程序

  • 课题摘要:
  • 一、Web应用程序
  • 二、Web服务器
    • (一)什么是Web服务器
    • (二)Web服务器配置
      • 1. 选择服务器软件
      • 2. 安装服务器软件
      • 3. 配置服务器
      • 4. 安全设置
      • 5. 部署网站内容
      • 6. 测试服务器
      • 7. 监控和维护
      • 注意事项
  • 三、技术需求
    • 1. 前端技术
        • 基础技术
        • 前端框架和库
        • 前端构建工具
        • 版本控制
    • 2. 后端技术
        • 服务器端编程语言和框架
        • 数据库技术
        • Web服务器
      • 3. 安全性
      • 4. 性能优化
      • 5. 测试和部署
      • 6. API和微服务
      • 7. 用户体验(UX)和用户界面(UI)设计
      • 8. 项目管理和协作工具
  • 四、web应用与微服务
      • 1. Web应用
      • 2. 微服务
      • Web应用与微服务的关系
        • Web应用采用微服务的优势:
        • Web应用不采用微服务的情况:
      • 结合使用
      • 总结
  • 五、Go语言Web应用开发
      • 1. 安装Go语言
      • 2. 设置开发环境
      • 3. 学习基础语法
      • 4. 了解Go的Web框架
      • 5. 创建项目结构
      • 6. 编写代码
        • 设置路由和处理函数
        • 处理HTTP请求
        • 数据库交互
      • 7. 运行和测试
      • 8. 部署
      • 9. 性能优化和监控
      • 10. 学习资源

本文介绍了Web应用程序的概念、特点以及Web服务器的配置和管理。Web应用程序通过Web浏览器访问,无需在本地安装软件,常见于电子邮件服务、在线购物平台等。Web服务器处理HTTP请求、提供Web内容,并可执行CGI脚本,支持SSL/TLS加密通信。文章还提供了Web服务器配置的基本步骤,包括选择服务器软件、安装、配置、安全设置、部署网站内容、测试服务器以及监控和维护。

课题摘要:

本文介绍了Web应用程序的概念、特点以及Web服务器的配置和管理。Web应用程序通过Web浏览器访问,无需在本地安装软件,常见于电子邮件服务、在线购物平台等。Web服务器处理HTTP请求、提供Web内容,并可执行CGI脚本,支持SSL/TLS加密通信。文章还提供了Web服务器配置的基本步骤,包括选择服务器软件、安装、配置、安全设置、部署网站内容、测试服务器以及监控和维护。此外,文章还涉及了Web应用开发所需的前端技术、后端技术、数据库技术、安全性、性能优化、测试和部署、API和微服务、用户体验和界面设计、项目管理和协作工具。最后,探讨了Web应用与微服务的关系,并介绍了使用Go语言进行Web应用开发的步骤和概念。


一、Web应用程序

Web应用程序,通常简称为Web应用,是一种可以通过Web浏览器访问的软件应用程序。它允许用户与服务器上的应用程序进行交互,而无需在本地计算机上安装任何软件。以下是Web应用程序的一些关键特点:

常见的Web应用程序包括电子邮件服务、在线购物平台、社交媒体网站、在线文档编辑器等。随着云计算和移动技术的发展,Web应用程序在现代生活中扮演着越来越重要的角色。

二、Web服务器

(一)什么是Web服务器

WEB服务器,也称为Web服务器或HTTP服务器,是一种运行Web服务软件、能够处理HTTP请求并提供Web页面的计算机系统。它主要负责存储、处理和传输Web页面和应用程序,使得用户可以通过互联网访问这些资源。以下是WEB服务器的一些关键特点:

  1. 处理HTTP请求:WEB服务器监听特定的端口(通常是80端口用于HTTP,443端口用于HTTPS),等待客户端(如Web浏览器)发送HTTP请求。

  2. 提供Web内容:当服务器接收到请求时,它会根据请求的URL查找并返回相应的Web页面或资源,如HTML文件、图片、CSS样式表、JavaScript文件等。

  3. 执行CGI脚本:某些WEB服务器能够执行服务器端的CGI(Common Gateway Interface)脚本,这些脚本可以生成动态内容。

  4. 支持SSL/TLS:为了安全传输数据,许多WEB服务器支持SSL/TLS协议,允许通过HTTPS(安全超文本传输协议)加密通信。

  5. 负载均衡:在高流量的情况下,WEB服务器可以配置为负载均衡器,将请求分发到多个服务器,以提高性能和可用性。

  6. 缓存:为了提高响应速度和减少服务器负载,WEB服务器通常会缓存频繁请求的内容。

  7. 配置和管理:WEB服务器可以通过配置文件进行设置和管理,以适应不同的需求和安全策略。

常见的WEB服务器软件包括Apache HTTP Server、Nginx、Microsoft IIS(Internet Information Services)等。这些服务器软件提供了不同的功能和性能特点,以满足不同规模和需求的网站。

(二)Web服务器配置

设置自己的WEB服务器可以分为几个步骤,这里提供一个基本的指南,适用于个人或小型项目:

1. 选择服务器软件

首先,你需要选择一个WEB服务器软件。以下是一些流行的选择:

  • Apache HTTP Server:一个开源的WEB服务器软件,非常流行且功能强大。
  • Nginx:以其高性能和低资源消耗而闻名,适合处理大量并发连接。
  • Microsoft IIS:适用于Windows系统,功能全面。
  • Lighttpd:一个轻量级的WEB服务器,适合小型网站。

2. 安装服务器软件

根据你的操作系统,安装所选的WEB服务器软件。以下是一些基本的安装命令:

  • 对于Ubuntu/Debian系统

    sudo apt update
    sudo apt install apache2  # 安装Apache
    # 或者
    sudo apt install nginx  # 安装Nginx
    
  • 对于CentOS/RHEL系统

    sudo yum install httpd  # 安装Apache
    # 或者
    sudo yum install nginx  # 安装Nginx
    
  • 对于Windows系统

    • 可以通过“添加或删除程序”功能安装IIS。

3. 配置服务器

安装完成后,你需要配置服务器以适应你的需求。这包括设置监听端口、配置虚拟主机、设置安全规则等。

  • 编辑配置文件:对于Apache,配置文件通常位于/etc/apache2/sites-available/;对于Nginx,配置文件通常位于/etc/nginx/sites-available/

  • 设置虚拟主机:你可以为不同的域名或应用设置不同的虚拟主机。

4. 安全设置

确保你的WEB服务器安全是非常重要的。这包括:

  • 设置防火墙规则:只允许必要的端口(如80和443)对外开放。
  • 使用SSL/TLS:为你的域名获取SSL证书,并配置服务器以使用HTTPS。
  • 定期更新软件:以确保安全补丁和新特性。

5. 部署网站内容

将你的网站文件上传到服务器的适当目录。对于Apache和Nginx,这通常是/var/www/html/

6. 测试服务器

在浏览器中输入你的服务器IP地址或域名,检查网站是否能够正确加载。

7. 监控和维护

定期检查服务器日志,监控性能,并进行必要的维护。

注意事项

  • 确保你有足够的带宽和硬件资源来支持你的网站流量。
  • 了解并遵守当地的法律和规定,特别是关于数据保护和隐私的。
  • 如果你的网站处理敏感数据,确保采取额外的安全措施。

这只是一个基本的指南,具体步骤可能会根据你的具体需求和服务器软件的不同而有所变化。如果你需要更详细的指导,可以查看特定服务器软件的官方文档。

三、技术需求

当然可以!下面我将更详细地介绍Web应用开发所需的各个方面的技术。

1. 前端技术

基础技术
  • HTML(超文本标记语言):用于定义网页的结构和内容。
  • CSS(层叠样式表):用于控制网页的外观和布局。
  • JavaScript:用于实现网页的动态交互功能。
前端框架和库
  • React:由Facebook开发的用于构建用户界面的JavaScript库,采用组件化开发,支持虚拟DOM。
  • Vue.js:渐进式JavaScript框架,易于上手,适合构建单页面应用(SPA)。
  • Angular:由Google开发的框架,提供了完整的解决方案,包括数据绑定、依赖注入等。
前端构建工具
  • Webpack:模块打包器,将项目中的各种资源(JavaScript、CSS、图片等)打包成一个或多个文件。
  • Babel:JavaScript编译器,将ES6+代码转换为兼容性更好的ES5代码。
  • Gulp/Grunt:任务运行器,用于自动化常见的开发任务,如代码压缩、文件合并等。
版本控制
  • Git:分布式版本控制系统,用于跟踪代码的变化和协作开发。
  • GitHub/GitLab/Bitbucket:托管Git仓库的平台,提供代码托管、协作和CI/CD功能。

2. 后端技术

服务器端编程语言和框架
  • Node.js:基于Chrome V8引擎的JavaScript运行环境,适合构建高性能、可扩展的网络应用。
    • Express.js:Node.js的轻量级Web应用框架,提供了简洁的API。
  • Python:高级编程语言,适合快速开发和数据处理。
    • Django:全栈Web框架,提供了ORM、认证、模板等功能。
    • Flask:轻量级Web框架,灵活性高,适合小型项目。
  • Java:强类型语言,适合企业级应用开发。
    • Spring Boot:基于Spring框架的快速开发工具,简化了配置和部署。
  • PHP:服务器端脚本语言,广泛用于Web开发。
    • Laravel:现代PHP框架,提供了简洁的语法和丰富的功能。
  • Ruby:动态编程语言,适合快速开发。
    • Ruby on Rails:全栈Web框架,强调约定优于配置。
数据库技术
  • 关系型数据库
    • MySQL:开源关系型数据库管理系统,广泛使用。
    • PostgreSQL:功能强大的开源关系型数据库,支持复杂查询和事务。
    • SQL Server:微软开发的关系型数据库管理系统。
  • 非关系型数据库
    • MongoDB:文档型数据库,适合处理大规模数据和高并发。
    • Redis:内存数据库,适合缓存和实时数据处理。
    • Cassandra:分布式数据库,适合处理大规模数据和高可用性需求。
Web服务器
  • Nginx:高性能的HTTP和反向代理服务器,常用于负载均衡和静态资源服务。
  • Apache:开源的Web服务器软件,功能强大,配置灵活。

3. 安全性

  • HTTPS/SSL:通过加密通信保护数据传输的安全性。
  • 身份验证和授权
    • OAuth:开放标准的授权协议,允许用户授权第三方应用访问其资源。
    • JWT(JSON Web Tokens):用于在各方之间安全地传输信息的紧凑、URL安全的令牌。
  • 输入验证和输出编码:防止常见的安全漏洞,如SQL注入和跨站脚本攻击(XSS)。

4. 性能优化

  • 缓存机制
    • Redis:用于缓存数据库查询结果和会话数据。
    • Memcached:高性能的分布式内存对象缓存系统。
  • 负载均衡
    • Nginx:可以配置为负载均衡器,分发流量到多个服务器。
    • HAProxy:高性能的TCP/HTTP负载均衡器。
  • 数据库优化:通过索引、查询优化和数据库分片来提高性能。

5. 测试和部署

  • 单元测试和集成测试
    • Jest:JavaScript测试框架,适用于React应用。
    • Mocha:灵活的JavaScript测试框架,支持异步测试。
    • JUnit:Java的单元测试框架。
  • 端到端测试
    • Cypress:现代的前端测试工具,适用于端到端测试。
    • Selenium:自动化测试工具,支持多种浏览器和编程语言。
  • 持续集成/持续部署(CI/CD)
    • Jenkins:开源的自动化服务器,支持构建、部署和自动化。
    • GitLab CI:集成在GitLab中的CI/CD工具。
    • CircleCI:云端的CI/CD服务,支持快速构建和部署。
  • 容器化和编排
    • Docker:用于创建、部署和运行应用的容器化平台。
    • Kubernetes:用于自动化部署、扩展和管理容器化应用的开源系统。

6. API和微服务

  • RESTful API:基于HTTP的API设计风格,使用标准的HTTP方法(GET、POST、PUT、DELETE)进行操作。
  • GraphQL:用于API的查询语言,允许客户端请求所需的确切数据。
  • 微服务架构:将应用程序分解为一组小服务,每个服务运行在自己的进程中,并通常围绕特定的业务能力构建。

7. 用户体验(UX)和用户界面(UI)设计

  • 原型设计工具
    • Sketch:用于UI/UX设计的矢量图形编辑器。
    • Adobe XD:用于设计和原型制作的工具。
    • Figma:基于云的设计工具,支持实时协作。
  • 响应式设计:使用媒体查询和弹性布局确保Web应用在不同设备和屏幕尺寸上都能良好显示。

8. 项目管理和协作工具

  • 项目管理工具
    • Jira:用于敏捷开发的项目管理工具。
    • Trello:基于看板的项目管理工具。
  • 协作工具
    • Slack:团队沟通和协作工具。
    • Confluence:用于团队知识共享和文档管理的工具。

这些技术和工具的选择取决于项目的具体需求、团队的技能和业务目标。开发人员需要不断学习和适应新的技术和工具,以应对不断变化的开发环境和需求。

四、web应用与微服务

Web应用和微服务是两个相关但独立的概念,它们可以相互结合,也可以单独存在。下面详细解释它们之间的关系:

1. Web应用

Web应用是指通过Web浏览器访问的应用程序,用户可以在任何设备上通过网络访问这些应用。Web应用通常包括前端和后端两部分:

  • 前端:用户界面,负责展示数据和接收用户输入。
  • 后端:服务器端逻辑,负责处理业务逻辑、数据库交互等。

2. 微服务

微服务是一种软件架构风格,它将一个大型复杂软件应用分解为一组小型服务,每个服务运行在其独立的进程中,并通常围绕特定的业务能力构建。这些服务可以通过定义良好的API进行通信,通常是HTTP RESTful API或轻量级的消息传递系统。

Web应用与微服务的关系

  • 架构选择:Web应用可以采用单体架构(所有功能集成在一个应用中)或微服务架构(功能分散在多个小型服务中)。
Web应用采用微服务的优势:
  1. 可扩展性:微服务架构允许Web应用在需要时只扩展特定的服务,而不是整个应用,这有助于优化资源使用和成本。

  2. 灵活性和敏捷性:微服务允许团队独立开发和部署各个服务,这提高了开发速度和灵活性。

  3. 技术多样性:在微服务架构中,不同的服务可以使用最适合的技术栈开发,而单体应用通常受限于单一技术栈。

  4. 容错性:微服务架构中的服务是独立的,一个服务的故障不会导致整个应用的故障。

  5. 持续集成和持续部署(CI/CD):微服务架构天然适合CI/CD流程,可以快速迭代和部署。

Web应用不采用微服务的情况:
  • 简单应用:对于功能简单、需求变化不大的Web应用,单体架构可能更简单、成本效益更高。

  • 资源限制:微服务架构可能需要更多的资源来管理多个服务,对于资源有限的小型团队或初创公司,单体架构可能更实际。

结合使用

在实际开发中,Web应用可以作为微服务架构的客户端,通过API与后端的微服务进行交互。这种模式允许Web应用利用微服务架构的优势,同时保持用户界面的直观和易用性。

总结

Web应用和微服务可以独立存在,也可以结合使用。微服务架构为Web应用提供了一种灵活、可扩展的后端架构选择,但也需要更多的管理和协调工作。选择是否采用微服务架构,需要根据具体的业务需求、团队能力和资源进行权衡。

五、Go语言Web应用开发

使用Go语言(也称为Golang)进行Web应用开发是一个高效且流行的方法,因为Go语言以其并发能力、简洁的语法和高性能而闻名。以下是使用Go语言进行Web应用开发的一些关键步骤和概念:

1. 安装Go语言

首先,你需要在你的开发机器上安装Go语言。可以从Go语言的官方网站下载安装包并按照指南进行安装。

2. 设置开发环境

  • 编辑器/IDE:选择一个支持Go语言的编辑器或IDE,如Visual Studio Code、GoLand等。
  • 包管理:Go使用自己的包管理工具,go get,用于安装和管理依赖。

3. 学习基础语法

熟悉Go语言的基础语法,包括变量、控制流、函数、结构体等。

4. 了解Go的Web框架

Go语言有多个流行的Web框架,可以帮助你快速开发Web应用:

  • Net/http:Go语言标准库中的包,提供了HTTP客户端和服务器的实现。
  • Gin:一个高性能的Web框架,以快速和灵活著称。
  • Echo:另一个高性能、可扩展的、极简的Go语言Web框架。
  • Beego:一个功能全面的Web框架,提供了ORM、缓存、日志等。

5. 创建项目结构

一个典型的Go Web应用项目结构可能包括:

  • main.go:应用的入口点。
  • routers/:定义路由和控制器。
  • models/:定义数据模型和数据库操作。
  • views/:存放模板文件(如果使用模板渲染)。
  • static/:存放静态文件,如CSS、JavaScript和图片。

6. 编写代码

设置路由和处理函数

使用你选择的框架设置路由和处理函数。例如,使用Gin框架,你的main.go可能看起来像这样:

package mainimport ("github.com/gin-gonic/gin""net/http"
)func main() {router := gin.Default()router.GET("/", func(c *gin.Context) {c.String(http.StatusOK, "Hello, World!")})router.Run(":8080") // 监听并在 0.0.0.0:8080 上启动服务
}
处理HTTP请求

编写处理函数来响应不同的HTTP请求,处理业务逻辑,并返回响应。

数据库交互

使用Go的数据库驱动(如database/sql包)与数据库交互。你可以选择适合你的数据库的驱动,如MySQL、PostgreSQL等。

7. 运行和测试

使用go run main.go运行你的应用,并在浏览器中访问http://localhost:8080来查看结果。

8. 部署

将你的Go Web应用部署到服务器上。你可以使用容器化技术(如Docker)来简化部署和扩展。

9. 性能优化和监控

使用Go的内置工具和第三方工具来监控应用性能,并根据需要进行优化。

10. 学习资源

  • Go语言官方文档:提供了详细的语言规范和标准库文档。
  • 框架文档:你选择的框架的官方文档是学习如何使用框架的最好资源。
  • 在线课程和书籍:有许多在线课程和书籍可以帮助你学习Go语言和Web开发。

使用Go语言进行Web开发是一个不断学习和实践的过程,随着经验的积累,你将能够更高效地构建和维护Web应用。

相关文章:

青少年编程与数学 02-004 Go语言Web编程 01课题、Web应用程序

青少年编程与数学 02-004 Go语言Web编程 01课题、Web应用程序 课题摘要:一、Web应用程序二、Web服务器(一)什么是Web服务器(二)Web服务器配置1. 选择服务器软件2. 安装服务器软件3. 配置服务器4. 安全设置5. 部署网站内容6. 测试服…...

【mysql】如何解决主从架构从库延迟问题

目录 1. 说明2.优化主库的写入性能3. 优化网络性能4. 增强从库的硬件性能5. 调整从库的配置6. 主从架构优化7. 监控和调优8.使用 GTID 和 Group Replication 1. 说明 1.在 MySQL 数据库中,从库延迟(replication lag)是指主库和从库之间的数据…...

前端学习-获取DOM对象(二十一)

目录 前言 目标 提问 学习路径 根据CSS选择器来获取DOM元素 其他获取DOM元素的方法 根据CSS选择器来获取DOM元素 选择匹配的第一个元素 语法 示例 参数 返回值 选择匹配的多个元素语法 参数 字符串返回值 示例 补充 其它获取DOM元素方法 根据id获取一个元素 …...

PCL点云库入门——PCL库中Eigen数学工具库的基本使用(持续更新)

0、前言 PCL点云库中的算法都基于Eigen数学工具库来实现的,因此,掌握Eigen库对于深入理解和应用PCL点云库至关重要。Eigen库不仅提供了高效的矩阵和向量运算,还支持复杂的线性代数、几何变换等操作,为PCL点云处理提供了强大的数学…...

CLion Inlay Hints - 取消 CLion 灰色的参数和类型提示

CLion Inlay Hints - 取消 CLion 灰色的参数和类型提示 1. Parameter hints for C/C1.1. Toggle parameter hints globally 2. Type hints for C/C2.1. Toggle type hints globally 3. Toggle inlay hints globallyReferences https://www.jetbrains.com/help/clio…...

2025山东科技大学考研专业课复习资料一览

[冲刺]2025年山东科技大学020200应用经济学《814经济学之西方经济学[宏观部分]》考研学霸狂刷870题[简答论述计算题]1小时前[强化]2025年山东科技大学085600材料与化工《817物理化学》考研强化检测5套卷22小时前[冲刺]2025年山东科技大学030100法学《704综合一[法理学、国际法学…...

vue3 v-model实例之二,tab标签页的实现

<template><div><Tab v-model"activeTab" :list"tabs" /><div><p>当前激活的 Tab 索引: {{ activeTab }}</p></div></div> </template><script setup> import { ref } from vue; import Tab …...

东方通TongWeb7.0.4.9M4部署SuperMap iServer 11.2.1

一、软件版本 操作系统: CentOS Linux release 7.5.1804 (Core)JDK:11.0.18东方通&#xff1a;TongWeb7.0.4.9M4SuperMap iServer&#xff1a;11.2.1 JDK和TongWeb软件分享&#xff1a; 链接: https://pan.baidu.com/s/1HGDTPnPID0PEOMbg3FjTVQ?pwdbh8v 提取码: bh8v 东方通软…...

QT绘制同心扇形

void ChartForm::paintEvent(QPaintEvent *) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);// 设置抗锯齿painter.save();// 设置无边框&#xff08;不需要设置QPen&#xff0c;因为默认是不绘制边框的&#xff09;QPen pen(Qt::NoPen);// QPen pen…...

2012年西部数学奥林匹克试题(几何)

2012/G1 △ A B C \triangle ABC △ABC 内有一点 P P P, P P P 在 A B AB AB, A C AC AC 上的投影分别为 E E E, F F F, 射线 B P BP BP, C P CP CP 分别交 △ A B C \triangle ABC △ABC 的外接圆于点 M M M, N N N. r r r 为 △ A B C \triangle ABC △ABC 的内…...

8位移位寄存器的verilog语言

module shift_register (output reg [7:0] Q, // 8位移位寄存器输出input D, // 输入数据input rst, // 复位信号input clk // 时钟信号 );always (posedge clk) beginif (!rst)Q < 8b00000000; // 复位时将Q清零elseQ < {Q[6:0], D}; // 否则…...

【苍穹外卖】学习心得体会-随笔

前言 写了很久&#xff0c;终于可以完整运行项目了&#xff0c;记录下这几天的心得体会回顾一下知识点 第一天、Git 分布式版本控制工具 一、Git概述 定义&#xff1a;是分布式版本控制工具&#xff0c;用于管理软件开发中的源代码文件&#xff0c;像Java类、xml文件、html…...

MySQL学习之表的增删改

MySQL学习之表的增删改 语法总结&#xff1a; INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...); //指定字段添加数据 INSERT INTO 表名 VALUES (值1, 值2, ...); //给全部字段添加数据 INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, …...

电脑excel词典(xllex.dll)文件丢失是或损坏是什么原因?“xllex.dll文件缺失“要怎么解决?

Excel词典&#xff08;xllex.dll&#xff09;文件丢失或损坏&#xff1f;别担心&#xff0c;这里有解决之道&#xff01; 在日常的电脑使用和办公软件操作中&#xff0c;我们偶尔会碰到一些让人头疼的问题&#xff0c;比如Excel突然提示“Excel词典&#xff08;xllex.dll&…...

【CSS in Depth 2 精译_084】第 14 章:CSS 蒙版、形状与剪切概述 + 14.1:CSS 滤镜

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 14 章 蒙版、形状与剪切】 ✔️ 14.1 滤镜 ✔️ 14.1.1 滤镜的类型 ✔️14.1.2 背景滤镜 ✔️ 14.2 蒙版 文章目录 第 14 章 蒙版、形状与剪切 Masks, shapes, and…...

gorm源码解析(四):事务,预编译

文章目录 前言事务自己控制事务用 Transaction方法包装事务 预编译事务结合预编译总结 前言 前几篇文章介绍gorm的整体设计&#xff0c;增删改查的具体实现流程。本文将聚焦与事务和预编译部分 事务 自己控制事务 用gorm框架&#xff0c;可以自己控制事务的Begin&#xff0…...

前端优雅(装逼)写法(updating····)

1.>>右位移运算符取整数 它将一个数字的二进制位向右移动指定的位数&#xff0c;并在左侧填充符号位&#xff08;即负数用1填充&#xff0c;正数用0填充&#xff09;。 比如 2.99934 >> 0&#xff1a;取整结果是2&#xff0c;此处取整并非四舍五入 2.99934 会先…...

黑马Java面试教程_P7_常见集合_P4_HashMap

系列博客目录 文章目录 系列博客目录4. HashMap相关面试题4.4 面试题-HashMap的put方法的具体流程 频54.4.1 hashMap常见属性4.4.2 源码分析 HashMap的构造函数面试文稿&#xff1a; 4.5 讲一讲HashMap的扩容机制 难3频4面试文稿&#xff1a; 4.6 面试题-hashMap的寻址算法 难4…...

使用 CFD 加强水资源管理:全面概述

探索 CFD&#xff08;计算流体动力学&#xff09;在增强保护人类健康的土木和水利工程实践方面的重大贡献。 挑战 水资源管理是指规划、开发、分配和管理水资源最佳利用的做法。它包括广泛的活动&#xff0c;旨在确保水得到有效和可持续的利用&#xff0c;以满足各种需求&…...

XXE练习

pikachu-XXE靶场 1.POC:攻击测试 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY xxe "a">]> <foo>&xxe;</foo> 2.EXP:查看文件 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY xxe SY…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

【题解-洛谷】P10480 可达性统计

题目&#xff1a;P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图&#xff0c;分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M&#xff0c;接下来 M M M 行每行两个整数 x , y x,y x,y&#xff0c;表示从 …...