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

常见的 API 及相关知识总结

常见的 API 及相关知识总结

一、Math 类

Math 类提供了许多用于数学计算的静态方法和常量。

常见方法总结

方法描述
Math.abs()返回一个数的绝对值
Math.ceil()返回大于或等于给定数字的最小整数
Math.floor()返回小于或等于给定数字的最大整数
Math.round()对一个数进行四舍五入
Math.max()返回两个数中的最大值
Math.min()返回两个数中的最小值
Math.random()返回一个介于 0(包括)和 1(不包括)之间的随机小数

示例代码

public class MathExample {public static void main(String[] args) {int num = -10;System.out.println("绝对值: " + Math.abs(num)); System.out.println("向上取整: " + Math.ceil(3.2)); System.out.println("向下取整: " + Math.floor(3.8)); System.out.println("四舍五入: " + Math.round(3.5)); System.out.println("最大值: " + Math.max(10, 20)); System.out.println("最小值: " + Math.min(10, 20)); System.out.println("随机数: " + Math.random()); }
}

二、算法水题

1. 减少循环次数提高效率

在编写循环代码时,通过合理的条件判断和算法优化,可以减少不必要的循环次数,从而提高程序的执行效率。例如,在查找某个元素时,可以提前终止循环。

2. 自幂数

自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个自幂数,因为 (1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153)。

示例代码
public class NarcissisticNumber {public static void main(String[] args) {for (int i = 100; i < 1000; i++) {int num = i;int sum = 0;while (num > 0) {int digit = num % 10;sum += Math.pow(digit, 3);num /= 10;}if (sum == i) {System.out.println(i + " 是自幂数");}}}
}

三、System 类

1. 时间相关

System.currentTimeMillis() 方法可以返回当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位),常用于计算程序的执行时间。

2. 常见方法

退出程序

System.exit(int status) 方法用于终止当前正在运行的 Java 虚拟机。参数 status 为 0 表示正常退出,非 0 表示异常退出。

获取运行时间

通过记录程序开始和结束时的时间戳,然后计算差值,可以得到程序的运行时间。

拷贝数组

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 方法用于将一个数组的指定部分复制到另一个数组中。

示例代码

