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

Python常见面试题的详解24

1. 如何对关键词触发模块进行测试

  • 要点

  • 功能测试:验证正常关键词触发、边界情况及大小写敏感性,确保模块按预期响应不同输入。

  • 性能测试:关注响应时间和并发处理能力,保证模块在不同负载下的性能表现。

  • 兼容性测试:测试不同输入方式、操作系统和浏览器下模块的工作情况,提升其通用性。

python

import time
import threading# 关键词触发模块示例
keyword_mapping = {"hello": "Hello! How can I help you?","bye": "Goodbye! Have a nice day."
}def keyword_trigger(keyword):if keyword in keyword_mapping:return keyword_mapping[keyword]return "No relevant response."# 功能测试 - 正常关键词触发
def test_normal_trigger():test_keyword = "hello"result = keyword_trigger(test_keyword)print(f"Testing normal keyword '{test_keyword}': {result}")# 功能测试 - 边界情况测试(假设关键词长度范围 1 - 10)
def test_boundary_trigger():short_keyword = "a"long_keyword = "a" * 10print(f"Testing short keyword '{short_keyword}': {keyword_trigger(short_keyword)}")print(f"Testing long keyword '{long_keyword}': {keyword_trigger(long_keyword)}")# 功能测试 - 大小写敏感性测试
def test_case_sensitivity():test_keyword = "Hello"result = keyword_trigger(test_keyword)print(f"Testing case - sensitive keyword '{test_keyword}': {result}")# 性能测试 - 响应时间测试
def test_response_time():test_keyword = "bye"start_time = time.time()response = keyword_trigger(test_keyword)end_time = time.time()print(f"Response time for keyword '{test_keyword}': {end_time - start_time} seconds")# 性能测试 - 并发测试
def concurrent_trigger(keyword):result = keyword_trigger(keyword)print(f"Concurrent test result for '{keyword}': {result}")def test_concurrency():threads = []keyword = "hello"for _ in range(10):  # 模拟 10 个并发请求thread = threading.Thread(target=concurrent_trigger, args=(keyword,))threads.append(thread)thread.start()for thread in threads:thread.join()# 兼容性测试 - 模拟不同输入方式(文件输入)
def test_compatibility_file_input():with open('test_keywords.txt', 'w') as f:f.write("hello\nbye")with open('test_keywords.txt', 'r') as f:for line in f:keyword = line.strip()result = keyword_trigger(keyword)print(f"Testing keyword from file '{keyword}': {result}")if __name__ == "__main__":test_normal_trigger()test_boundary_trigger()test_case_sensitivity()test_response_time()test_concurrency()test_compatibility_file_input()

  • 补充知识点

  • 可以引入更多的关键词规则,如支持关键词的模糊匹配,使用正则表达式来处理更复杂的关键词匹配逻辑。

  • 对于并发测试,可以使用专业的性能测试工具如 locust 进行更全面的性能分析,模拟大量用户的并发请求。

  • 在兼容性测试方面,可以进一步测试不同编码格式的文件输入,以及在不同 Python 版本下的兼容性。

2. 说明测试人员在软件开发过程中的任务

  • 要点

  • 需求分析阶段:参与评审,从测试角度确保需求完整、准确、可测试,并理解软件功能与非功能需求。

  • 测试计划阶段:制定测试计划,明确范围、方法、进度,确定所需资源。

  • 测试设计阶段:依据需求和设计文档设计全面的测试用例,准备各类测试数据。

  • 测试执行阶段:执行用例,记录结果,发现并跟踪缺陷,推动问题解决。

  • 测试总结阶段:分析结果,评估软件质量,编写详细测试报告。

python

