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.b、1.2 |
| * | 匹配前一个字符零次或多次 | go*gle、colou*r |
| + | 匹配前一个字符一次或多次 | go+gle、colou+r |
| ? | 匹配前一个字符零次或一次 | colou?r、col(o)?r |
| | | 表示“或”的意思,用于匹配多个选项中的一个 | apple|orange、yes|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] | 12345、9am |
| \w | 匹配任意字母、数字或下划线字符,相当于 [a-zA-Z0-9_] | hello_world_123 |
1.4 限定符
| 字符 | 描述 | 示例 |
|---|---|---|
| * | 匹配前一个字符零次或多次 | go*gle、colou*r |
| + | 匹配前一个字符一次或多次 | go+gle、colou+r |
| ? | 匹配前一个字符零次或一次 | colou?r、col(o)?r |
| {n} | 匹配前一个字符恰好出现 n 次 | go{2}gle、colou{3}r |
| {n,} | 匹配前一个字符至少出现 n 次 | go{2,}gle、colou{3,}r |
| {n,m} | 匹配前一个字符出现 n 到 m 次 | go{2,5}gle、colou{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 引入。它结合了 LocalDate 和 LocalTime 的功能,用于表示日期和时间的组合。
| 方法 | 描述 |
|---|---|
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里面有一些地方看的不是太懂(GAT里Multi Attention的具体做法),暂时找了参考代码,留一个疑问 1. 一个通用的GNN Stack import torch_geometric import torch import torch_scatter import torch.nn as nn import torch.nn.fun…...
后端返回文件流,前端怎么导出、下载(8种方法可实现)
在前端导出和下载后端返回的文件流时,可以使用以下几种方法: 使用window.open()方法: 在前端使用window.open()方法打开一个新的窗口或标签页,并将后端返回的文件流作为URL传递给该方法。浏览器会自动下载该文件。例如:…...
什么是 ThreadLocal?
ThreadLocal 是 Java 中的一个类,用于在多线程环境下,为每个线程提供独立的变量副本。每个线程可以通过 ThreadLocal 存储和获取数据,而不会影响其他线程的数据。这在某些情况下非常有用,特别是当多个线程需要访问共享数据,但又希望保持数据的隔离性时。 ThreadLocal 主要…...
CANOCO5.0实现冗余分析(RDA)最详细步骤
在地理及生态领域会常使用RDA分析,RDA的实现路径也有很多,今天介绍一下CANOCO软件的实现方法。 1.软件安装 时间调整到2010年 2.数据处理 得有不同的物种或者样点数值,再加上环境因子数据。 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年秋招常见的前端面试题及其答案: 1. 请解释一下什么是前端开发? 前端开发是指使用HTML、CSS和JavaScript等技术来构建网页和用户界面的过程。前端开发人员负责将设计师提供的视觉设计转化为可交互的网页,并确保网页在不同设备…...
登录校验-JWT令牌-生成和校验
目录 JWT-生成 具体代码 运行结果如下 JWT-校验 具体代码 运行结果如下 小结 JWT-生成 具体代码 /*** 测试JWT令牌的生成*/Testpublic void TestJWT() {// 设置自定义内容Map<String, Object> claims new HashMap<>();claims.put("id", 1);claims…...
GIT 常用指令
基础指令 $ git init #初始化仓库,在该文件夹创建的为workspace$ git add . #已暂存 [.通配符,全部添加]$ git commit -m "log add file" #提交到仓库,并写了日志 ”log add file“$ git status #查看状态,可查看被修改的文件…...
多目标优化
https://zhuanlan.zhihu.com/p/158705342 概念 单目标优化只有一个优化目标,所以可以比较其好坏。 但是多目标优化,在需要优化多个目标时,容易存在目标之间的冲突,一个目标的优化是以其他目标劣化为代价的,所以我们要…...
odoo的优势
plus,主要是为了能尽早通过开发者审核,加入到chatgpt4 api的开发中去,接入到我们odoo aiCenter中。4的回答,明显比3.5的更聪明了。 可能是由于国内的特殊情况吧,我们的chatgpt模块很受欢迎,我也被问了不少…...
Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【三】
😀前言 本篇博文是关于Spring Boot(Vue3ElementPlusAxiosMyBatisPlusSpring Boot 前后端分离)【三】的分享,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我…...
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 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和…...
java八股文面试[多线程]——死锁、活锁、饥饿
DCL双重锁:TODO 如何预防死锁: 如何查看线程死锁: 知识来源: 【2023年面试】描述一下线程安全活跃态问题,以及竞态条件_哔哩哔哩_bilibili 【2023年面试】如何预防死锁_哔哩哔哩_bilibili 【并发与线程】阿里一面&…...
设计模式——装饰器模式
装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 装饰器模式通过将对象包装在装饰器类中,以便动态…...
①matlab的命令掌握
目录 输入命令 命名变量 保存和加载变量 使用内置的函数和常量 输入命令 1.您可以通过在命令行窗口中 MATLAB 提示符 (>>) 后输入命令 任务 使用命令 3*5 将数值 3 和 5 相乘。 答案 3*5 2.除非另有指定,否则 MATLAB 会将计算结果存储在一个名为 ans…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
