test3
这是一个测试
Hadoop
Hadoop 是一个用于分布式存储和处理大规模数据的开源框架,主要包括 Hadoop 分布式文件系统(HDFS)和 MapReduce 编程模型。下面将深入讲解 Hadoop 的工作原理和架构。
Hadoop 的作用Hadoop 的作用非常简单,就是在多计算机集群环境中营造一个统一而稳定的存储和计算环境,并能为其他分布式应用服务提供平台支持。
也就是说, Hadoop 在某种程度上将多台计算机组织成了一台计算机(做同一件事),那么 HDFS 就相当于这台计算机的硬盘,而 MapReduce 就是这台计算机的 CPU 控制器。
Hadoop 架构概述Hadoop 的核心组件包括:
Hadoop 分布式文件系统 (HDFS):负责存储大量数据。
MapReduce:一种分布式计算模型,用于处理和生成大规模数据集。
YARN (Yet Another Resource Negotiator):负责资源管理和任务调度。
HDFSHDFS 是一个分布式文件系统,设计用于在廉价硬件上存储超大规模数据。它具有高容错性和高吞吐量的特点。
HDFS 的核心组件:
NameNode:负责管理HDFS ...
REST控制器
REST 控制器是用于构建基于 REST 架构风格的 Web 服务的一部分。REST(Representational State Transfer)是一种基于 HTTP 协议的网络架构风格,它定义了一组约束和属性,通过使用一小组标准操作(如 GET、POST、PUT、DELETE)进行数据操作。Spring Boot 提供了方便的注解和工具,使得创建 RESTful Web 服务变得非常简单。
REST 控制器的核心概念
资源(Resource):
在 REST 架构中,资源是网络上的实体,通常通过 URI(统一资源标识符)来标识。每个资源都有一个唯一的 URI。
HTTP 方法:
REST 使用标准的 HTTP 方法来执行操作。常用的 HTTP 方法有:
GET:从服务器获取资源。
POST:向服务器创建一个新的资源。
PUT:更新服务器上的资源。
DELETE:删除服务器上的资源。
表示(Representation):
资源的表示是将资源的状态传输给客户端的一种方式,通常是 JSON 或 XML 格式。
无状态(Stateless):
每个请求都必须包含处理该请 ...
spingboot
Spring Boot 是一个基于 Spring 框架的开源项目,用于简化 Spring 应用程序开发。它通过提供默认配置和预先配置的设置,使得开发生产级别的应用程序更加容易和快速。
Spring Boot 的主要特性
自动配置 (Auto-Configuration): Spring Boot 可以根据项目中包含的依赖自动配置 Spring 应用程序,这减少了大量的手动配置工作。
独立运行 (Standalone): Spring Boot 应用程序可以打包成 JAR 文件并且可以直接运行,不需要外部的应用服务器。这是通过内嵌的 Tomcat、Jetty 或者 Undertow 实现的。
生产准备 (Production-Ready): Spring Boot 提供了多种生产环境的特性,如监控、健康检查和外部化配置等,这使得应用程序更易于部署和维护。
简化的构建和开发 (Simplified Build and Development): 使用 Spring Boot,可以通过简化的项目设置和减少的配置来加快开发过程。常见的开发任务(如依赖管理、测试和部署)变得更加简便。
Sprin ...
spingboot相关注解
@RestController@RestController 是 Spring 框架中的一个注解,用于构建 RESTful Web 服务。当你将一个类标记为 @RestController 时,Spring 会理解这个类将处理 HTTP 请求,并以 RESTful 的方式返回响应。以下是详细介绍:
用途:@RestController 的主要目的是简化开发 RESTful Web 服务的过程。它结合了 @Controller 和 @ResponseBody 注解的功能。
RequestMapping:当你将一个类标记为 @RestController 时,通常会与 @RequestMapping、@GetMapping、@PostMapping 等一起使用,以定义 HTTP 请求的 URL 映射。
响应:@RestController 注解的类中的方法直接返回对象,Spring 会根据请求的 Accept 头自动将其转换为 JSON 或 XML 响应。
示例:
1234567891011import org.springframework.web.bind.annotation ...
vue
Vue项目工程的介绍public:放静态文件的地方,比如html、静态图标等等src:项目的源码目录src.assets:可以放一些logo、图片、自定义样式啥的src.components:vue组件src.router:定义路由,每个路由对应一个页面src.views:视图文件App.vue:所有页面的入口main.js:所有配置的入口,可以导入项目所需要的包,然后组合在一起vue.config.js:vue项目里的一些配置,可以配置端口、跨域等等
c++标准库介绍
C++标准库(Standard Library)是C++编程语言的重要组成部分,它提供了大量的函数、类和模板,用于各种常见的编程任务,如输入输出、字符串处理、数据结构和算法等。C++标准库使得编写高效、可维护和可移植的程序变得更加容易。
以下是C++标准库的一些主要组件和头文件:
基础输入输出流
<iostream>: 提供输入输出流,如std::cin, std::cout, std::cerr。
12#include <iostream>std::cout << "Hello, World!" << std::endl;
<iomanip>: 提供输入输出流的格式控制,如设置宽度、填充字符等。
12#include <iomanip>std::cout << std::setw(10) << 42 << std::endl;
<fstream>: 提供文件输入输出流,如std::ifstream, std::ofstream。
123#in ...
git相关
git clone步骤
获取仓库 URL:
登录到你的 GitHub 账号。
导航到你要克隆的项目页面。
点击页面右上角的绿色 “Code” 按钮,会弹出一个下拉菜单,里面有项目的 HTTPS 和 SSH URL。选择 HTTPS 或 SSH URL 并复制。
打开终端或命令行:
在你的电脑上打开终端(Mac 和 Linux 用户)或命令行(Windows 用户)。
导航到目标目录:
使用 cd命令导航到你希望存放项目的目录。例如:
1cd /path/to/your/directory
克隆仓库:
使用 git clone命令将项目克隆到本地。将 repository-url替换为你在步骤 1 中复制的仓库 URL。例如:
1git clone https://github.com/your-username/your-repository.git
或者,如果你使用 SSH:
1git clone git@github.com:your-username/your-repository.git
进入项目目录:
克隆完成后,Git 会在当前目录下创建一个与 ...
贪心算法
理论基础贪心算法基本概念贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
贪心算法基本思路
基本思想
贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件。若下一个数据和部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加算法停止 。
贪心算法过程
建立数学模型来描述问题;
把求解的问题分成若干个子问题;
对每一子问题求解,得到子问题的局部最优解;
把子问题的解局部最优解合成原来解问题的一个解。
适合解决问题l 适用问题
贪心策略适用的前提是:局部最优策略能导致产生全局最优解。
l 实现框架
从问题的某一初始解出发;
while (能朝给定 ...
时间复杂度
时间复杂度估算方法
简单语句
简单的赋值语句,读写语句,可以看作所用时间为常量记为O(1)。
分支语句
在分支语句中,以所耗费时间最多的那个分支来计算时间复杂度。
循环语句
在循环语句中,每循环1次记为O(1),循环n次时间复杂度为O(n)。
嵌套循环
在嵌套循环中,时间复杂度是多个循环的叠加,如下所示:
在嵌套循环中,时间复杂度
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) …….
O(n*n)=O(n^2)
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=n;i++) …….
O(n*n)=O(n^3)
for(int i=1;i<=n;i++) {for(int j=1;j<=n;j++){…..} for(int k=1;k<=n;i++){ …….}}
O(nn)=O(2n^2)