import datetime# 模拟测试计划制定
class TestPlan:def __init__(self, scope, method, schedule, resources):self.scope = scopeself.method = methodself.schedule = scheduleself.resources = resourcesdef print_plan(self):print(f"Test Scope: {self.scope}")print(f"Test Method: {self.method}")print(f"Test Schedule: {self.schedule}")print(f"Test Resources: {self.resources}")# 模拟测试用例设计
class TestCase:def __init__(self, case_id, description, input_data, expected_output):self.case_id = case_idself.description = descriptionself.input_data = input_dataself.expected_output = expected_outputdef print_case(self):print(f"Test Case ID: {self.case_id}")print(f"Description: {self.description}")print(f"Input Data: {self.input_data}")print(f"Expected Output: {self.expected_output}")# 模拟测试执行和结果记录
class TestExecution:def __init__(self, test_case):self.test_case = test_caseself.actual_output = Noneself.result = Noneself.execution_time = Nonedef execute(self):# 这里简单模拟执行,实际中应调用被测试的功能self.actual_output = f"Simulated output for {self.test_case.input_data}"self.result = self.actual_output == self.test_case.expected_outputself.execution_time = datetime.datetime.now()print(f"Test Case ID: {self.test_case.case_id}, Result: {'Pass' if self.result else 'Fail'}")# 模拟测试总结
class TestSummary:def __init__(self, test_executions):self.test_executions = test_executionsself.passed_count = sum([1 for exec in test_executions if exec.result])self.failed_count = len(test_executions) - self.passed_countdef print_summary(self):print(f"Total Test Cases: {len(self.test_executions)}")print(f"Passed: {self.passed_count}")print(f"Failed: {self.failed_count}")print("Overall Software Quality: Good" if self.failed_count == 0 else "Needs Improvement")# 制定测试计划
scope = "User registration and login functions"
method = "Functional testing"
schedule = "Week 1 - Design test cases, Week 2 - Execute tests"
resources = "Test environment: Local server, Test tools: Selenium"
test_plan = TestPlan(scope, method, schedule, resources)
test_plan.print_plan()# 设计测试用例
test_case_1 = TestCase(1, "Register a new user", {"username": "testuser", "password": "testpass"}, "Registration successful")
test_case_2 = TestCase(2, "Login with valid credentials", {"username": "testuser", "password": "testpass"}, "Login successful")
test_case_1.print_case()
test_case_2.print_case()# 执行测试用例
executions = []
for test_case in [test_case_1, test_case_2]:execution = TestExecution(test_case)execution.execute()executions.append(execution)# 测试总结
summary = TestSummary(executions)
summary.print_summary()

  • 补充知识点

  • 可以将测试计划、用例、执行结果等信息存储到数据库中,方便进行更复杂的管理和查询。

  • 引入测试框架如 unittestpytest 来更规范地组织和执行测试用例。

  • 在测试总结阶段,可以生成更详细的报告,如 HTML 格式的报告,包含每个测试用例的详细信息和统计图表。

3. 一条软件 Bug 记录都包含了哪些内容?

  • 要点

软件 Bug 记录涵盖基本信息(编号、标题、发现时间、发现人)、问题描述(重现步骤、实际结果、预期结果)、环境信息(操作系统、浏览器等)、严重程度和优先级,还可附带相关附件。

python

import datetimeclass BugRecord:def __init__(self, bug_id, title, found_time, finder, steps, actual_result, expected_result, os, browser, severity, priority, attachments=None):self.bug_id = bug_idself.title = titleself.found_time = found_timeself.finder = finderself.steps = stepsself.actual_result = actual_resultself.expected_result = expected_resultself.os = osself.browser = browserself.severity = severityself.priority = priorityself.attachments = attachments if attachments else []def print_bug_record(self):print(f"Bug ID: {self.bug_id}")print(f"Title: {self.title}")print(f"Found Time: {self.found_time}")print(f"Finder: {self.finder}")print(f"Steps to Reproduce: {self.steps}")print(f"Actual Result: {self.actual_result}")print(f"Expected Result: {self.expected_result}")print(f"Operating System: {self.os}")print(f"Browser: {self.browser}")print(f"Severity: {self.severity}")print(f"Priority: {self.priority}")if self.attachments:print(f"Attachments: {', '.join(self.attachments)}")# 创建一个 Bug 记录
bug = BugRecord(bug_id=1,title="Login button not working",found_time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),finder="John",steps="Open the website -> Click on the login button",actual_result="Nothing happens when clicking the login button",expected_result="The login form should pop - up",os="Windows 10",browser="Chrome",severity="High",priority="High",attachments=["screenshot.png"]
)
bug.print_bug_record()

  • 补充知识点

  • 可以实现一个 Bug 管理系统,将 Bug 记录存储到数据库中,支持 Bug 的添加、修改、删除、查询等操作。

  • 为 Bug 记录添加更多的状态信息,如已分配、已修复、已验证等,方便跟踪 Bug 的处理流程。

  • 可以通过邮件或消息通知机制,及时将 Bug 的状态变化通知相关人员。

