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

Java常见API文档(下)

在这里插入图片描述
格式化的时间形式的常用模式对应关系如下:
在这里插入图片描述

空参构造创造simdateformate对象,默认格式

练习.按照指定格式展示

在这里插入图片描述

package kl002;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Date3 {public static void main(String[] args) throws ParseException {String str = "2000-11-11";SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf1.parse(str);SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");String result = sdf2.format(date);System.out.println(result);}
}

运行结果:
2000年11月11日

细节:SimpleDateFormat 是 Java 中用于处理日期格式化和解析的类,位于 java.text 包下。它允许你将日期对象(如 java.util.Date 或 java.util.Calendar)按照指定的模式格式化为字符串,也可以将字符串解析为日期对象。
基本用法

  1. 格式化日期(Date → String)
  2. 解析字符串(String → Date)
  3. 注意事项
    线程不安全
    SimpleDateFormat 不是线程安全的,在多线程环境下使用时需要注意同步问题,建议每个线程单独创建实例。
    时区和语言环境
    默认使用系统时区和语言环境,可通过 setTimeZone() 和构造函数指定:
    4.异常处理
    解析字符串时可能抛出 ParseException,必须进行异常处理。
    替代方案(Java 8+)
    Java 8 引入的 java.time 包(如 LocalDateTime、DateTimeFormatter)提供了更现代化、线程安全的日期时间 API:

练习.秒杀活动

在这里插入图片描述

package kl002;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormateDemo1 {public static void main(String[] args) throws ParseException {//比较两个时间//解析时间得到毫秒值String startstr = "2023年11月11日 0:0:0";String endstr = "2023年11月11日 0:10:0";String orderstr = "2023年11月11日 0:01:0";SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//解析上面三个时间,得到Date对象Date startDate = sdf.parse(startstr);Date endDate = sdf.parse(endstr);Date orderDate = sdf.parse(orderstr);//得到三个时间的毫秒值long startTime = startDate.getTime();long endTime = endDate.getTime();long orderTime = orderDate.getTime();//判断if (orderTime >= startTime && orderTime <= endTime) {System.out.println("参加秒杀活动成功");} else {System.out.println("参加秒杀活动失败");}}
}

运行结果:
参加秒杀活动成功

总结

在这里插入图片描述

Calender

Calender概述
在这里插入图片描述
细节:Calender是一个抽象类,不能直接创建对象
Calender常用方法
在这里插入图片描述
细节:
月份:范围0-11,如果获取出来的是0,那么实际上是1月

总结

在这里插入图片描述

  1. 获取 Calendar 实例
  2. 获取和设置日期字段
  3. 日期计算
  4. 与 Date 类互转
    5.格式化输出
    通常结合 SimpleDateFormat 或 Java 8+ 的 DateTimeFormatter 使用
    注意事项
    月份从 0 开始
    Calendar.JANUARY 到 Calendar.DECEMBER 的值是 0 到 11,设置和获取月份时需要注意。
    线程安全
    Calendar 类不是线程安全的,多线程环境下需注意同步问题。
    Java 8+ 推荐使用 java.time 包
    Java 8 引入的 java.time 包(如 LocalDateTime、ZonedDateTime)提供了更简洁、线程安全的 API
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    自动装箱:把基本数据类型自动变成其对应的包装类
    自动拆箱:把包装类自动变成其对象的基本数据类型

JDK5以后:int和Integer可以看作是同一个东西,因为在内部可以自动转化

包装类.总结

在这里插入图片描述
在这里插入图片描述
以后要进行键盘录入,统一使用nextline
特点:遇到回车才结束

练习.键盘录入

在这里插入图片描述

package kl003;import java.util.ArrayList;
import java.util.Scanner;public class Test1 {public static void main(String[] args) {//1.创建一个集合用来添加整数ArrayList<Integer> list = new ArrayList<>();//2.键盘录入整数添加到集合当中Scanner sc = new Scanner(System.in);while (true) {System.out.println("请输入一个整数:");String numStr = sc.nextLine();int num = Integer.parseInt(numStr);//3.过滤异常数据if (num < 1 || num > 100) {System.out.println("输入的数字超出范围,请重新输入");continue;}list.add(num);int sum = getSum(list);if (sum > 200){System.out.println("集合中的所有的数据和已经满足需求");break;}}for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i) + " ");}}private static int getSum(ArrayList<Integer> list) {int sum = 0;for (int i = 0; i < list.size(); i++) {int num = list.get(i);sum = sum + num;}return sum;}
}

运行结果:
请输入一个整数:
1
请输入一个整数:
50
请输入一个整数:
10
请输入一个整数:
100
请输入一个整数:
50
集合中的所有的数据和已经满足需求
1
50
10
100
50
细节与代码总结:
//1.创建一个集合用来添加整数
//2.键盘录入整数添加到集合当中
//3.过滤异常数据

练习.算法水题

在这里插入图片描述

package kl003;public class Test2 {public static void main(String[] args) {//定义一个字符串String str = "123456789";   //2.校验一个字符串//习惯:过滤异常数据if (str.matches("[1-9]\\d(0,9)")) {//错误的数据System.out.println("数据格式有误");} else {//正确的数据System.out.println("数据格式正确");//3.定义一个变量,表示最终的结果int num = 0;//4.遍历字符串,得到每一个字符for (int i = 0; i < str.length(); i++) {int c = str.charAt(i) - '0';//5.把每一位数字放到num中num = num * 10 + c;}System.out.println(num);System.out.println(num+1);}}
}

运行结果:
数据格式正确
123456789

练习.算法水题

在这里插入图片描述

package kl003;public class Test3 {public static void main(String[] args) {System.out.println(toBinaryString(123));}public static String toBinaryString(int num) {//定义一个StringBuilder对象来拼接余数StringBuilder sb = new StringBuilder();//利用循环不断的除以2,取余数//运用死循环while(true){if (num == 0){break;}//取余数  %int remainder = num % 2;//倒着拼接sb.insert(0,remainder);//除以2num = num / 2;}return sb.toString();}}

运行结果:
1111011

练习.算法水题

在这里插入图片描述

package kl003;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Date;public class Test4 {public static void main(String[] args) throws ParseException {//请使用代码实现计算你活了多少天,用JDK7和JDK8两种方式实现//JDK7String birthday = "2005年12月5日";SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");Date date = sdf.parse(birthday);long birthdayTime = date.getTime();//计算当前时间的毫秒值long todayTime = System.currentTimeMillis();//计算间隔多少天long time = todayTime - birthdayTime;//计算天数long day = time / 1000 / 60 / 60 / 24;System.out.println("你活了" + day + "天");//JDK8LocalDate ld1 = LocalDate.of(2005,12,5);LocalDate ld2 = LocalDate.now();long days = ChronoUnit.DAYS.between(ld1,ld2);System.out.println("你活了" + days + "天");}
}

运行结果:
你活了7105天
你活了7105天

练习.算法水题

在这里插入图片描述

package kl003;import java.time.LocalDate;
import java.util.Calendar;public class Test5 {public static void main(String[] args) {//JDK7//可以把时间设置为2000年3月1日Calendar c = Calendar.getInstance();c.set(2000,2,1);//月份的范围是0-11//把日期往前推一天c.add(Calendar.DAY_OF_MONTH,-1);//看当前的时间是28号还是29号int day = c.get(Calendar.DAY_OF_MONTH);System.out.println(day);//JDK8//月份范围1-12LocalDate.of(2000,3,1);//把时间往前减一天LocalDate ld2 = LocalDate.of(2000, 3, 1).minusDays(1);System.out.println(ld2);//JDK8判断是否是闰年System.out.println(ld2.isLeapYear());}
}

运行结果:
29
2000-02-29
true
谢谢观看

相关文章:

Java常见API文档(下)

格式化的时间形式的常用模式对应关系如下&#xff1a; 空参构造创造simdateformate对象&#xff0c;默认格式 练习.按照指定格式展示 package kl002;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class Date3 {publi…...

DRIVEGPT4: 通过大语言模型实现可解释的端到端自动驾驶

《DriveGPT4: Interpretable End-to-End Autonomous Driving via Large Language Model》 2024年10月发表&#xff0c;来自香港大学、浙江大学、华为和悉尼大学。 多模态大型语言模型&#xff08;MLLM&#xff09;已成为研究界关注的一个突出领域&#xff0c;因为它们擅长处理…...

知识图谱(KG)与大语言模型(LLM)

知识图谱&#xff08;KG&#xff09;以其结构化的知识表示和推理能力&#xff0c;为大语言模型&#xff08;LLM&#xff09;的“幻觉”、知识更新滞后和可解释性不足等问题提供了有力的解决方案。反过来&#xff0c;LLM的强大文本理解和生成能力也为KG的构建、补全、查询和应用…...

构建共有语料库 - Wiki 语料库

中文Wiki语料库主要指的是从中文Wikipedia&#xff08;中文维基百科&#xff09;提取的文本数据。维基百科是一个自由的、开放编辑的百科全书项目&#xff0c;覆盖了从科技、历史到文化、艺术等广泛的主题。 对于基于RAG的应用来说&#xff0c;把Wiki语料作为一个公有的语料库…...

苍穹外卖项目中的 WebSocket 实战:实现来单与催单提醒功能

&#x1f680; 苍穹外卖项目中的 WebSocket 实战&#xff1a;实现来单与催单提醒功能 在现代 Web 应用中&#xff0c;实时通信成为提升用户体验的关键技术之一。WebSocket 作为一种在单个 TCP 连接上进行全双工通信的协议&#xff0c;被广泛应用于需要实时数据交换的场景&#…...

精益数据分析(59/126):移情阶段的深度博弈——如何避开客户访谈的认知陷阱

精益数据分析&#xff08;59/126&#xff09;&#xff1a;移情阶段的深度博弈——如何避开客户访谈的认知陷阱 在创业的移情阶段&#xff0c;客户访谈是挖掘真实需求的核心手段&#xff0c;但人类认知偏差往往导致数据失真。今天&#xff0c;我们结合《精益数据分析》的方法论…...

Win10 安装单机版ES(elasticsearch),整合IK分词器和安装Kibana

一. 先查看本机windows是否安装了ES(elasticsearch)&#xff0c;检查方法如下&#xff1a; 检查进程 按 Ctrl Shift Esc 组合键打开 “任务管理器”。在 “进程” 选项卡中&#xff0c;查看是否有 elasticsearch 相关进程。如果有&#xff0c;说明系统安装了 ES。 检查端口…...

Ansible模块——主机名设置和用户/用户组管理

设置主机名 ansible.builtin.hostname: name&#xff1a;要设置的主机名 use&#xff1a;更新主机名的方式&#xff08;默认会自动选择&#xff0c;不指定的话&#xff0c;物理机一般不会有问题&#xff0c;容器可能会有问题&#xff0c;一般是让它默认选择&#xff09; syst…...

【Redis】List 列表

文章目录 初识列表常用命令lpushlpushxlrangerpushrpushxlpop & rpoplindexlinsertllen阻塞操作 —— blpop & brpop 内部编码应用场景 初识列表 列表类型&#xff0c;用于存储多个字符串。在操作和实现上&#xff0c;类似 C 的双端队列&#xff0c;支持随机访问(O(N)…...

JUC入门(四)

ReadWriteLock 代码示例&#xff1a; package com.yw.rw;import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.ReentrantReadWriteLock;public class ReadWriteDemo {public static void main(String[] args) {MyCache myCache new MyCache…...

【HarmonyOS 5】鸿蒙mPaaS详解

【HarmonyOS 5】鸿蒙mPaaS详解 一、mPaaS是什么&#xff1f; mPaaS 是 Mobile Platform as a Service 的缩写&#xff0c;即移动开发平台。 蚂蚁移动开发平台mPaaS &#xff0c;融合了支付宝科技能力&#xff0c;可以为移动应用开发、测试、运营及运维提供云到端的一站式解决…...

多线BGP服务器优化实践与自动化运维方案

背景&#xff1a;企业级网络架构中的线路选择难题 在分布式业务部署场景下&#xff0c;如何通过三网融合BGP服务器实现低延迟、高可用访问&#xff1f;本文以某电商平台流量调度优化为案例&#xff0c;解析动态BGP服务器的实战价值。 技术方案设计 核心架构&#xff1a;采用…...

无法加载文件 E:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本

遇到“无法加载文件 E:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本”这类错误&#xff0c;通常是因为你的 PowerShell 执行策略设置为不允许运行脚本。在 Windows 系统中&#xff0c;默认情况下&#xff0c;出于安全考虑&#xff0c;PowerShell 可能会阻止运行未…...

【C++模板与泛型编程】实例化

目录 一、模板实例化的基本概念 1.1 什么是模板实例化&#xff1f; 1.2 实例化的触发条件 1.3 实例化的类型 二、隐式实例化 2.1 隐式实例化的工作原理 2.2 类模板的隐式实例化 2.3 隐式实例化的局限性 三、显式实例化 3.1 显式实例化声明&#xff08;extern templat…...

TB开拓者策略交易信号闪烁根因及解决方法

TB开拓者策略信号闪烁分析 TB开拓者策略交易信号闪烁根因 TB开拓者策略交易信号闪烁根因分析 信号闪烁是交易策略开发中常见的问题&#xff0c;特别是在TB(TradeBlazer)开拓者等平台上。以下是信号闪烁的主要根因分析&#xff1a; 主要根因 未来函数问题 使用了包含未来信息…...

什么是RDMA?

什么是RDMA&#xff1f; RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问&#xff0c;就是为了解决网络传输中服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机&#xff0c;无需双方操作系统的介入。这允许高吞吐、低延迟的网络…...

C++面试3——const关键字的核心概念、典型场景和易错陷阱

const关键字的核心概念、典型场景和易错陷阱 一、const本质&#xff1a;类型系统的守护者 1. 与#define的本质差异 维度#defineconst编译阶段预处理替换编译器类型检查作用域无作用域&#xff08;全局污染&#xff09;遵循块作用域调试可见性符号消失保留符号信息类型安全无类…...

ASIC和FPGA,到底应该选择哪个?

ASIC和FPGA各有优缺点。 ASIC针对特定需求&#xff0c;具有高性能、低功耗和低成本&#xff08;在大规模量产时&#xff09;&#xff1b;但设计周期长、成本高、风险大。FPGA则适合快速原型验证和中小批量应用&#xff0c;开发周期短&#xff0c;灵活性高&#xff0c;适合初创企…...

【C++】嵌套类访问外部类成员

文章目录 C嵌套类访问外部类成员详解&#xff1a;权限、机制与最佳实践一、默认访问权限&#xff1a;并非友元二、访问外部类私有成员的方法1. 声明友元关系2. 通过公有接口访问 三、静态成员 vs. 非静态成员四、实际应用案例&#xff1a;Boost.Asio线程池场景需求实现关键代码…...

mac下载、使用mysql

1.如果对版本没有特别要求&#xff0c;那么直接使用brew install mysql安装即可。 2.使用 brew services start mysql 启动mysql。 3.使用 mysql -u root 登录mysql&#xff0c;这个时候还是不需要密码的 4.退出数据库&#xff1a;exit 5.给root设置一个密码&#xff0c;使用 m…...

java Lombok 对象模版和日志注解

目录 1、依赖&#xff1a; 2、在Idea中确认是否安装Lombok 插件 3、 Lombok常用注解 3.1 Getter 和 Setter 3.2 ToString 3.3 AllArgsConstructor 和 NoArgsConstructor 3.4 Data 3.5 FieldDefaults 4、 Slf4j 日志注解 4.2 日志级别 4.3 设置日志级别 1、依赖&#xff1a;…...

Python学习笔记--使用Django操作mysql

注意&#xff1a;本笔记基于python 3.12&#xff0c;不同版本命令会有些许差别&#xff01;&#xff01;&#xff01; Django 模型 Django 对各种数据库提供了很好的支持&#xff0c;包括&#xff1a;PostgreSQL、MySQL、SQLite、Oracle。 Django 为这些数据库提供了统一的调…...

win11下,启动springboot时,提示端口被占用的处理方式

注&#xff1a;此操作可能存在风险&#xff01;&#xff01; 在启动springboot时&#xff0c;提示端口被占用。于是执行 #查看所有的占用的端口 netstat -ano | findStr 8080 结果发现并没有什么进程占据8080端口。再次执行&#xff1a; # 查看系统保留端口 netsh int ipv4…...

计算机视觉设计开发工程师学习路线

以下是一条系统化的计算机视觉&#xff08;CV&#xff09;学习路线&#xff0c;从基础到进阶&#xff0c;涵盖理论、工具和实践&#xff0c;适合逐步深入&#xff0c;有需要者记得点赞收藏哦&#xff1a; 相关学习&#xff1a;python深度学习&#xff0c;python代码定制 python…...

AI大模型从0到1记录学习numpy pandas day25

第 3 章 Pandas 3.1 什么是Pandas Pandas 是一个开源的数据分析和数据处理库&#xff0c;它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具&#xff0c;特别适用于处理结构化数据&#xff0c;如表格型数据&#xff08;类似于Excel表格&#xff09;…...

Opencv C++写中文(来自Gemini)

基于与Google Gemini交互获取的Opencv在图片上写汉字的实现 sudo apt-get install libfreetype6-dev sudo apt-get install fonts-wqy-zenhei CMakeLists.txt cmake_minimum_required(VERSION 3.10) # Or a more recent versionproject(OpenCVChineseText)set(CMAKE_CXX_STAN…...

下载和导出文件名称乱码问题

只对文件名称进行乱码处理&#xff0c;和文件中的内容无关。 import lombok.SneakyThrows; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.cont…...

STM32实战指南:DHT11温湿度传感器驱动开发与避坑指南

知识点1【DHT11的概述】 1、概述 DHT是一款温湿度一体化的数字传感器&#xff08;无需AD转换&#xff09;。 2、驱动方式 通过单片机等微处理器简单的电路连接就能实时采集本地湿度和温度。DHT11与单片机之间采用单总线进行通信&#xff0c;仅需要一个IO口。 相对于单片机…...

【android bluetooth 协议分析 01】【HCI 层介绍 8】【ReadLocalVersionInformation命令介绍】

1. HCI_Read_Local_Version_Information 命令介绍 1. 功能&#xff08;Description&#xff09; HCI_Read_Local_Version_Information 命令用于读取本地 Bluetooth Controller 的版本信息&#xff0c;包括 HCI 和 LMP 层的版本&#xff0c;以及厂商 ID 和子版本号。 这类信息用…...

esp32课设记录(四)摩斯密码的实现 并用mqtt上传

摩斯密码(Morse Code)是一种通过点(.)和划(-)组合来表示字符的编码系统。下面我将在esp32上实现摩斯密码的输入&#xff0c;并能够发送到mqtt的broker。 先捋一下逻辑&#xff0c;首先esp32的按键已经编写了短按与长按功能&#xff0c;这将是输出摩斯密码点和划的基础。然后当2…...