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

Java基础十八(正则表达式 + 日期时间)

1. 正则表达式


1.1 普通字符

字符描述示例
[abc]匹配 […] 中所有字符[hlo] 匹配字符串 "hello world" 中所有的 h l o 字母
[^ABC]匹配除了 […] 中所有字符[hlo] 匹配字符串 "hello world" 中除了 h l o 的所有字母
[^a-z]匹配除了 […] 中所有字符[hlo] 匹配字符串 "hello world" 中除了 a 到 z 的所有字母
[A-Z][A-Z] 表示一个区间,匹配所有的大写字母[A-Z] 匹配字符串 "Hello world" 结果为 H

1.2 特殊字符

字符描述示例
.匹配任意单个字符,除了换行符a.b1.2
*匹配前一个字符零次或多次go*glecolou*r
+匹配前一个字符一次或多次go+glecolou+r
?匹配前一个字符零次或一次colou?rcol(o)?r
|表示“或”的意思,用于匹配多个选项中的一个apple|orangeyes|no
[]用于定义字符类,匹配方括号内的任意一个字符[aeiou][0-9]
()用于分组,可以改变默认的优先级和应用限定符(go)+(abc|def)
$匹配输入字符串的结尾位置,如果设置了 RepExp 对象的 Multiline 属性,则 $ 也匹配‘\n’或‘\r’
{标记限定表达式的开始
|指明两项直接的一个选择

1.3 非打印字符

字符描述示例
\n匹配换行符Hello\nWorld
\r匹配回车符Hello\rWorld
\t匹配制表符Hello\tWorld
\v匹配垂直制表符Hello\vWorld
\s匹配任意空白字符,包括空格、制表符、换页符等Hello World
\S匹配任意非空白字符,不包括换行我暂时不知道
\d匹配任意数字字符,相当于 [0-9]123459am
\w匹配任意字母、数字或下划线字符,相当于 [a-zA-Z0-9_]hello_world_123

1.4 限定符

字符描述示例
*匹配前一个字符零次或多次go*glecolou*r
+匹配前一个字符一次或多次go+glecolou+r
?匹配前一个字符零次或一次colou?rcol(o)?r
{n}匹配前一个字符恰好出现 n 次go{2}glecolou{3}r
{n,}匹配前一个字符至少出现 n 次go{2,}glecolou{3,}r
{n,m}匹配前一个字符出现 n 到 m 次go{2,5}glecolou{3,7}r

1.5 定位符

字符描述示例
^匹配字符串的开头^Hello^[A-Z]
$匹配字符串的结尾World$[0-9]$
\b匹配单词的边界\btest\b\bword\b
\B匹配非单词边界\Btest\B\Bword\B

2. 日期时间


2.1 Date 类方法

Date类位于 java.util 包中,用于表示特定的时间点。

方法描述
getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。
toString()将日期对象转换为字符串形式。
compareTo(Date anotherDate)比较两个日期的顺序。返回值为 0 表示相等,大于 0 表示当前日期在参数日期之后,小于 0 表示当前日期在参数日期之前。
equals(Object obj)检查该日期对象是否等于另一个日期对象。
before(Date when)检查当前日期是否在指定日期之前。
after(Date when)检查当前日期是否在指定日期之后。
setTime(long time)设置日期对象的时间值。

例题1 : Date使用

public class DateDemo01 {public static void main(String[] args) {// 创建一个表示当前时间的 Date 对象Date date = new Date();System.out.println(date);   // Thu Aug 24 22:35:10 CST 2023// 获取 Date 对象的时间(毫秒数)long timeInMillis = date.getTime();System.out.println(timeInMillis);  // 1692887710157// 创建一个指定时间的 Date 对象Date specifiedDate = new Date(1640886000000L);System.out.println(specifiedDate);  // Fri Dec 31 01:40:00 CST 2021// 比较两个 Date 对象的时间boolean isBefore = date.before(specifiedDate);boolean isEquals = date.equals(specifiedDate);boolean isAfter = date.after(specifiedDate);System.out.println(isBefore);  // falseSystem.out.println(isEquals);  // falseSystem.out.println(isAfter);  // true}
}

2.2 Calendar 类方法

Calender 类是 java 中用于处理日期和时间的类,位于 java.util 包中。它提供了一种比 Date 类更灵活和功能更强大的日期和时间操作方式。

方法描述
getTime()返回一个表示此 Calendar 时间值(从历元到现在毫秒偏移量)的 Date 对象。
get(int field)返回给定日历字段的值。
set(int field, int value)设置给定日历字段的值。
add(int field, int amount)根据日历的规则,将指定的时间量添加到给定日历字段。
roll(int field, int amount)根据日历的规则,将给定的时间量添加到给定日历字段,但不更改较大的字段值。
getActualMaximum(int field)返回指定日历字段的最大值。
getActualMinimum(int field)返回指定日历字段的最小值。
getDisplayName(int field, int style, Locale locale)返回给定字段值的本地化表示名称。
getFirstDayOfWeek()返回一个代表每周的第一天的值。
setFirstDayOfWeek(int value)设置一星期中的第一天是哪一天。
getMinimum(int field)返回给定日历字段的最小值。
getMaximum(int field)返回给定日历字段的最大值。

例题2 : Calender使用

import java.util.Calendar;
import java.util.Date;public class CalenderDemo01 {public static void main(String[] args) {// 获取当前时间和日期的 Calender 对象Calendar calendar = Calendar.getInstance();System.out.println(calendar);  // java.util.GregorianCalendar[time=1692889224235,areFieldsSet=true,···]// 设置日期为指定的年份、月份和日 1970年2月1日calendar.set(1970, 1, 1);System.out.println(calendar);  // java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllField···]// 获取年份int year = calendar.get(Calendar.YEAR);System.out.println(year);  // 1970// 获取月份(月份从 0 开始计数)int month = calendar.get(Calendar.MONTH) + 1;System.out.println(month);  // 2// 获取当前月份中的第几天int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);System.out.println(dayOfMonth);  // 1// 月份加 1calendar.add(Calendar.MONTH, 1);// 输出修改过后的月份System.out.println(calendar.getTime());  // Sun Mar 01 23:00:24 CST 1970// 将 Calender 转换为 Date 对象Date date = calendar.getTime();System.out.println(date);  // Sun Mar 01 23:00:24 CST 1970}
}

Calender 和 Date 相互转换

import java.util.Calendar;
import java.util.Date;public class CalenderDeom02 {// 创建一个 Calender 对象public static void main(String[] args) {Calendar calendar = Calendar.getInstance();// 设置日期为指定的日期calendar.set(1970, 0, 1);// 获取当前的日期和时间Date date = calendar.getTime();System.out.println(date);  // Thu Jan 01 23:25:45 CST 1970// 将 Calender 转换为 DateDate convertedDate = calendar.getTime();System.out.println(convertedDate);  // Thu Jan 01 23:25:45 CST 1970// 创建一个新的 Date 对象Date newDate = new Date(70, 1, 1);// 将 Date 转换为 Calender Calendar convertedCalender = Calendar.getInstance();convertedCalender.setTime(newDate);System.out.println(convertedCalender);  // java.util.GregorianCalendar[time=2649600000,areFieldsSet=true,areAllFieldsSet=true...}
}

请注意,尽管 Date 类和 Calendar 类仍然存在于 Java 中,但在 Java 8 及更高版本中,推荐使用新版的日期时间类(如 LocalDate、LocalTime、LocalDateTime)来替代旧版的 Date 和 Calendar 类,因为新版的类更加简洁、易用,并且线程安全。

2.3 SimpleDateFormat 类方法

SimpleDateFormat 类是 Java 中用于日期和时间格式化的类,它位于 java.text 包中。它允许将 Date 对象格式化为指定的日期和时间字符串,或将日期和时间字符串解析为 Date 对象。

方法描述
SimpleDateFormat(String pattern)使用指定的日期模式创建一个 SimpleDateFormat 对象。
String format(Date date)将给定的 Date 对象格式化为字符串,使用 SimpleDateFormat 的日期模式。
Date parse(String source)将给定的字符串解析为 Date 对象,使用 SimpleDateFormat 的日期模式。
void setLenient(boolean lenient)设置解析过程是否宽松,即是否严格遵循日期格式。
String toPattern()返回当前日期模式。
void applyPattern(String pattern)使用给定的日期模式更新当前日期模式。
DateFormatSymbols getDateFormatSymbols()获取与该日期格式化程序相关联的 DateFormatSymbols 对象,用于获取或设置本地化信息(如月名、星期几名等)。
void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)设置与该日期格式化程序相关联的 DateFormatSymbols 对象,用于设置本地化信息(如月名、星期几名等)。

例题3 :SimpleDateFormatExample使用

import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatExample {public static void main(String[] args) {Date date = new Date();// 创建 SimpleDateFormat 对象,并指定格式化模式,默认2023/8/25 上午10:59SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm:ss:SSS");// 格式化 Date 对象为字符串String formatDate = sdf.format(date);System.out.println(formatDate);  // 2023-08-25 上午 11:02:59:178// 解析字符串为 Date 对象String dateString = "1949-10-01 下午 3:30:45:123";try {Date parsedDate = sdf.parse(dateString);System.out.println(parsedDate);} catch (Exception e) {e.printStackTrace();}}
}

2.4 LocalDate 类方法

LocalDate 是 Java 中的一个日期类,它提供了处理日期的方法和功能。LocalDate 类位于 java.time 包中,从 JDK 8 引入。LocalDate 是不可变类型,final 修饰储存值的数组。

方法描述
static LocalDate now()返回当前日期。
static LocalDate of(int year, int month, int dayOfMonth)根据指定的年、月、日创建一个 LocalDate 对象。
int getYear()获取日期中的年份。
Month getMonth()获取日期中的月份,返回一个 Month 枚举对象。
int getDayOfMonth()获取日期中的月份中的天数。
DayOfWeek getDayOfWeek()获取日期中的星期几,返回一个 DayOfWeek 枚举对象。
LocalDate plusDays(long daysToAdd)返回当前日期加上指定天数后的日期。
LocalDate minusDays(long daysToSubtract)返回当前日期减去指定天数后的日期。
boolean isBefore(LocalDate other)检查当前日期是否在另一个日期之前。
boolean isAfter(LocalDate other)检查当前日期是否在另一个日期之后。
boolean isEqual(LocalDate other)检查当前日期是否等于另一个日期。
String format(DateTimeFormatter formatter)将日期格式化为指定的字符串格式。

例题4 : LocalDate使用

import java.time.LocalDate;
import java.time.Month;
import java.time.format.DateTimeFormatter;public class LocalDateDemo01 {public static void main(String[] args) {// 创建 LocalDate 对象LocalDate today = LocalDate.now();  // 当前日期创建对象System.out.println(today);  // 2023-08-25LocalDate specificDate = LocalDate.of(1970, 1, 1);  // 指定日期创建对象System.out.println("specificDate" + specificDate);  // 1970-01-01// 解析字符串为 LocalDate 对象LocalDate parseDate = LocalDate.parse("1949-10-01");System.out.println("parseDate" + parseDate);  // 1949-10-01// 获取日期信息int year = today.getYear();System.out.println("年份" + year);  // 年份2023Month month = today.getMonth();System.out.println("月份" + month);  // AUGUSTint mon = today.getMonthValue();System.out.println("月份" + mon);  // 8int day = today.getDayOfYear();  // 一年中的第几天System.out.println(day);  // 237int day1 = today.getDayOfMonth();  // 当月的第多少天System.out.println(day1);  // 25// 增加、减少日期LocalDate futureDate = specificDate.plusDays(7);System.out.println("增加日期:" + futureDate);  // 增加日期:1970-01-08LocalDate pastDate = specificDate.minusMonths(1);System.out.println("减少日期:" + pastDate);  // 减少日期:1969-12-01// 判定日期关系boolean isBefore = specificDate.isBefore(parseDate);System.out.println(isBefore);  // falseboolean isAfter = specificDate.isAfter(parseDate);System.out.println(isAfter);  // trueboolean isEqual = specificDate.isEqual(parseDate);System.out.println(isEqual);  // false// 格式化日期DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");String fomattedDate = specificDate.format(formatter);System.out.println("格式化后的日期" + fomattedDate);  // 格式化后的日期1970-01-01}
} 

Date 和 LocalDate 相互转换

import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;public class DateLocalDateConversionExample {public static void main(String[] args) {//将Date对象转换为LocalDate对象Date date = new Date();LocalDate localDate = dateToLocalDate(date);System.out.println(localDate);// 将LocalDate对象转换为Date对象LocalDate localDate1 = LocalDate.of(1970, 1, 1);Date convertedDate = localDatetoDate(localDate1);System.out.println(convertedDate);}// 将LocalDate对象转换为Date对象private static Date localDatetoDate(LocalDate localDate1) {ZoneId zoneId = ZoneId.systemDefault();return Date.from(localDate1.atStartOfDay(zoneId).toInstant());}// 将Date对象转换为LocalDate对象private static LocalDate dateToLocalDate(Date date) {ZoneId zoneId = ZoneId.systemDefault();return date.toInstant().atZone(zoneId).toLocalDate();}
}

2.5 LocalTime 类方法

LocalTime 是 Java 中的一个时间类,它提供了处理时间的方法和功能。LocalDate 类位于 java.time 包中,从 JDK 8 引入。LocalTime 是不可变类型,final 修饰储存值的数组。

方法描述
static LocalTime now()返回当前时间。
static LocalTime of(int hour, int minute)根据指定的小时和分钟创建一个 LocalTime 对象。
int getHour()获取时间中的小时数。
int getMinute()获取时间中的分钟数。
int getSecond()获取时间中的秒数。
LocalTime plusHours(long hoursToAdd)返回当前时间加上指定小时数后的时间。
LocalTime minusHours(long hoursToSubtract)返回当前时间减去指定小时数后的时间。
LocalTime plusMinutes(long minutesToAdd)返回当前时间加上指定分钟数后的时间。
LocalTime minusMinutes(long minutesToSubtract)返回当前时间减去指定分钟数后的时间。
LocalTime plusSeconds(long secondsToAdd)返回当前时间加上指定秒数后的时间。
LocalTime minusSeconds(long secondsToSubtract)返回当前时间减去指定秒数后的时间。
boolean isBefore(LocalTime other)检查当前时间是否在另一个时间之前。
boolean isAfter(LocalTime other)检查当前时间是否在另一个时间之后。
boolean isEqual(LocalTime other)检查当前时间是否等于另一个时间。
String format(DateTimeFormatter formatter)将时间格式化为指定的字符串格式。

例题5 : LocalTime使用

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;public class LocalTimeDemo01 {public static void main(String[] args) {// 创建 LocalTime 对象LocalTime now = LocalTime.now();System.out.println("当前时间" + now);  // 当前时间19:56:31.828827500LocalTime specificTime = LocalTime.of(14, 30);System.out.println("指定时间" + specificTime);  // 指定时间14:30// 解析字符串为 loCalTime 对象LocalTime parsedTime = LocalTime.parse("08:45:30");System.out.println("解析后的时间" + parsedTime);  // 解析后的时间08:45:30// 获取时间信息int hour = now.getHour();System.out.println("小时数" + hour);  // 小时数19int minute = now.getMinute();System.out.println("分钟数" + minute);  // 分钟数56int second = now.getSecond();System.out.println("秒数" + second);  // 秒数31// 增加、减少时间LocalTime futureTime = now.plusHours(3);System.out.println("未来时间:" + futureTime);  // 未来时间:22:56:31.828827500LocalTime pastTime = now.minusMinutes(15);System.out.println("过去时间:" + pastTime);  // 过去时间:19:41:31.828827500// 判定时间关系boolean isBefore = now.isBefore(specificTime);System.out.println(isBefore);  // falseboolean isEqusl = pastTime.equals(futureTime);System.out.println(isEqusl);  // falseboolean isAfter = pastTime.isAfter(futureTime);System.out.println(isAfter);  // false// 格式化时间DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");String formattedTime = now.format(formatter);System.out.println(formattedTime);  // 19:56:31}
}

在判定日期时间关系中,日期是否相等为 isEqual() ,时间为 equals()

2.6 LocalDateTime 类方法

LocalDateTime 是 Java 中的一个日期时间类,LocalDate 类位于 java.time 包中,从 JDK 8 引入。它结合了 LocalDateLocalTime 的功能,用于表示日期和时间的组合。

方法描述
static LocalDateTime now()返回当前日期和时间。
static LocalDateTime of(int year, int month, int dayOfMonth, int hour, int minute)根据指定的年、月、日、小时和分钟创建一个 LocalDateTime 对象。
LocalDate toLocalDate()获取 LocalDateTime 对象中的日期部分,返回一个 LocalDate 对象。
LocalTime toLocalTime()获取 LocalDateTime 对象中的时间部分,返回一个 LocalTime 对象。
int getYear()获取日期时间中的年份。
Month getMonth()获取日期时间中的月份,返回一个 Month 枚举对象。
int getDayOfMonth()获取日期时间中的月份中的天数。
int getHour()获取时间中的小时数。
int getMinute()获取时间中的分钟数。
LocalDateTime plusDays(long daysToAdd)返回当前日期时间加上指定天数后的日期时间。
LocalDateTime minusDays(long daysToSubtract)返回当前日期时间减去指定天数后的日期时间。
LocalDateTime plusHours(long hoursToAdd)返回当前日期时间加上指定小时数后的日期时间。
LocalDateTime minusHours(long hoursToSubtract)返回当前日期时间减去指定小时数后的日期时间。
LocalDateTime plusMinutes(long minutesToAdd)返回当前日期时间加上指定分钟数后的日期时间。
LocalDateTime minusMinutes(long minutesToSubtract)返回当前日期时间减去指定分钟数后的日期时间。
LocalDateTime plusSeconds(long secondsToAdd)返回当前日期时间加上指定秒数后的日期时间。
LocalDateTime minusSeconds(long secondsToSubtract)返回当前日期时间减去指定秒数后的日期时间。
boolean isBefore(LocalDateTime other)检查当前日期时间是否在另一个日期时间之前。
boolean isAfter(LocalDateTime other)检查当前日期时间是否在另一个日期时间之后。
boolean isEqual(LocalDateTime other)检查当前日期时间是否等于另一个日期时间。
String format(DateTimeFormatter formatter)将日期时间格式化为指定的字符串格式。

例题6 : LocalDateTime使用

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class LocalDateTimeDemo {public static void main(String[] args) {// 创建 LocalDateTime 对象LocalDateTime now = LocalDateTime.now();LocalDateTime specificDateTime = LocalDateTime.of(1949, 10, 1, 14, 20);System.out.println("指定日期时间" + specificDateTime);  // 指定日期时间1949-10-01T14:20// 解析字符串为 LocalDateTime 对象LocalDateTime parsedDateTime = LocalDateTime.parse("1970-01-01T09:00:00");System.out.println("解析后的日期时间" + parsedDateTime);  // 解析后的日期时间1970-01-01T09:00// 获取日期时间信息LocalDate date = specificDateTime.toLocalDate();System.out.println("日期部分" + date);  // 日期部分1949-10-01int year = specificDateTime.getYear();System.out.println("年份" + year);  // 年份1949int minute = specificDateTime.getMinute();System.out.println("分钟数" + minute);  // 分钟数20// 减少、增加日期时间LocalDateTime futureDateTime = specificDateTime.plusDays(7).plusHours(3);System.out.println("增加日期时间" + futureDateTime);  // 增加日期时间1949-10-08T17:20// 判定日期时间关系boolean isEqual = parsedDateTime.isEqual(specificDateTime);System.out.println(isEqual);  // false// 格式化日期时间DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS");String formattedDateTime = parsedDateTime.format(formatter);System.out.println("格式化后的日期时间为" + formattedDateTime);  // 格式化后的日期时间为1970-01-01 09:00:00:000}
}

相关文章:

Java基础十八(正则表达式 + 日期时间)

1. 正则表达式 1.1 普通字符 字符描述示例[abc]匹配 […] 中所有字符[hlo] 匹配字符串 "hello world" 中所有的 h l o 字母[^ABC]匹配除了 […] 中所有字符[hlo] 匹配字符串 "hello world" 中除了 h l o 的所有字母[^a-z]匹配除了 […] 中所有字符[hlo] 匹…...

Linux C 多进程编程(面试考点)

嵌入式开发为什么要移植操作系统? 1.减小软硬件的耦合度,提高软件的移植性 2. 操作系统提供很多库和工具(QT Open CV),提高开发效率 3.操作系统提供多任务机制,______________________? (提高C…...

c++一级

与7无关的数 #include<iostream> #include<iomanip> using namespace std; int main() {   int n,a,sum0,c0;   cin>>n;   for(int i1;i<n;i){     if(i%7!0){       ai;       c0; …...

Code Lab - 34

GAT里面有一些地方看的不是太懂&#xff08;GAT里Multi Attention的具体做法&#xff09;&#xff0c;暂时找了参考代码&#xff0c;留一个疑问 1. 一个通用的GNN Stack import torch_geometric import torch import torch_scatter import torch.nn as nn import torch.nn.fun…...

后端返回文件流,前端怎么导出、下载(8种方法可实现)

在前端导出和下载后端返回的文件流时&#xff0c;可以使用以下几种方法&#xff1a; 使用window.open()方法&#xff1a; 在前端使用window.open()方法打开一个新的窗口或标签页&#xff0c;并将后端返回的文件流作为URL传递给该方法。浏览器会自动下载该文件。例如&#xff1a…...

什么是 ThreadLocal?

ThreadLocal 是 Java 中的一个类,用于在多线程环境下,为每个线程提供独立的变量副本。每个线程可以通过 ThreadLocal 存储和获取数据,而不会影响其他线程的数据。这在某些情况下非常有用,特别是当多个线程需要访问共享数据,但又希望保持数据的隔离性时。 ThreadLocal 主要…...

CANOCO5.0实现冗余分析(RDA)最详细步骤

在地理及生态领域会常使用RDA分析&#xff0c;RDA的实现路径也有很多&#xff0c;今天介绍一下CANOCO软件的实现方法。 1.软件安装 时间调整到2010年 2.数据处理 得有不同的物种或者样点数值&#xff0c;再加上环境因子数据。 3.软件运行 4.结果解读 结果解读主要把握这几点…...

【tkinter 专栏】掷骰子游戏

文章目录 前言本章内容导图1. 需求分析2. 系统功能结构3. 设计流程4. 系统开发环境5. 系统预览6. 窗口布局7. 功能实现用户和电脑选择骰子的点数大小摇骰子过程实现判断游戏结果单击开始按钮进行游戏源代码汇总前言 本专栏将参考《Python GUI 设计 tkinter 从入门到实践》书籍…...

19 NAT穿透|python高级

文章目录 网络通信过程NAT穿透 python高级GIL锁深拷贝与浅拷贝私有化import导入模块工厂模式多继承以及 MRO 顺序烧脑题property属性property装饰器property类属性 魔法属性\_\_doc\_\_\_\_module\_\_ 和 \_\_class\_\_\_\_init\_\_\_\_del\_\_\_\_call\_\_\_\_dict\_\_\_\_str…...

2023常见前端面试题

以下是一些2023年秋招常见的前端面试题及其答案&#xff1a; 1. 请解释一下什么是前端开发&#xff1f; 前端开发是指使用HTML、CSS和JavaScript等技术来构建网页和用户界面的过程。前端开发人员负责将设计师提供的视觉设计转化为可交互的网页&#xff0c;并确保网页在不同设备…...

登录校验-JWT令牌-生成和校验

目录 JWT-生成 具体代码 运行结果如下 JWT-校验 具体代码 运行结果如下 小结 JWT-生成 具体代码 /*** 测试JWT令牌的生成*/Testpublic void TestJWT() {// 设置自定义内容Map<String, Object> claims new HashMap<>();claims.put("id", 1);claims…...

GIT 常用指令

基础指令 $ git init #初始化仓库&#xff0c;在该文件夹创建的为workspace$ git add . #已暂存 [.通配符&#xff0c;全部添加]$ git commit -m "log add file" #提交到仓库,并写了日志 ”log add file“$ git status #查看状态&#xff0c;可查看被修改的文件…...

多目标优化

https://zhuanlan.zhihu.com/p/158705342 概念 单目标优化只有一个优化目标&#xff0c;所以可以比较其好坏。 但是多目标优化&#xff0c;在需要优化多个目标时&#xff0c;容易存在目标之间的冲突&#xff0c;一个目标的优化是以其他目标劣化为代价的&#xff0c;所以我们要…...

odoo的优势

plus&#xff0c;主要是为了能尽早通过开发者审核&#xff0c;加入到chatgpt4 api的开发中去&#xff0c;接入到我们odoo aiCenter中。4的回答&#xff0c;明显比3.5的更聪明了。 可能是由于国内的特殊情况吧&#xff0c;我们的chatgpt模块很受欢迎&#xff0c;我也被问了不少…...

Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【三】

&#x1f600;前言 本篇博文是关于Spring Boot(Vue3ElementPlusAxiosMyBatisPlusSpring Boot 前后端分离)【三】的分享&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我…...

Kali 软件管理

kali 更新 1. 查看发行版本 ┌──(root㉿kali)-[~] └─# lsb_release -a No LSB modules are available. Distributor ID: Kali Description: Kali GNU/Linux Rolling Release: 2023.2 Codename: kali-rolling2. 查看内核版本 ┌──(root㉿kali)-[~] └─…...

加油站【贪心算法】

加油站 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 gas 和…...

java八股文面试[多线程]——死锁、活锁、饥饿

DCL双重锁&#xff1a;TODO 如何预防死锁&#xff1a; 如何查看线程死锁&#xff1a; 知识来源&#xff1a; 【2023年面试】描述一下线程安全活跃态问题&#xff0c;以及竞态条件_哔哩哔哩_bilibili 【2023年面试】如何预防死锁_哔哩哔哩_bilibili 【并发与线程】阿里一面&…...

设计模式——装饰器模式

装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。这种类型的设计模式属于结构型模式&#xff0c;它是作为现有的类的一个包装。 装饰器模式通过将对象包装在装饰器类中&#xff0c;以便动态…...

①matlab的命令掌握

目录 输入命令 命名变量 保存和加载变量 使用内置的函数和常量 输入命令 1.您可以通过在命令行窗口中 MATLAB 提示符 (>>) 后输入命令 任务 使用命令 3*5 将数值 3 和 5 相乘。 答案 3*5 2.除非另有指定&#xff0c;否则 MATLAB 会将计算结果存储在一个名为 ans…...

MySQL----索引

一、索引的概念 索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址&#xff08;类似于c语言的链表通过指针指向数据记录的内存地址&#xff09;。使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索引表找到该…...

秒杀系统的业务流程以及优化方案(实现异步秒杀)

先看基本的业务流程 那么我们可以看到整个流程都是一个线程来完成的&#xff0c;这样的话耗时还是很长的&#xff0c;那么可不可以采用多线程去实现呢&#xff1f; 首先我们要思考怎么对业务进行拆分&#xff0c;可以想象一个我们去饭店点餐&#xff0c;会有前台接待&#xff…...

Java实现根据商品ID获取1688商品详情跨境属性数据,1688商品重量数据接口,1688API接口封装方法

要通过1688的API获取商品详情跨境属性数据&#xff0c;您可以使用1688开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过1688开放平台API获取商品详情属性数据接口&#xff1a; 首先&#xff0c;确保您已注册成为1688开放平台的开发者…...

前端面试的性能优化部分(14)每天10个小知识点

目录 系列文章目录前端面试的性能优化部分&#xff08;1&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;2&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;3&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;4&#xff09;每天…...

Uniapp笔记(六)uniapp基础

一、腾讯地图 1、uniapp地图渲染 <template><view><map class"map" :longitude"longitude" :latitude"latitude"></map></view> </template> <script>export default {data() {return {longitude:1…...

C++ sort函数用法

sort函数是C标准库中的一个排序算法&#xff0c;头文件是algorithm&#xff0c;用于对容器中的元素进行排序。它可以对任何可排序的容器&#xff08;如数组、向量、列表等&#xff09;进行排序。 有以下四个基本用法&#xff1a; 1. 自定义排序规则&#xff1a;可以通过提供自…...

电子仓库预测水浸事件,他怎么做到的?

仓库环境中水浸事件可能导致严重的损失&#xff0c;不仅对货物造成损害&#xff0c;还可能影响设备的正常运行甚至威胁安全。 因此&#xff0c;为了应对这一挑战&#xff0c;引入一套完善的仓库水浸监控系统成为了不可或缺的措施。 客户案例 广东某电子公司是一家领先的电子设…...

CMake调用第三方库的两种方法

为了让连接器搜索到库路径&#xff0c;一般有两种方法 link_directories命令 使用步骤## 在add_executable或add_library前引入第三方库 # 1.引入第三方库,${THIRD_PARTY_PREFIX}为用户定义的第三方库目录 link_directories(${THIRD_PARTY_PREFIX}/lib) # 2.增加第三方库头文…...

Django基础7——用户认证系统、Session管理、CSRF安全防护机制

文章目录 一、用户认证系统二、案例&#xff1a;登陆认证2.1 平台登入2.2 平台登出2.3 login_required装饰器 三、Django Session管理3.1 Django使用Session3.1.1 Cookie用法3.1.2 Session用法 3.2 案例&#xff1a;用户登录认证 四、Django CSRF安全防护机制 一、用户认证系统…...

基于流计算 Oceanus(Flink) CDC 做好数据集成场景

由于第一次做实时&#xff0c;所以踩坑比较多&#xff0c;见谅(测试环境用的flink),小公司没有用到hadoop组件 一、踩坑记录 1:本地代码的flink版本是flink1.15.4&#xff0c;生产环境是flink1.16.1&#xff0c;在使用侧输出流时报错&#xff0c;需要使用以下写法,需要使用Si…...

MySQL8.Xx安装控制台未生成随机密码解决方案

MySQL8.xx一主两从复制安装与配置 MySQL8.XX随未生成随机密码解决方案 MySQL8.0.30一主两从复制与配置(一) 一: Mysql 安装时控制台未生成密码 安装过程中解压或者安装时报错等,这种情况一般是因网络等其他原因导致下载的安装包不完整&#xff0c; 重新下载安装即可; 二:…...

安装VS2005时提示:请插入磁盘:visual studio 2005 DVD

安装VS2005时提示&#xff1a;请插入磁盘:visual studio 2005 DVD 修改卷标为 "DVD1"...

OpenVINO2023使用简介

1 下载安装 先在anaconda中创建一个虚拟环境&#xff0c;该环境的python版本为3.7&#xff0c;之所以使用python3.7&#xff0c;是因为我在3.9上安装过程中出现不少bug&#xff0c;后面新建了一个3.7的环境才解决&#xff0c;我不知道是否由于和我已有环境中某些包不兼容&…...

基于React实现无限滚动的日历详细教程,附源码【手写日历教程第二篇】

前言 最常见的日历大部分都是滚动去加载更多的月份&#xff0c;而不是让用户手动点击按钮切换日历月份。滚动加载的交互方式对于用户而言是更加丝滑和舒适的&#xff0c;没有明显的操作割裂感。 那么现在需要做一个这样的无限滚动的日历&#xff0c;前端开发者应该如何去思考…...

68、使用aws官方的demo和配置aws服务,进行视频流上传播放

基本思想:参考官方视频,进行了配置aws,测试了视频推流,rtsp和mp4格式的视频貌似有问题,待调研和解决 第一步:1) 进入aws的网站,然后进入ioT Core 2)先配置 Thing types & Thing,选择香港的节点,然后AWS ioT--->Manage---> Thing type 然后输入名字,创建Th…...

数据库

表 记录&#xff1a;行 字段&#xff08;属性&#xff09;: 列 以行列的形式就组成了表&#xff08;数据存储在表中&#xff09; 关系数据库的表由记录组成&#xff0c;记录由字段组成&#xff0c;字段由字符或数字组成。它可以供各种用户共享&#xff0c; 具有最小冗余度和较高…...

深入了解fcntl函数:Linux系统编程中的文件控制

文章目录 概述介绍函数原型与参数 拓展&#xff1a;fcntl改文件属性总结 概述 摘要: fcntl函数是Linux系统编程中一个重要的函数&#xff0c;用于对文件描述符进行各种控制操作。本文将详细介绍fcntl函数的原型、各个参数的用法&#xff0c;以及阻塞和非阻塞模式切换的方法&am…...

汇川技术内推码

[庆祝]不一样的内推码[庆祝]&#xff1a;IVSM2R 投递了可以评论下名字&#xff0c;我会帮忙留意进度。 汇尔成川&#xff0c;共赴星海&#xff0c;欢迎加入&#xff0c;职等你来。 嵌入式软硬件&#xff0c;机器人算法&#xff0c;电机控制&#xff0c;通信软件&#xff0c;PLC…...

nacos服务器启动报错集合

报错1 Error creating bean with name ‘user‘: Unsatisfied dependency expressed through field ‘jwtTokenManage 开启鉴权之后&#xff0c;你可以自定义用于生成JWT令牌的密钥&#xff0c;application.properties中的配置信息为&#xff1a; ### Since 1.4.1, worked when…...

C语言_分支和循环语句(2)

文章目录 前言一、for 循环1.1语法1.2 for 语句的循环控制变量1.3 一些 for 循环的变种 二、do ... while()循环2.1 do 语句的语法2.2 do ... while 循环中的 break 和 continue2.3 练习1 **- 计算n的阶乘**2. - **在一个有序数组中查找具体的某个数字 n** 二分查找算法&#x…...

JMeter 接口自动化测试:从入门到精通的完全指南

JMeter 是一个开源的负载测试工具&#xff0c;它可以模拟多种协议和应用程序的负载&#xff0c;包括 HTTP、FTP、SMTP、JMS、SOAP 和 JDBC 等。在进行接口自动化测试时&#xff0c;使用 JMeter 可以帮助我们快速地构建测试用例&#xff0c;模拟多种场景&#xff0c;发现接口的性…...

【Java】集合List的toArray()方法及其重载

在Java中&#xff0c;集合&#xff08;List 接口的实现类&#xff09;提供了一个名为 toArray 的方法&#xff0c;用于将集合中的元素转换成数组。该方法有两个主要的重载形式&#xff0c;分别用于不同的情况。 toArray()重载方法1 <T> T[] toArray(T[] a)这个方法将集…...

Python学习笔记:Requests库安装、通过url下载文件

1.下载安装requests库 在pipy或者github下载&#xff0c;通常是个zip&#xff0c;解压缩后在路径输入cmd&#xff0c;并运行以下代码 Python setup.py install 安装完成后&#xff0c;输入python再输入import requests得到可以判断时候完成安装 2.通过url下载文件 使用的是u…...

git pull --rebase 用法

git pull --rebase git pull --rebase 是 Git 命令中的一个选项&#xff0c;它的作用是在从远程仓库拉取更新时使用 rebase 而不是默认的合并方式。使用这个命令会使您的提交历史更加整洁&#xff0c;因为它将您的本地提交在远程更新之前重新应用到新的提交之上。 这个命令的…...

react antd框架中的徽标获取数据对应状态的数量

实现思路&#xff1a;获取数量的思路是通过filter过滤符合数据来实现。 列表数组.filter(item > item.status 值).length; 例子&#xff1a;以下这个例子是判断data数组中的status中在职的数量。 data.filter((item) > item.status 在职).length 效果展示&#xff…...

【多线程】Thread类的用法

文章目录 1. Thread类的创建1.1 自己创建类继承Thread类1.2 实现Runnable接口1.3 使用匿名内部类创建Thread子类对象1.4 使用匿名内部类创建Runnable子类对象1.5 使用lambda创建 2. Thread常见的构造方法2.1 Thread()2.2 Thread(Runnable target)2.3 Thread(String name)2.4 Th…...

第八章 贪心算法 part03 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果 (day34补)

本文章代码以c为例&#xff01; 一、力扣第1005题&#xff1a;K 次取反后最大化的数组和 题目: 给你一个整数数组 nums 和一个整数 k &#xff0c;按以下方法修改该数组&#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择…...

Android Activity启动过程一:从Intent到Activity创建

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、概览二、应用内启动源码流程 (startActivity)2.1 startActivit…...

第9章:聚类

聚类任务 性能度量 距离度量 非度量距离 原型聚类 有很好的统计学上的意义&#xff0c;但是只能找到椭球形的聚类。 密度聚类 层次聚类...

程序员为什么要写bug,不能一次性写好吗?

仅仅听到“Bug”这个词就会让你作为一个开发人员感到畏缩。我们相信&#xff0c;优秀的程序员是那些编写无错误代码的人。随着一些开发人员强调要成为一名零错误程序员&#xff0c;我们进行了更深刻的思考&#xff0c;并发现事实的准确性。 所有制作的软件都应该没有错误。对此…...