4. 说明黑盒测试和白盒测试的优缺点

  • 要点

  • 黑盒测试:优点是不依赖代码、从用户角度测试、适用于各种软件;缺点是难以发现内部缺陷、测试用例设计困难、无法进行覆盖测试。

  • 白盒测试:优点是能发现内部缺陷、可进行覆盖测试、有助于代码优化;缺点是依赖代码、测试成本高、不能完全保证功能正确性。

python

import unittest
import coverage# 示例函数
def add_numbers(a, b):return a + b# 黑盒测试示例
class BlackBoxTest(unittest.TestCase):def test_add_numbers(self):test_inputs = [(1, 2), (0, 0), (-1, 1)]for input_pair in test_inputs:result = add_numbers(*input_pair)expected = input_pair[0] + input_pair[1]self.assertEqual(result, expected)# 白盒测试示例
# 这里使用 coverage.py 来统计代码覆盖率
cov = coverage.Coverage()
cov.start()suite = unittest.TestSuite()
suite.addTest(BlackBoxTest("test_add_numbers"))
runner = unittest.TextTestRunner()
runner.run(suite)cov.stop()
cov.report()

  • 补充知识点

  • 对于黑盒测试,可以使用数据驱动测试的方法,通过读取外部数据文件(如 CSV、JSON)来生成更多的测试用例。

  • 白盒测试方面,可以结合静态代码分析工具如 pylintflake8 来发现代码中的潜在问题。

  • 可以使用更复杂的测试框架和工具,如 pytest 来提高测试效率和可维护性。

5. 请列出至少 5 项你所知道的软件测试种类

  • 要点

常见软件测试种类包括功能测试、性能测试、兼容性测试、安全测试、易用性测试、可靠性测试、单元测试、集成测试、系统测试和验收测试。

python

import unittest
import time# 示例函数
def multiply_numbers(a, b):return a * b# 功能测试示例
class FunctionalTest(unittest.TestCase):def test_multiply(self):test_inputs = [(2, 3), (0, 5), (-1, 4)]for input_pair in test_inputs:result = multiply_numbers(*input_pair)expected = input_pair[0] * input_pair[1]self.assertEqual(result, expected)# 性能测试示例
def performance_test():start_time = time.time()for _ in range(1000):multiply_numbers(2, 3)end_time = time.time()print(f"Performance test: {end_time - start_time} seconds for 1000 calls")# 单元测试示例
if __name__ == '__main__':suite = unittest.TestSuite()suite.addTest(FunctionalTest("test_multiply"))runner = unittest.TextTestRunner()runner.run(suite)performance_test()

  • 补充知识点

  • 对于性能测试,可以使用专业的性能测试工具如 locustJMeter 来模拟大量用户的并发请求,进行更全面的性能分析。

  • 兼容性测试可以使用 Selenium 框架来测试不同浏览器和操作系统下的软件表现。

  • 安全测试可以使用 OWASP ZAP 等工具来检测软件的安全漏洞。

6. 说明Alpha 测试与 Beta 测试的区别

  • 要点

  • Alpha 测试:在开发或内部测试环境进行,由开发团队或内部人员执行,目的是全面测试和调试软件。

  • Beta 测试:在实际用户环境进行,由真实用户参与,重点是收集用户反馈和发现实际使用中的问题。

python