public class SystemExample {public static void main(String[] args) {// 获取当前时间戳long startTime = System.currentTimeMillis();// 数组拷贝示例int[] srcArray = {1, 2, 3, 4, 5};int[] destArray = new int[5];System.arraycopy(srcArray, 0, destArray, 0, 5);// 打印拷贝后的数组for (int num : destArray) {System.out.print(num + " ");}System.out.println();// 获取结束时间戳long endTime = System.currentTimeMillis();System.out.println("程序运行时间: " + (endTime - startTime) + " 毫秒");// 退出程序System.exit(0);}
}

四、Runtime 类

Runtime 类表示 Java 虚拟机的运行时环境,每个 Java 应用程序都有一个 Runtime 类实例,应用程序可以通过 Runtime.getRuntime() 方法获取该实例。常见的方法有 exec() 用于执行外部命令,freeMemory() 用于返回 Java 虚拟机中的空闲内存量等。

示例代码

import java.io.IOException;public class RuntimeExample {public static void main(String[] args) {Runtime runtime = Runtime.getRuntime();try {// 执行外部命令Process process = runtime.exec("notepad.exe");} catch (IOException e) {e.printStackTrace();}// 获取空闲内存量long freeMemory = runtime.freeMemory();System.out.println("空闲内存量: " + freeMemory + " 字节");}
}

五、Object 类

1. 构造方法

Object()Object 类的默认构造方法,所有类都直接或间接继承自 Object 类,因此所有类都可以使用这个构造方法。

2. 常见成员方法

toString()

toString() 方法返回该对象的字符串表示形式,默认情况下返回的是对象的类名和哈希码的十六进制表示。通常建议重写该方法,以便返回更有意义的信息。

equals()

equals() 方法用于比较两个对象是否相等,默认情况下比较的是两个对象的引用是否相等。通常需要重写该方法,以便根据对象的属性进行比较。

clone()

clone() 方法用于创建并返回该对象的一个副本。要使用该方法,类必须实现 Cloneable 接口,否则会抛出 CloneNotSupportedException 异常。克隆分为浅克隆和深克隆:

  • 浅克隆:只复制对象的基本数据类型和引用类型的引用,而不复制引用类型所指向的对象。
  • 深克隆:不仅复制对象的基本数据类型,还复制引用类型所指向的对象。

示例代码

class Person implements Cloneable {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Person{name='" + name + "', age=" + age + "}";}@Overridepublic boolean equals(Object obj) {if (this == obj) return true;if (obj == null || getClass() != obj.getClass()) return false;Person person = (Person) obj;return age == person.age && name.equals(person.name);}@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}public class ObjectExample {public static void main(String[] args) throws CloneNotSupportedException {Person person1 = new Person("Alice", 20);Person person2 = (Person) person1.clone();System.out.println(person1.toString());System.out.println(person1.equals(person2));}
}

六、Objects 类

Objects 类提供了一些静态实用方法,用于操作对象或在操作前检查某些条件。常见的方法有 isNull() 用于判断对象是否为 nullnonNull() 用于判断对象是否不为 nullequals() 用于比较两个对象是否相等(可以处理 null 情况)等。

示例代码

import java.util.Objects;public class ObjectsExample {public static void main(String[] args) {String str1 = "hello";String str2 = null;System.out.println(Objects.isNull(str1)); System.out.println(Objects.isNull(str2)); System.out.println(Objects.nonNull(str1)); System.out.println(Objects.nonNull(str2)); System.out.println(Objects.equals(str1, str2)); }
}

七、BigInteger 类

BigInteger 类用于处理任意大的整数,它可以表示的整数范围没有上限。

1. 构造方法

可以通过字符串、整数等方式创建 BigInteger 对象。

2. 常见方法

add() 用于加法运算,subtract() 用于减法运算,multiply() 用于乘法运算,divide() 用于除法运算等。

示例代码

import java.math.BigInteger;public class BigIntegerExample {public static void main(String[] args) {BigInteger num1 = new BigInteger("12345678901234567890");BigInteger num2 = new BigInteger("98765432109876543210");BigInteger sum = num1.add(num2);BigInteger difference = num1.subtract(num2);BigInteger product = num1.multiply(num2);BigInteger quotient = num1.divide(num2);System.out.println("和: " + sum);System.out.println("差: " + difference);System.out.println("积: " + product);System.out.println("商: " + quotient);}
}

八、BigDecimal 类

BigDecimal 类用于处理任意精度的十进制数,常用于金融计算等对精度要求较高的场景。

1. 常见成员方法

add() 用于加法运算,subtract() 用于减法运算,multiply() 用于乘法运算,divide() 用于除法运算(需要指定舍入模式)等。

示例代码

import java.math.BigDecimal;
import java.math.RoundingMode;public class BigDecimalExample {public static void main(String[] args) {BigDecimal num1 = new BigDecimal("10.25");BigDecimal num2 = new BigDecimal("3.75");BigDecimal sum = num1.add(num2);BigDecimal difference = num1.subtract(num2);BigDecimal product = num1.multiply(num2);BigDecimal quotient = num1.divide(num2, 2, RoundingMode.HALF_UP);System.out.println("和: " + sum);System.out.println("差: " + difference);System.out.println("积: " + product);System.out.println("商: " + quotient);}
}

九、正则表达式(regex)

1. 作用

正则表达式用于字符串的匹配、查找、替换和分割等操作。

2. 书写规则

  • 字符类:[abc] 表示匹配 abc 中的任意一个字符。
  • 预定义字符类:\d 表示匹配数字字符,\w 表示匹配单词字符(字母、数字、下划线)等。
  • 数量词:* 表示匹配前面的元素零次或多次,+ 表示匹配前面的元素一次或多次,? 表示匹配前面的元素零次或一次等。

3. 忽略大小写

在正则表达式前面加上 (?i) 可以忽略大小写。

示例代码

import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexExample {public static void main(String[] args) {String input = "Hello, World!";String regex = "(?i)hello";Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(input);if (matcher.find()) {System.out.println("匹配成功");} else {System.out.println("匹配失败");}}
}

十、爬虫

1. 本地爬虫

本地爬虫用于在本地文件中查找和提取所需的数据,通常使用正则表达式进行匹配。

2. 网络爬虫

网络爬虫用于从互联网上获取数据,需要使用网络编程相关的知识,如 URLHttpURLConnection 等。

3. 带条件的爬虫

使用正则表达式的占位符(如 (?=)(?:)(?!))可以实现带条件的匹配。

4. 贪婪爬取和非贪婪爬取

  • 贪婪爬取:尽可能多地匹配字符。
  • 非贪婪爬取:尽可能少地匹配字符,在数量词后面加上 ? 可以实现非贪婪爬取。

示例代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class WebCrawlerExample {public static void main(String[] args) {try {URL url = new URL("https://www.example.com");BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));StringBuilder content = new StringBuilder();String line;while ((line = reader.readLine()) != null) {content.append(line);}reader.close();String regex = "<a href=\"(.*?)\">";Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(content.toString());while (matcher.find()) {System.out.println(matcher.group(1));}} catch (IOException e) {e.printStackTrace();}}
}

十一、分组

1. 捕获分组

使用括号 () 可以创建捕获分组,通过 \组号 可以引用前面的分组内容,通过 $组号 可以在替换操作中引用分组内容。

2. 非捕获分组

使用 (?:) 可以创建非捕获分组,非捕获分组不会被捕获,也不会分配组号。

示例代码

import java.util.regex.Matcher;
import java.util.regex.Pattern;public class GroupExample {public static void main(String[] args) {String input = "abcabc";String regex = "(abc)\\1";Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(input);if (matcher.find()) {System.out.println("匹配成功");} else {System.out.println("匹配失败");}}
}

十二、JDK7 前时间相关类

1. Date 类

Date 类表示特定的瞬间,精确到毫秒。可以使用无参构造方法创建当前时间的 Date 对象,也可以使用带参构造方法指定时间。

2. SimpleDateFormat 类

SimpleDateFormat 类用于格式化和解析日期。可以通过指定日期格式字符串来创建 SimpleDateFormat 对象,然后使用 format() 方法将 Date 对象格式化为字符串,使用 parse() 方法将字符串解析为 Date 对象。

3. Calendar 类

Calendar 类是一个抽象类,用于表示日历信息。可以通过 Calendar.getInstance() 方法获取 Calendar 对象,然后使用 get() 方法获取日历字段的值,使用 set() 方法设置日历字段的值。

示例代码

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class OldTimeExample {public static void main(String[] args) throws ParseException {// Date类示例Date date = new Date();System.out.println("当前时间: " + date);// SimpleDateFormat类示例SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String formattedDate = sdf.format(date);System.out.println("格式化后的时间: " + formattedDate);String dateStr = "2024-12-01 12:00:00";Date parsedDate = sdf.parse(dateStr);System.out.println("解析后的时间: " + parsedDate);// Calendar类示例Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR, 2024);calendar.set(Calendar.MONTH, Calendar.DECEMBER);calendar.set(Calendar.DAY_OF_MONTH, 1);Date calendarDate = calendar.getTime();System.out.println("Calendar设置的时间: " + calendarDate);}
}

十三、JDK8 新增时间相关类

1. 优点

JDK8 新增的时间相关类更加简洁明了、安全,提供了更好的日期和时间处理功能。

2. 常用类

  • ZonedDateTime:带时区的日期时间。
  • Instant:时间戳。
  • DateTimeFormatter:用于日期时间的格式化和解析。
  • LocalDate:表示日期。
  • LocalTime:表示时间。
  • LocalDateTime:表示日期和时间。
  • Duration:用于计算两个时间点之间的间隔。
  • Period:用于计算两个日期之间的间隔。
  • ChronoUnit:用于计算日期和时间之间的间隔。

示例代码

import java.time.*;
import java.time.format.DateTimeFormatter;public class NewTimeExample {public static void main(String[] args) {// ZonedDateTime示例ZonedDateTime zonedDateTime = ZonedDateTime.now();System.out.println("带时区的日期时间: " + zonedDateTime);// Instant示例Instant instant = Instant.now();System.out.println("时间戳: " + instant);// DateTimeFormatter示例DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");LocalDateTime localDateTime = LocalDateTime.now();String formattedDateTime = localDateTime.format(formatter);System.out.println("格式化后的日期时间: " + formattedDateTime);// LocalDate示例LocalDate localDate = LocalDate.now();System.out.println("当前日期: " + localDate);// LocalTime示例LocalTime localTime = LocalTime.now();System.out.println("当前时间: " + localTime);// Duration示例LocalTime startTime = LocalTime.of(9, 0);LocalTime endTime = LocalTime.of(10, 30);Duration duration = Duration.between(startTime, endTime);System.out.println("时间间隔: " + duration.toMinutes() + " 分钟");// Period示例LocalDate startDate = LocalDate.of(2024, 1, 1);LocalDate endDate = LocalDate.of(2024, 12, 31);Period period = Period.between(startDate, endDate);System.out.println("日期间隔: " + period.getMonths() + " 个月 " + period.getDays() + " 天");// ChronoUnit示例long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);System.out.println("日期间隔(天): " + daysBetween);}
}

十四、包装类

1. 概念

包装类是将基本数据类型封装成对象的类,例如 Integer 对应 intDouble 对应 double 等。

2. 自动拆箱和自动装箱机制

  • 自动装箱:将基本数据类型自动转换为包装类对象。
  • 自动拆箱:将包装类对象自动转换为基本数据类型。

3. 字符串转换为基本数据类型

可以使用包装类的静态方法(如 Integer.parseInt()Double.parseDouble() 等)将字符串转换为对应的基本数据类型。

示例代码

public class WrapperClassExample {public static void main(String[] args) {// 自动装箱Integer num1 = 10; // 自动拆箱int num2 = num1; // 字符串转换为基本数据类型String str = "20";int num3 = Integer.parseInt(str);System.out.println(num1);System.out.println(num2);System.out.println(num3);}
}

十五、综合练习

在实际开发中,经常需要综合运用上述知识来解决各种问题。例如,在处理数据时可能需要使用正则表达式进行数据验证,使用 BigDecimal 进行精确计算,使用时间相关类进行日期和时间的处理等。通过不断的练习和实践,可以更好地掌握这些知识。

以上就是常见的 API 及相关知识的总结,希望对大家有所帮助。在学习过程中,要不断实践,加深对这些知识的理解和掌握。同时,要注意代码的规范性和可读性,提高编程能力。

相关文章:

常见的 API 及相关知识总结

常见的 API 及相关知识总结 一、Math 类 Math 类提供了许多用于数学计算的静态方法和常量。 常见方法总结 方法描述Math.abs()返回一个数的绝对值Math.ceil()返回大于或等于给定数字的最小整数Math.floor()返回小于或等于给定数字的最大整数Math.round()对一个数进行四舍五…...

7-Zip软件下载与使用攻略:如何使用7z格式解压缩更高效?

在数字化文件管理中&#xff0c;压缩与解压缩工具的选择至关重要。7-Zip是一款广受欢迎的开源软件&#xff0c;以其高效的压缩率和多种格式支持而备受推崇。然而&#xff0c;解压专家作为另一款优秀的解压缩软件&#xff0c;同样值得关注。本文将为您推荐7-Zip的下载渠道&#…...

第 84 场周赛:翻转图像、字符串中的查找与替换、图像重叠、树中距离之和

Q1、[简单] 翻转图像 1、题目描述 给定一个 n x n 的二进制矩阵 image &#xff0c;先 水平 翻转图像&#xff0c;然后 反转 图像并返回 结果 。 水平翻转图片就是将图片的每一行都进行翻转&#xff0c;即逆序。 例如&#xff0c;水平翻转 [1,1,0] 的结果是 [0,1,1]。 反转…...

SkyReels-V2:开启无限时长电影生成新时代

AI 在视频生成领域的突破尤为引人注目&#xff0c;为内容创作带来了全新的可能性。而 SkyReels-V2 的问世&#xff0c;更是如同一场革命&#xff0c;彻底颠覆了人们对视频生成技术的认知&#xff0c;开启了无限时长电影生成的新时代。 一、背景与挑战 回顾视频生成技术的发展…...

教师可用的申报书——基于GAI的小学数学课堂跨学科支架设计与实践

课题申报书:基于GAI的小学数学课堂跨学科支架设计与实践 (一)立项依据与研究内容 1. 项目的立项依据 1.1 研究意义 2025年《教育强国建设规划纲要》明确提出“推动学科融合发展”,《信息化标准建设行动计划(2024-2027年)》强调技术赋能教育创新。小学数学作为基础学科,…...

79、modelsim单独仿真altera带IP核的文件

1.编译 quartus 仿真库&#xff08;如果有就不用编译了&#xff09; ​ ​ ​ 编译完成后 sim 文件夹中产生一个 verilog_libs 文件夹,打开文件夹 ​ ​ 以上便是编译产生的库&#xff0c;将库添加到 modelsim 中也就是观察此文件中的 modelsim.ini 与 modelsim 安装目录下此…...

将 Workbook 输出流直接上传到云盘

如果不想将 Excel 文件保存到本地&#xff0c;而是希望直接将输出流上传到云存储&#xff08;如阿里云OSS、腾讯云COS、七牛云等&#xff09;&#xff0c;可以采用以下方法&#xff1a; 文章目录 1. 创建内存中的 Excel 输出流2. 上传到云存储的通用方法3. 具体云服务实现示例…...

【LINUX操作系统】日志系统——自己实现一个简易的日志系统

经过一段时间的操作系统的学习&#xff0c;现在是时候让读者朋友们利用学过的技术知识自己完成一个简单的日志系统。认识、了解日志系统既是对已有多线程知识的运用&#xff0c;也是进一步提升项目技术能力的必须步骤。 1. 什么是日志 ⽇志认识 计算机中的⽇志是记录系统和软件…...

HTML页面渲染过程

前言 文章很长&#xff0c;凡是我觉得好的东西统统都塞进来了。看了很多的文章&#xff0c;有些说法甚至都不统一&#xff0c;所以还动用了AI搜索。总之希望这篇文章能有点用&#xff0c;如有错误&#xff0c;欢迎指正。 浏览器介绍 浏览器的主要组件包括&#xff1a; 界面…...

【八股战神篇】Java虚拟机(JVM)高频面试题

目录 专栏简介 一 请解释Java虚拟机&#xff08;JVM&#xff09;及其主要功能 延伸 1. JVM的基本概念 2. JVM的主要功能 二 对象创建的过程了解吗 延伸 1.Java 创建对象的四种常见方式 三 什么是双亲委派模型 延伸 1.双亲委派机制的作用&#xff1a; 2.双亲委派模型…...

微店商品详情接口开发指南

接口概述 微店商品详情接口&#xff08;/api/v1/product/detail&#xff09;用于获取商品的完整信息&#xff0c;包括标题、价格、库存、SKU、主图等数据&#xff0c;支持OAuth2.0鉴权。 点击获取key和secret 请求方式 GET https://open.weidian.com/api/v1/product/detail …...

拦截指定注解(FeignClient),补偿重试

拦截指定注解&#xff08;FeignClient&#xff09;&#xff0c;补偿重试&#xff1b;对代码无入侵 避免正常调用和重试逻辑调用重复插入&#xff1b; 根据自己的业务需求 插入新数据时 是否需要删除之前的旧数据&#xff0c;防止数据覆盖 import cn.hutool.core.util.ObjectUti…...

使用 GitHub Pages 部署单页面应用教程

## 简介 GitHub Pages 是 GitHub 提供的一个静态网站托管服务&#xff0c;可以免费托管个人、项目或组织页面。本教程将指导您如何部署一个单页面应用到 GitHub Pages。 ## 前提条件 - 拥有 GitHub 账号 - 已安装 Git - 已安装 Node.js&#xff08;如果使用前端框架&#x…...

day16-17-磁盘管理

1. 磁盘分类 磁盘接口 硬盘 大小 sata接口 机械硬盘、固态硬盘 机械&#xff1a;4tb 10k性能要求不高 sas接口 机械硬盘、固态硬盘 机械&#xff1a;900G 15k性能好&#xff0c;容量低 pcie-e接口 固态硬盘 tb级别 4tb 8tb 性能要求高&#xff0c;数据库&#xff0c…...

【神经网络与深度学习】扩散模型之通俗易懂的解释

引言&#xff1a; 扩散模型&#xff08;Diffusion Models&#xff09;是近年来深度学习领域的一项重要突破&#xff0c;尤其在生成式人工智能&#xff08;Generative AI&#xff09;中展现了惊人的能力。它的核心思想类似于一个孩子学习搭建乐高城堡的过程——先拆散&#xff0…...

Linux Bash 中 $? 的详细用法

Bash (Bourne Again SHell) 是使用最广泛的 SHell 脚本语言之一&#xff0c;因为它与 Unix 和 Linux 系统兼容。它提供了许多内置函数和变量&#xff0c;使脚本编写更高效&#xff0c;更不容易出错。其中一个变量是 $?&#xff0c; 它是 Bash 脚本错误处理的一个组成部分。这个…...

嵌入式培训之系统编程(一)标准IO、文件操作

目录 一、系统编程概述 二、标准IO &#xff08;一&#xff09;&#xff08;以计算机为中心&#xff09;标准IO &#xff08;二&#xff09;io的分类 &#xff08;三&#xff09;man命令 三、文件读写操作 &#xff08;一&#xff09;文件操作步骤 &#xff08;二&#…...

NVIDIA Earth-2 AI 天气模型 DLI 课程:解锁全球风云的未来之匙

电影闲聊引发思索之言&#xff1a; 曾几何时&#xff0c;当我们闲聊起那些描绘美国气候的大电影时&#xff08;龙卷风-后天等美国大片&#xff09;&#xff0c;仿佛被带入了一个个奇幻而真实的气象世界。从狂风暴雨到烈日炎炎最后到冰天雪地&#xff0c;电影里的场景让我们对气…...

至此(day1-day4)代码详解(ai辅助整理)

至此&#xff08;day1-day4&#xff09;代码详解 ipl10.nas ; 第一阶段引导程序 ; 功能&#xff1a;读取磁盘数据并跳转到第二阶段加载程序 ; 编译参数&#xff1a;nask -o ipl10.bin ipl10.nasCYLS EQU 10 ; 预设读取柱面数&#xff08;实际值由BIOS决定&#xff09;ORG…...

STM32F103_LL库+寄存器学习笔记12.2 - 串口DMA高效收发实战2:进一步提高串口接收的效率

导言 通过优化代码算法&#xff0c;在串口空闲中断回调里不需要暂时关闭DMA接收&#xff0c;达到提高串口接收的效率。在IDLE接收中断里关闭DMA接收会导致接收过程中有数据丢失风险&#xff08;关DMA的瞬间如果有数据到来&#xff0c;会丢帧&#xff01;&#xff09;。 回顾一…...

conda 设置env后,环境还是安装在c盘的解决方式:

1|设置 envs 文件夹权限 右键【envs】文件夹&#xff0c;选择【属性】 选择【安全】&#xff0c;点击【编辑】 选中【Users(用户名\Users)】&#xff0c;选中运行所有权限&#xff0c;如图所示 点击【确认】&#xff0c;确保修改被保存 2、环境变量path设置 选择【高级系统设置…...

设计模式 - 工厂模式

简单工厂模式 public class CoffeeFactory {public Coffee get(string coffeeType) {Coffee coffee null;if ("American".equals(coffeeType)) {coffee new AmericanCoffee();} else if ("Latte".equals(coffeeType)) {coffee new LatteCoffee();}retur…...

动态规划-LCR 090.打家劫舍II-力扣(LeetCode)

一、题目解析 本题与打家劫舍的最大区别在于房子不是线性分布的了&#xff0c;而是首尾相连的环形分布&#xff0c;即如果偷了第一间房子&#xff0c;那么最后一间房子就不能偷了&#xff0c;因为它们是相连的。 二、算法原理 在分析之前我们可以先讨论上面提到的第一间房子偷…...

2025 年暑假 LBE 大空间市场火爆程度预测:技术驱动与消费升级下的增长引擎

一、市场爆发的底层逻辑 根据 DeepSeek 行业报告显示&#xff0c;2025 年 LBE 大空间市场将呈现结构性爆发&#xff0c;核心驱动力来自三大技术突破&#xff1a; 空间计算能力跃迁&#xff1a;上海移动已开通全球最大规模商用 5G-A 3CC 网络&#xff0c;主城区及十大重点场景…...

【AI 大模型】盘古大模型简介 ( 创建空间 | 体验模型 | 部署模型 )

文章目录 一、盘古大模型简介1、创建空间2、体验模型3、部署模型 总结 : 盘古大模型 是 开发部署 盘古基础模型 , 或 在 盘古模型 基础上进行 微调训练 的 大模型 的平台 , 是 开发训练 大模型的平台 ; 不适合 中小企业 和 个人开发者 开发 大模型应用 ; 一、盘古大模型简介 1、…...

2025年护网行动蓝队防御全解析:构建智能动态防御体系

2025年&#xff0c;随着网络攻击手段的智能化、混合化升级&#xff0c;护网行动中的蓝队防御已从传统的被动防护转向“动态感知、智能研判、主动反制”的立体化模式。如何在攻防不对称的对抗中实现“看得见、防得住、溯得清”&#xff1f;本文将结合前沿技术与实战经验&#xf…...

【Java高阶面经:微服务篇】3.熔断机制深度优化:从抖动治理到微服务高可用架构实战

一、熔断抖动的本质剖析与核心成因 1.1 熔断机制的核心价值与抖动危害 熔断机制作为微服务弹性架构的核心组件,通过模拟电路断路器逻辑,在服务出现异常时自动阻断请求链,防止故障扩散引发雪崩。但频繁的“熔断-恢复-熔断”抖动会导致: 用户体验恶化:请求成功率波动大,响…...

HTML回顾

html全称:HyperText Markup Language(超文本标记语言) 注重标签语义,而不是默认效果 规则 块级元素包括: marquee、div等 行内元素包括: span、input等 规则1:块级元素中能写:行内元素、块级元素(几乎什么都能写) 规则2:行级元素中能写:行内元素,但不能写:块…...

Leetcode百题斩-字典树

208. Implement Trie (Prefix Tree)[medium] 做完了哈希&#xff0c;来看看数据结构&#xff0c;做做字典树。字典树在搜索方面的作用还是蛮大的&#xff0c;主要是能实现前缀联想以及正确性匹配相关的功能。 字典树又名前缀树&#xff0c;顾名思义就是维护字符串的前缀。这个…...

大数据Spark(五十九):Standalone集群部署

文章目录 Standalone集群部署 一、节点划分 二、搭建Standalone集群 1、将下载好的Spark安装包上传解压 2、配饰spark-env.sh 3、配置workers 4、将配置好的安装包发送到node2、node3节点上 5、启动Standalone集群 三、提交任务测试 Standalone集群部署 Standalone 模…...

Vue 3 ~ 3.5 版本useTemplateRef使用

注意&#xff0c;useTemplateRef版本要在 3.5 以后才可使用&#xff0c;版本低的 ref 替代问题也不大&#xff5e; 2024 年 9 月 1 日发布的 组合式 API&#xff1a;辅助 | Vue.js&#xff0c;引入一个小小的新 API useTemplateRef()&#xff0c;它用于访问实际的 DOM 节点。 …...

使用F5-tts复刻音色

最近第一人称视角的视频很火&#xff0c;想试试看复刻一下电视剧中某个角色的音色。看了下字节的API&#xff0c;嗯。。。138元一个音色&#xff0c;还不包括合成语音的费用&#xff0c;算了还是看看开源项目吧。 随便搜了搜&#xff0c;发现了两个项目一个是openvoice&#x…...

使用亮数据代理IP+Python爬虫批量爬取招聘信息训练面试类AI智能体(附完整源码)

文章目录 一、为什么要用代理IP&#xff1f;(重要&#xff01;)二、环境准备&#xff08;5分钟搞定&#xff09;三、爬虫核心代码解析&#xff08;含反反爬技巧&#xff09;四、数据清洗的3个关键步骤五、训练AI智能体的实战技巧六、法律风险防范&#xff08;必须看&#xff01…...

[软件工程]第二章题目汇总

1 [单选题] 原型化模型是&#xff08; &#xff09;。 A、适用于客户需求被明确定义的情况 B、很难产生有意义产品的一种冒险模型 C、提供一个精确表述的形式化规格说明 D、适用于客户需求难以清楚定义的情况 2 [单选题] 下列关于增量模型的说法正确的是&#xff08; &…...

Java EE进阶1:导读

1.发展历程 2.学习内容 前⾯的课程中,学习的是Java基础,JavaEE主要学习Java的应用,也就是学习Java在企业中是如何应用的 Java更多场景是业务开发,更狭义点可以理解为web开发.所以咱们的学习也是围绕着如何使用Java来做web开发 2.1 什么是Web开发&#xff1f; web&#xff08…...

Unity自定义shader打包SpriteAtlas图集问题

Unity打包图集还是有一些坑的&#xff0c;至于图集SpriteAtlas是什么请参考我之前写的文章&#xff1a;【Sprite Atlas】Unity新图集系统SpriteAtlas超详细使用教程_spriteatlas 使用-CSDN博客 问题&#xff1a; 今天碰到的问题是&#xff0c;shader绘制的时候&#xff0c;因…...

系统集成项目管理工程师学习笔记之启动过程组

第十章 启动过程组 制定项目章程 定义 制定项目章程是编写一份正式批准项目并授权项目经理在项目活动中使用组织资源的文件的过程。 正式批准的项目文件 作用 1、明确项目与组织战略目标之间的直接联系 2、确立项目的正式地位 3、展示组织对项目的承诺 本过程仅开展一…...

vscode 常用调试

一、文件执行 python script.py {"name": "Python 调试程序: 当前文件","type": "debugpy","request": "launch","program": "${file}","console": "integratedTerminal"…...

Java 07异常

异常 指的是程序在编译和执行的过程中&#xff0c;出现的非正常的情况&#xff1b; 当然语法错误并不属于错误异常体系 最大的Throwable; 分为两个&#xff1a;Error ExceptionError 严重级别问题 常见的 堆内存溢出 栈内存溢出Exception 分为两个子类 RuntimeException 运…...

2025年PMP 学习二十三 16章 高级项目管理

2025年PMP 学习二十三 16章 高级项目管理 文章目录 2025年PMP 学习二十三 16章 高级项目管理高级项目管理战略管理战略管理的组成要素&#xff1a;企业战略转化为战略行动的阶段&#xff1a; 组织战略类型战略组织类型组织级项目管理OPM&#xff08;公司项目管理&#xff09; 组…...

【Java高阶面经:微服务篇】1.微服务架构核心:服务注册与发现之AP vs CP选型全攻略

一、CAP理论在服务注册与发现中的落地实践 1.1 CAP三要素的技术权衡 要素AP模型实现CP模型实现一致性最终一致性(Eureka通过异步复制实现)强一致性(ZooKeeper通过ZAB协议保证)可用性服务节点可独立响应(支持分区存活)分区期间无法保证写操作(需多数节点可用)分区容错性…...

ISCC 2025决赛 wp

PWN Dilemma 64位程序没有开启PIE&#xff0c;并且过滤了execve&#xff0c;不能使用system这些的了&#xff0c;所以要考虑ORW来做 进入main函数分析&#xff0c;这里有两个函数一个func_1一个func_2。 这两个函数都有漏洞&#xff0c;以下是详细分析&#xff1a; 对于func…...

C++(5)switch语句 循环while

这是一个电影评分的程序 default 就是 如果上述的都没有执行 就统一的执行default的内容。 然后记得break ___________________________________ 循环 &#xff08;while&#xff09; while的使用方式 输出 0-9的while循环...

操作系统----软考中级软件工程师(自用学习笔记)

目录 1、计算机系统层次结构 2、程序顺序执行的特征 3、程序并发执行的特征 4、三态模型 5、同步与互斥 6、信号量机制 7、PV操作 8、死锁 9、进程资源图 10、死锁避免 11、线程 12、程序局部性原理 13、分页存储管理 14、单缓冲器 15、双缓冲区 16、磁盘调度算…...

利用Spring Boot和Redis构建高性能缓存系统

利用Spring Boot和Redis构建高性能缓存系统 引言 在现代Web应用中&#xff0c;缓存是提升系统性能的关键技术之一。Redis作为一种高性能的内存数据库&#xff0c;广泛应用于缓存场景。本文将介绍如何利用Spring Boot和Redis构建一个高性能的缓存系统&#xff0c;涵盖Redis的基…...

每日一题:1、虚拟IPv4地址转换为32位整数(JS)

题目背景 我们需要处理一种特殊的虚拟IPv4地址&#xff0c;这种地址由4个小节组成&#xff0c;每节之间用#分隔。与标准IPv4地址不同&#xff0c;虚拟IPv4地址的第一节范围是1~128&#xff0c;后三节的范围是0~255。我们需要将这种虚拟IPv4地址转换为一个唯一的32位整数。如果…...

[Vue]组件介绍和父子组件间传值

组件介绍 Vue3的 .vue文件中的主要部分分别分为三个&#xff1a;<template>、<script>、<style> <template>&#xff1a; 结构&#xff0c;相当于原html中的<head><body><footer>部分。原本的index.html现在只做一个容器&#xff0…...

Vue3 中使用 provide/inject 实现跨层级组件传值失败的原因及解决方案

1、基础用法 父组件&#xff1a; <script setup> import { ref, provide } from vue; import ChildComponent from ./ChildComponent.vue; const parentData ref(初始数据); // 提供数据 provide(parentData, parentData); </script>子组件&#xff1a; <sc…...

Git Hooks 和 自动生成 Commit Message

前言&#xff1a; 企业编程必须始终依赖流程&#xff0c;而不是个人。个人能力很重要&#xff0c;应该鼓励&#xff0c;但不能指望它&#xff0c;否则软件质量将不一致&#xff0c;没有可持续性。一旦顶级程序员跳槽&#xff0c;公司就会陷入困境。企业应该努力改进工作流程&am…...

【小明剑魔视频Viggle AI模仿的核心算法组成】

Viggle AI 作为一款先进的生成式视频AI工具&#xff0c;其核心技术栈融合了多项前沿算法。以下是深度解析其核心算法架构及实现原理&#xff1a; 一、核心算法组成 1. 运动控制生成&#xff08;Motion Control Generation&#xff09; 算法框架&#xff1a;基于扩散模型&…...