当前位置: 首页 > 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…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...