# 示例软件功能
def software_function(data):return data.upper()# Alpha 测试
alpha_testers = ["Alice", "Bob"]
alpha_test_data = ["hello", "world"]
alpha_results = []
for tester in alpha_testers:for data in alpha_test_data:result = software_function(data)alpha_results.append((tester, data, result))print(f"Alpha Test by {tester} - Input: {data}, Output: {result}")# Beta 测试
beta_users = ["Eve", "Charlie"]
beta_test_data = ["python", "programming"]
beta_feedbacks = []
for user in beta_users:for data in beta_test_data:result = software_function(data)feedback = input(f"Beta Test by {user} - Input: {data}, Output: {result}. Please provide feedback: ")beta_feedbacks.append((user, data, result, feedback))print(f"Feedback from {user}: {feedback}")# 分析测试结果
print("\nAlpha Test Results:")
for tester, data, result in alpha_results:print(f"{tester} - Input: {data}, Output: {result}")print("\nBeta Test Feedbacks:")
for user, data, result, feedback in beta_feedbacks:print(f"{user} - Input: {data}, Output: {result}, Feedback: {feedback}")

  • 补充知识点

  • 可以使用数据库来存储 Alpha 测试和 Beta 测试的结果和反馈,方便进行数据分析和统计。

  • 开发一个简单的 Web 界面,让用户更方便地参与 Beta 测试和提交反馈。

  • 对反馈进行分类和整理,使用自然语言处理技术来分析用户反馈,提取有价值的信息。

7. 什么是 Bug?一个 bug report 应包含哪些关键字

  • 要点

Bug 是软件不符合预期行为的问题,如电商网站购物车数量更新问题。Bug 报告应包含重现步骤、实际结果、预期结果、严重程度、优先级和环境信息等关键字。

python

# 示例函数,存在 Bug
def divide_numbers(a, b):return a / b# 发现 Bug
try:result = divide_numbers(5, 0)
except ZeroDivisionError:# 模拟 Bug 报告bug_report = {"重现步骤": "调用 divide_numbers 函数,传入参数 (5, 0)","实际结果": "抛出 ZeroDivisionError 异常","预期结果": "应该给出合理的错误提示,而不是抛出异常","严重程度": "高","优先级": "高","环境信息": "Python 3.10"}for

8. 如何找出数组中出现次数超过一半的数字

  • 要点

此问题可以使用摩尔投票法来高效解决。其核心思路是在遍历数组的过程中,维护一个候选元素和一个计数。当计数为 0 时,更换候选元素;若当前元素与候选元素相同则计数加 1,不同则减 1。由于目标数字出现次数超过一半,最后剩下的候选元素即为所求。

python

def majorityElement(nums):# 初始化计数为 0count = 0# 初始化候选元素为 Nonecandidate = None# 遍历数组中的每个数字for num in nums:# 当计数为 0 时,更新候选元素为当前数字if count == 0:candidate = num# 如果当前数字等于候选元素,计数加 1if num == candidate:count += 1# 否则计数减 1else:count -= 1return candidate# 测试示例
nums = [3, 2, 3]
print(majorityElement(nums))  

  • 补充知识点

       1. 输入验证:在函数开始处添加对输入数组的验证,确保数组不为空。

python

def majorityElement(nums):if not nums:return Nonecount = 0candidate = Nonefor num in nums:if count == 0:candidate = numif num == candidate:count += 1else:count -= 1return candidate

       2. 其他方法实现:可以使用哈希表来统计每个数字出现的次数,然后找出出现次数超过一半的数字。

python

def majorityElement(nums):num_count = {}for num in nums:if num in num_count:num_count[num] += 1else:num_count[num] = 1half_length = len(nums) // 2for num, count in num_count.items():if count > half_length:return numreturn None

9. 如何求 100 以内的质数

  • 要点

质数是指大于 1 且只能被 1 和自身整除的正整数。判断一个数是否为质数,可以检查它是否能被 2 到其平方根之间的数整除。通过遍历 2 到 100 的每个数,利用质数判断函数找出所有质数。

python

def is_prime(num):# 小于 2 的数不是质数if num < 2:return False# 检查从 2 到 num 的平方根之间的数是否能整除 numfor i in range(2, int(num**0.5) + 1):if num % i == 0:return Falsereturn True# 使用列表推导式找出 100 以内的质数
primes = [i for i in range(2, 101) if is_prime(i)]
print(primes)

  • 补充知识点

       1. 指定范围的质数查找:将代码封装成函数,接受起始和结束范围作为参数,以查找指定范围内的质数。

python

def find_primes_in_range(start, end):def is_prime(num):if num < 2:return Falsefor i in range(2, int(num**0.5) + 1):if num % i == 0:return Falsereturn Truereturn [i for i in range(start, end + 1) if is_prime(i)]# 测试示例
print(find_primes_in_range(10, 50))

         2. 埃拉托斯特尼筛法:这是一种更高效的质数筛选算法。

python

def sieve_of_eratosthenes(n):primes = [True] * (n + 1)p = 2while p * p <= n:if primes[p]:for i in range(p * p, n + 1, p):primes[i] = Falsep += 1result = []for p in range(2, n + 1):if primes[p]:result.append(p)return resultprint(sieve_of_eratosthenes(100))

10. 如何实现无重复字符的最长子串

  • 要点

使用滑动窗口和哈希表来解决此问题。滑动窗口由左右指针界定,哈希表用于记录每个字符最后出现的位置。遍历字符串时,若遇到重复字符且该字符在当前窗口内,移动左指针到重复字符的下一个位置,同时更新哈希表和最大长度。

python

def lengthOfLongestSubstring(s):# 初始化哈希表,用于记录字符及其最后出现的位置char_index_map = {}# 初始化左指针为 0left = 0# 初始化最大长度为 0max_length = 0# 遍历字符串,右指针从 0 开始for right in range(len(s)):# 如果当前字符在哈希表中,且其最后出现的位置在左指针及之后if s[right] in char_index_map and char_index_map[s[right]] >= left:# 移动左指针到重复字符的下一个位置left = char_index_map[s[right]] + 1# 更新当前字符的最后出现位置char_index_map[s[right]] = right# 计算当前窗口的长度current_length = right - left + 1# 更新最大长度max_length = max(max_length, current_length)return max_length# 测试示例
s = "abcabcbb"
print(lengthOfLongestSubstring(s))  

  • 补充知识点

       1. 优化空间复杂度:可以使用一个固定大小的数组来代替哈希表,以减少空间开销。

python

def lengthOfLongestSubstring(s):char_index = [-1] * 128left = 0max_length = 0for right in range(len(s)):index = ord(s[right])if char_index[index] >= left:left = char_index[index] + 1char_index[index] = rightmax_length = max(max_length, right - left + 1)return max_length

        2. 返回最长子串:对代码进行扩展,不仅返回最长子串的长度,还返回具体的最长子串。

python

def lengthOfLongestSubstring(s):char_index_map = {}left = 0max_length = 0start = 0for right in range(len(s)):if s[right] in char_index_map and char_index_map[s[right]] >= left:left = char_index_map[s[right]] + 1char_index_map[s[right]] = rightcurrent_length = right - left + 1if current_length > max_length:max_length = current_lengthstart = leftreturn s[start:start + max_length]s = "abcabcbb"
print(lengthOfLongestSubstring(s))

11. 如何通过 2 个 5升和6 升的水壶从池塘得到 3 升水

  • 要点

通过一系列倒水操作,利用 5 升和 6 升水壶的容量差,逐步调整两个水壶中的水量,最终在 6 升水壶中得到 3 升水。关键在于合理规划每次倒水的动作。

python

# 初始化 5 升水壶的水量为 0
jug_5 = 0
# 初始化 6 升水壶的水量为 0
jug_6 = 0
# 用于记录操作步骤的列表
steps = []# 开始操作,直到 6 升水壶中有 3 升水
while jug_6 != 3:if jug_6 == 0:# 如果 6 升水壶为空,将其装满jug_6 = 6steps.append("Fill the 6 - liter jug")elif jug_5 == 5:# 如果 5 升水壶已满,将其倒掉jug_5 = 0steps.append("Empty the 5 - liter jug")elif jug_6 > 0 and jug_5 < 5:# 如果 6 升水壶有水且 5 升水壶未满,从 6 升水壶向 5 升水壶倒水pour = min(5 - jug_5, jug_6)jug_5 += pourjug_6 -= poursteps.append(f"Pour water from the 6 - liter jug to the 5 - liter jug: {pour} liters")# 输出操作步骤
for step in steps:print(step)
print(f"Finally, the 6 - liter jug contains {jug_6} liters of water.")

  • 补充知识点

        1. 通用化解决方案:将代码封装成函数,接受两个水壶的容量和目标水量作为参数,以解决更一般的水壶倒水问题。

python

def get_target_water(capacity_1, capacity_2, target):jug_1 = 0jug_2 = 0steps = []while jug_1 != target and jug_2 != target:if jug_2 == 0:jug_2 = capacity_2steps.append(f"Fill the {capacity_2}-liter jug")elif jug_1 == capacity_1:jug_1 = 0steps.append(f"Empty the {capacity_1}-liter jug")elif jug_2 > 0 and jug_1 < capacity_1:pour = min(capacity_1 - jug_1, jug_2)jug_1 += pourjug_2 -= poursteps.append(f"Pour water from the {capacity_2}-liter jug to the {capacity_1}-liter jug: {pour} liters")final_jug = 1 if jug_1 == target else 2for step in steps:print(step)print(f"Finally, the {capacity_1 if final_jug == 1 else capacity_2}-liter jug contains {target} liters of water.")# 测试示例
get_target_water(5, 6, 3)

          2. 使用图论方法:可以将水壶的状态看作图中的节点,倒水操作看作边,使用广度优先搜索(BFS)算法来寻找从初始状态到目标状态的最短路径,以得到最优解。

 友情提示:本文已经整理成文档,可以到如下链接免积分下载阅读

https://download.csdn.net/download/ylfhpy/90435852

相关文章:

Python常见面试题的详解24

1. 如何对关键词触发模块进行测试 要点 功能测试&#xff1a;验证正常关键词触发、边界情况及大小写敏感性&#xff0c;确保模块按预期响应不同输入。 性能测试&#xff1a;关注响应时间和并发处理能力&#xff0c;保证模块在不同负载下的性能表现。 兼容性测试&#xff1a;测…...

加载大数据时性能压力优化

1. 减少数据请求量 分页加载&#xff08;Pagination&#xff09; 原理&#xff1a;将数据拆分为多页&#xff0c;按需加载。实现&#xff1a; 传统分页&#xff08;页码切换&#xff09;。无限滚动&#xff08;滚动到底部自动加载下一页&#xff0c;如社交媒体&#xff09;。…...

动态自定义标签属性页面(Tomcat 9)

java文件 &#xff0c;包名org.rain.tag package org.rain.tag; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.DynamicAttributes; import javax.servlet.jsp.…...

使用Fuse-DFS挂载文件存储 HDFS-后端存储ceph

1. 编译环境准备 yum install cmake3 ln -s /usr/bin/cmake3 /usr/bin/cmake yum install gcc-c安装挂载依赖 yum -y install fuse fuse-devel fuse-libs执行以下命令&#xff0c;载入FUSE模块 modprobe fuse2. 下载源码包 hadoop-3.3.4-src.tar.gz解压后执行以下命令 打开…...

DBGPT安装部署使用

简介 DB-GPT是一个开源的AI原生数据应用开发框架(AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents)。 目的是构建大模型领域的基础设施&#xff0c;通过开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Mul…...

How to use VRX on ubuntu20.04 with ROS1 Noetic?[2]

How to use VRX on ubuntu20.04 with ROS1 Noetic?[2] 1.Which topics2.Control1.1操作模拟船&#xff08;1&#xff09;命令行直接发布&#xff08;2&#xff09;启动键盘控制文件 3.Customer your VRX world3.1Which world parameters3.2改变风的参数 3.2.1更改默认参数&…...

yolov8 目标追踪 (源码 +效果图)

1.在代码中 增加了s键开始追踪 e键结束追踪 显示移动距离(代码中可调标尺和像素的比值 以便接近实际距离) 2.绘制了监测区域 只在区域内的检测 3.规定了检测的类别 只有人类才绘制轨迹 import osimport cv2 from ultralytics import YOLO from collections import defaultdic…...

运维Apache面试题及参考答案

目录 简述 Apache Web 服务器的主要特点及适用场景 Apache 的默认监听端口是什么?如何修改为其他端口? Apache 的主配置文件名称及路径是什么?不同 Linux 发行版的默认路径有何差异? 解释 Apache 的 MPM(Multi-Processing Module)机制,列举常见的工作模式(如 prefor…...

基于Python的web漏洞挖掘,漏洞扫描系统(附源码,部署)

本次技术通过利用Python技术来开发一款针对web漏洞挖掘扫描的技术&#xff0c;通过web漏洞的挖掘扫描来实现对网站URL的漏洞检测&#xff0c;通过高中低风险的判断来实现对一款网站中存在的漏洞进行可视化的分析&#xff0c;从而能够找到问题并且尽快的实现问题的解决。 博主介…...

K8s部署主从结构MySQL服务

01 介绍 RC、Deployment、DaemonSet都是面向无状态的服务,它们所管理的Pod的IP、名字、启停顺序等都是随机分配的,而StatefulSet,管理所有有状态的服务。 StatefulSet为了解决有状态服务的问题,它所管理的Pod拥有固定的Pod名称,一定的启停顺序,在StatefulSet中,Pod名字…...

岳阳市美术馆预约平台(小程序论文源码调试讲解)

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的&#xff0c;在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值&#xff0c;吸引更多的访问者访问系统&#xff0c;以及让来访用户可以花费更多时间停留在系统上&#xff0c;则表明该系统设计得比较专…...

ubuntu22.04系统如何自建2级ntp服务器

一&#xff1a;ntp服务器详情 服务器型号 系统版本 IP地址 主机名 ntp服务版本 虚拟机8c-32g-1T Ubuntu22.04 10.20.30.2 DMZ-NTP-SERVER 4.2.8p15 二&#xff1a;ntp服务端部署配置脚本 #!/bin/bash # 脚本信息 echo "--------------------------…...

DeepSeek赋能智慧社区:提升社区治理,优化资源配置,带来全新变革

在数字化浪潮的推动下&#xff0c;智慧社区正逐渐成为城市发展的重要方向。作为一款先进的人工智能大模型&#xff0c;DeepSeek凭借其强大的多模态数据分析和智能决策能力&#xff0c;正在为智慧社区的建设注入新的活力。 标准规范及顶层设计指南、供应商整体解决方案合集、供应…...

spring注解开发(Spring整合MyBatis——Mapper代理开发模式、(Spring、MyBatis、Jdbc)配置类)(6)

目录 一、纯MyBatis独立开发程序。 &#xff08;1&#xff09;数据库与数据表。 &#xff08;2&#xff09;实体类。 &#xff08;3&#xff09;dao层接口。&#xff08;Mapper代理模式、无SQL映射文件——注解配置映射关系&#xff09; &#xff08;4&#xff09;MyBatis核心配…...

springcloud组件调用顺序

Spring Cloud 组件的调用顺序并不是固定不变的&#xff0c;它依赖于具体的业务场景和微服务架构的设计。然而&#xff0c;可以概括出一个典型的微服务架构中 Spring Cloud 组件的调用流程&#xff0c;这个流程大致可以分为以下几个步骤&#xff1a; 服务注册与发现&#xff1a…...

【MySQL】数据库-图书管理系统(CC++实现)

一.预期功能 该图书管理系统设计提供基本的设计模版&#xff0c;涉及数据库的增删查改等操作&#xff0c;包含登录功能&#xff0c;图书管理功能&#xff0c;图书借阅功能&#xff0c;用户管理功能等基础功能&#xff0c;详细功能查看以下菜单表&#xff0c;共包含三个菜单&am…...

VSCode轻松调试运行C#控制台程序

1.背景 我一直都是用VS来开发C#项目的&#xff0c;用的比较顺手&#xff0c;也习惯了。看其他技术文章有介绍VS Code更轻量&#xff0c;更方便。所以我专门花时间来使用VS Code&#xff0c;看看它是如何调试代码、如何运行C#控制台。这篇文章是一个记录的过程。 2.操作 2.1 V…...

python-leetcode-下一个排列

31. 下一个排列 - 力扣&#xff08;LeetCode&#xff09; class Solution:def nextPermutation(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""# Step 1: Find the first decreasing element …...

c++中初始化列表的使用

在 C 中&#xff0c;初始化列表是在构造函数的定义中&#xff0c;用于对类的成员变量进行初始化的一种方式。它紧跟在构造函数的参数列表之后&#xff0c;使用冒号 : 分隔&#xff0c;各成员变量的初始化用逗号 , 分隔。下面详细介绍初始化列表及其参数的含义。 基本语法 clas…...

2025年2月28日(RAG)

从图片中的内容来看&#xff0c;用户提到的“RAG”实际上是“Retrieval-Augmented Generation”的缩写&#xff0c;中文称为“检索增强生成”。这是一种结合了检索&#xff08;Retrieval&#xff09;和生成&#xff08;Generation&#xff09;的技术&#xff0c;用于增强自然语…...

学睿德毅AI 赋能教育拓展短视频创作边界

在数字技术飞速发展的当下&#xff0c;短视频行业已成为推动社会经济发展的重要力量。学睿德毅紧跟时代步伐&#xff0c;聚焦 AI 技术在教育领域的创新应用&#xff0c;精心打造了一套专业且系统的短视频剪辑课程体系。该体系以 “技术与创意并重&#xff0c;理论共实践一色” …...

Jsmoke-一款强大的js检测工具,浏览器部署即用,使用方便且高效

目录标题 Jsmoke &#x1f6ac;&#x1f6ac; by Yn8rt使用方式界面预览功能特性支持的敏感信息类型 Jsmoke &#x1f6ac;&#x1f6ac; by Yn8rt ​ 该插件由 Yn8rt师傅 开发&#xff0c;插件可以理解为主动版的hae和apifinder&#xff0c;因为其中的大多数规则我都引用了&a…...

iphone上ios设备开启safari开发者debug模式,配合mac电脑使用

1.mac操作 mac的safari上打开开发者模式&#xff0c;打开显示网页开发者功能 2.开启IPhone的Safari调试模式 启用 Web 检查 功能&#xff0c;打开 iPhone 依次进入 设置 > Safari浏览器 > 高级 > 网页检查器 > 启用。 3.调试步骤 先用IPhone 的Safari打开要调试…...

【JAVA】阿里云百炼平台对接DeepSeek-V3大模型使用详解

1、DeepSeek简介 DeepSeek的火热让全世界见证了一场国产AI大模型走向巅峰的盛宴。DeepSeek的横空出世一方面让AI大模型的格局得到重塑&#xff0c;另一方面&#xff0c;对于普通人来说&#xff0c;也有机会零距离的体验到更懂国人的AI大模型。从很多使用过后的小伙伴们的反馈来…...

Datawhale 数学建模导论二 笔记5 多模数据与智能模型

主要涉及到的知识点有&#xff1a; 数字图像处理与计算机视觉 计算语言学与自然语言处理 数字信号处理与智能感知 10.1 数字图像处理与计算机视觉 视觉信息是我们第一种非常规的数据模式&#xff0c;在Python当中可以使用opencv处理数字图像&#xff0c;并提取出视觉特征用…...

AWS SQS跨账户访问失败排查指南

引言 在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接…...

Spring 源码硬核解析系列专题(六):Spring MVC 的请求处理源码解析

在前几期中,我们探讨了 Spring 的 IoC 容器、Bean 创建、AOP、事务管理以及 Spring Boot 的自动装配,这些为 Spring MVC 的运行奠定了基础。作为 Spring 生态中处理 Web 请求的核心模块,Spring MVC 通过 DispatcherServlet 实现了灵活的请求分发与处理。本篇将深入 Dispatch…...

如何在一台服务器上搭建 mongodb副本集1主2从节点

在一台服务器上搭建 MongoDB 副本集&#xff08;1 主节点 2 从节点&#xff09;可以通过运行多个 MongoDB 实例并使用不同端口和数据目录来实现。以下是详细步骤&#xff1a; 1. 准备工作 确保已安装 MongoDB。为每个实例创建独立的数据目录和日志文件。 2. 创建数据目录和…...

TikTok隐私保护措施:确保用户安全

TikTok隐私保护措施&#xff1a;确保用户安全 在这个信息爆炸的时代&#xff0c;社交媒体平台的隐私保护问题日益成为公众关注的焦点。TikTok&#xff0c;作为全球领先的短视频平台&#xff0c;拥有庞大的用户群体&#xff0c;因此&#xff0c;其隐私保护措施显得尤为重要。本…...

Apollo Cyber 学习笔记

目录 0 Introduction What Why Advantage 1 Example 2 Concept 3 Flow Chart 4 Module 4.1 Transport 4.1.1 Share Memory 4.1.1.1 Segment 4.1.1.1.1 State 4.1.1.1.2 Block 4.1.1.1.3 Common 4.1.1.2 Notifier 4.1.1.2.1 ConditionNotifier 4.1.1.2.2 Multi…...