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

花几千上万学习Java,真没必要!(二十九)

1、基本数据类型包装类: 

 测试代码1:

package apitest.com;
//使用Integer类的不同方法处理整数。
//将字符串转换为整数(parseInt)和Integer对象(valueOf),
//将整数转换回字符串(toString)以及转换为十六进制(toHexString)、八进制(toOctalString)和二进制(toBinaryString)字符串。
//使用bitCount、highestOneBit和lowestOneBit方法处理整数的位。
//使用Integer对象的compareTo方法来比较两个Integer对象。
public class IntegerMethodsDemo {  public static void main(String[] args) {  // 字符串转整数  String str = "123";  int numFromString = Integer.parseInt(str);  System.out.println("parseInt: " + numFromString);  // 字符串转Integer对象  Integer intObj = Integer.valueOf(str);  System.out.println("valueOf(String): " + intObj);  // int转Integer对象  Integer intObj2 = Integer.valueOf(456);  System.out.println("valueOf(int): " + intObj2);  // 整数转字符串  String numAsString = Integer.toString(numFromString);  System.out.println("toString: " + numAsString);  // 整数转十六进制字符串  String hexString = Integer.toHexString(numFromString);  System.out.println("toHexString: " + hexString);  // 整数转八进制字符串  String octalString = Integer.toOctalString(numFromString);  System.out.println("toOctalString: " + octalString);  // 整数转二进制字符串  String binaryString = Integer.toBinaryString(numFromString);  System.out.println("toBinaryString: " + binaryString);  // 位操作方法  int numBits = 9; // 二进制: 1001  System.out.println("bitCount: " + Integer.bitCount(numBits));  System.out.println("highestOneBit: " + Integer.highestOneBit(numBits));  System.out.println("lowestOneBit: " + Integer.lowestOneBit(numBits));  // Integer对象比较  Integer int1 = 100;  Integer int2 = 200;  System.out.println("compareTo: " + int1.compareTo(int2)); // 输出: -1  }  
}

运行结果如下:

测试代码2:

package apitest.com;
//创建一个IntAndStringConversion类,包含三个静态方法:intToString、stringToInt和hexStringToInt。
//将int转换为String,String转换为int,将十六进制String转换为int。
public class IntAndStringConversion {  public static void main(String[] args) {  // int 到 String 的转换  int number = 123;  String strFromInt = intToString(number);  System.out.println("int to String: " + strFromInt);  // String 到 int 的转换  String str = "456";  try {  int numFromString = stringToInt(str);  System.out.println("String to int: " + numFromString);  } catch (NumberFormatException e) {  System.out.println("Error: The string cannot be parsed as an integer.");  }  // 十六进制字符串到 int 的转换  String hexStr = "1C8";  try {  int hexNum = hexStringToInt(hexStr);  System.out.println("Hex String to int: " + hexNum);  } catch (NumberFormatException e) {  System.out.println("Error: The hex string cannot be parsed as an integer.");  }  }  // int 到 String 的转换  public static String intToString(int number) {  return String.valueOf(number);  }  // String 到 int 的转换(处理异常)  public static int stringToInt(String str) throws NumberFormatException {  return Integer.parseInt(str);  }  //非数字字符的字符串转换为整数时,会抛出异常。// 十六进制字符串到 int 的转换(处理异常)  public static int hexStringToInt(String hexStr) throws NumberFormatException {  return Integer.parseInt(hexStr, 16);  }  
}

运行结果如下:

2、字符串中的数字排序:

package apitest.com;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
//字符串中数字排序是通过正则表达式或遍历字符串来提取所有的数字,
//然后将这些数字存储到某种集合(如List<Integer>)中,接着对这个集合进行排序,
//最后将排序后的数字重新组合成字符串。
public class SortNumbersInString {public static String sortNumbersInString(String input) {List<Integer> numbers = new ArrayList<>();StringBuilder sb = new StringBuilder();for (char c : input.toCharArray()) {if (Character.isDigit(c)) {numbers.add(Integer.parseInt(String.valueOf(c)));} else {sb.append(c);}}Collections.sort(numbers, Comparator.naturalOrder());for (int num : numbers) {sb.append(num);}return sb.toString();}public static void main(String[] args) {String input = "327810hello82world975java310";String sortedString = sortNumbersInString(input);System.out.println("Sorted string: " + sortedString);}
}

运行结果如下: 

3、自动装箱和自动拆箱:

package apitest.com;
public class AutoBoxingAndUnboxing {  //自动装箱:将基本数据类型自动转换为对应的包装类对象。//自动拆箱:将包装类对象自动转换为对应的基本数据类型。 //性能影响:自动装箱和自动拆箱可能会导致性能下降,因为每次装箱和拆箱时都会创建新的对象(对于装箱)或执行类型转换(对于拆箱)。//在性能敏感的应用中,应当避免不必要的装箱和拆箱操作。//空指针异常:自动拆箱一个null的包装类对象时,会抛出NullPointerException。需要特别注意处理可能为null的包装类对象。//缓存机制:自动装箱的某些基本数据类型(比如Integer、Short、Byte、Character和Boolean,在-128到127之间的Integer值)有特殊的缓存机制。//这个范围内的Integer对象会被缓存,相同的值不会重复创建新的对象。但这并不影响自动拆箱可能导致的NullPointerException。public static void main(String[] args) {  // 自动装箱  Integer integerObject = 5; // int -> Integer  // 使用integerObject像使用Integer对象一样  System.out.println("Integer value: " + integerObject);  // 自动拆箱  int intValue = integerObject; // Integer -> int  // 现在intValue是一个基本数据类型int  System.out.println("int value: " + intValue);  // 自动拆箱可能导致NullPointerException  Integer nullableInteger = null;  try {  int willThrowNPE = nullableInteger; // 尝试自动拆箱  } catch (NullPointerException e) {  System.out.println("Caught NullPointerException: Cannot unbox null value.");  }  // 避免自动拆箱导致的NullPointerException  int safeIntValue = nullableInteger != null ? nullableInteger : 0;  System.out.println("Safe int value: " + safeIntValue);  }  
}

运行结果如下:

4、Date类:

测试代码1:

package apitest.com;
import java.time.LocalDate;  
import java.time.LocalDateTime;  
import java.time.format.DateTimeFormatter;  public class DateTimeExample {  public static void main(String[] args) {  // 打印当前日期  printCurrentDate();  // 打印当前日期和时间,并格式化为字符串  printCurrentDateTimeFormatted();  }  // 打印当前日期  public static void printCurrentDate() {  LocalDate currentDate = LocalDate.now();  System.out.println("当前日期: " + currentDate);  }  // 打印当前日期和时间,并格式化为字符串  public static void printCurrentDateTimeFormatted() {  LocalDateTime currentTime = LocalDateTime.now();  DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");  String formattedDateTime = currentTime.format(formatter);  System.out.println("当前日期和时间(格式化): " + formattedDateTime);  }  
}

测试代码2:

package apitest.com;
import java.time.LocalDate;  
import java.time.LocalDateTime;  
import java.time.format.DateTimeFormatter;  public class DateFormatExamples {  public static void main(String[] args) {  // 创建一个LocalDate实例  LocalDate date = LocalDate.now();  // 创建一个LocalDateTime实例  LocalDateTime dateTime = LocalDateTime.now();  // 定义并打印不同的日期格式  DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");  System.out.println("格式1: " + date.format(formatter1)); // 例如:2023-10-05  DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("dd/MM/yyyy");  System.out.println("格式2: " + date.format(formatter2)); // 例如:05/10/2023  DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy");  System.out.println("格式3: " + date.format(formatter3)); // 例如:Thu, 5 Oct 2023  // 定义并打印不同的日期时间格式  DateTimeFormatter formatter4 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");  System.out.println("格式4: " + dateTime.format(formatter4)); // 例如:2023-10-05 14:30:45  DateTimeFormatter formatter5 = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm a");  System.out.println("格式5: " + dateTime.format(formatter5)); // 例如:05/10/2023 02:30 PM(取决于当前时间)  DateTimeFormatter formatter6 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;  System.out.println("ISO格式: " + dateTime.format(formatter6)); // 例如:2023-10-05T14:30:45  }  
}

运行结果如下:

 测试代码3:

package apitest.com;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;  
import java.time.format.DateTimeParseException;  
import java.util.Locale;  public class DateParseExamples {  public static void main(String[] args) {  String dateString1 = "2023-10-05";  String dateString2 = "05/10/2023";  String dateString3 = "Thu, 5 Oct 2023";  String dateTimeString = "2023-10-05 14:30:45";  try {  DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");  LocalDate date1 = LocalDate.parse(dateString1, formatter1);  System.out.println("解析的日期1: " + date1);  DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("dd/MM/yyyy");  LocalDate date2 = LocalDate.parse(dateString2, formatter2);  System.out.println("解析的日期2: " + date2);  // 使用 DateTimeFormatter 解析包含星期几的日期字符串  DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy", Locale.ENGLISH);  LocalDate date3 = LocalDate.parse(dateString3, formatter3);  System.out.println("解析的日期3: " + date3);  DateTimeFormatter formatter4 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");  LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter4);  System.out.println("解析的日期时间: " + dateTime);  } catch (DateTimeParseException e) {  System.err.println("日期时间解析错误: " + e.getMessage());  }  }  
}

运行结果如下: 

5、 Calendar类:

package apitest.com;
import java.util.Calendar;  
import java.util.GregorianCalendar;  
public class CalendarExample {  public static void main(String[] args) {  // 获取默认时区和语言环境的Calendar实例  Calendar calendar = Calendar.getInstance();  // 显示当前日期和时间  System.out.println("当前日期和时间: " + calendar.getTime());  // 获取并打印年份、月份(注意月份是从0开始的,即0代表1月)、日期  int year = calendar.get(Calendar.YEAR);  int month = calendar.get(Calendar.MONTH) + 1; // 月份加1,以便按常规方式显示  int day = calendar.get(Calendar.DAY_OF_MONTH);  System.out.println("年: " + year + ", 月: " + month + ", 日: " + day);  // 设置日期为2023年10月1日  calendar.set(Calendar.YEAR, 2023);  calendar.set(Calendar.MONTH, Calendar.OCTOBER); // 直接使用Calendar的常量  calendar.set(Calendar.DAY_OF_MONTH, 1);  System.out.println("设置后的日期: " + calendar.getTime());  // 给日期加上10天  calendar.add(Calendar.DAY_OF_MONTH, 10);  System.out.println("加10天后的日期: " + calendar.getTime());  // 使用GregorianCalendar创建特定日期  GregorianCalendar gregorianCalendar = new GregorianCalendar(2022, Calendar.DECEMBER, 25);  System.out.println("特定的日期: " + gregorianCalendar.getTime());  }  
}

运行结果如下:

相关文章:

花几千上万学习Java,真没必要!(二十九)

1、基本数据类型包装类&#xff1a; 测试代码1&#xff1a; package apitest.com; //使用Integer类的不同方法处理整数。 //将字符串转换为整数&#xff08;parseInt&#xff09;和Integer对象&#xff08;valueOf&#xff09;&#xff0c; //将整数转换回字符串&#xff08;…...

C#如何引用dll动态链接库文件的注释

1、dll动态库文件项目生成属性中要勾选“XML文档文件” 注意&#xff1a;XML文件的名字切勿修改。 2、添加引用时XML文件要与DLL文件在同一个目录下。 3、如果要是添加引用的时候XML不在相同目录下&#xff0c;之后又将XML文件复制到相同的目录下&#xff0c;需要删除引用&am…...

WordPress原创插件:自定义文章标题颜色

插件设置截图 文章编辑时&#xff0c;右边会出现一个标题颜色设置&#xff0c;可以设置为任何颜色 更新记录&#xff1a;从输入颜色css代码&#xff0c;改为颜色选择器&#xff0c;更方便&#xff01; 插件免费下载 https://download.csdn.net/download/huayula/89585192…...

Unity分享:继承自MonoBehaviour的脚步不要对引用类型的字段在声明时就初始化

如果某些字段在每个构造函数中都要进行初始化&#xff0c;很多人都喜欢在字段声明时就进行初始化&#xff0c;对于一个非继承自MonoBehaviour的脚步&#xff0c;这样做是没有问题的&#xff0c;然而继承自MonoBehaviour后就会造成内存的浪费&#xff0c;为什么呢&#xff1f;因…...

.NET Core中如何集成RabbitMQ

在.NET Core中集成RabbitMQ主要涉及到几个步骤&#xff0c;包括安装RabbitMQ的NuGet包、建立连接、定义队列、发送和接收消息等。下面是一个简单的指南来展示如何在.NET Core应用程序中集成RabbitMQ。 目录 1. 安装RabbitMQ.Client NuGet包 2. 建立连接 3. 定义队列 4. 发…...

嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议数据可视化:智能物流管理系统设计思路流程(附代码示例)

目录 项目概述 系统设计 硬件设计 软件设计 系统架构图 代码实现 1. STM32微控制器与传感器代码 代码讲解 2. MQTT Broker设置 3. 数据接收与处理 代码讲解 4. 数据存储与分析 5. 数据分析与可视化 代码讲解 6. 数据可视化 项目总结 项目概述 随着电子商务的快…...

.net core docker部署教程和细节问题

在.NET Core中实现Docker一键部署&#xff0c;通常涉及以下几个步骤&#xff1a;编写Dockerfile以定义镜像构建过程、构建Docker镜像、运行Docker容器&#xff0c;以及&#xff08;可选地&#xff09;使用自动化工具如Docker Compose或CI/CD工具进行一键部署。以下是一个详细的…...

php数据库链接

Php超全局变量 GET 和 POST 都创建一个数组&#xff08;例如 array&#xff08; key1 > value1&#xff0c; key2 > value2&#xff0c; key3 > value3&#xff0c; ...&#xff09;&#xff09;。此数组包含键/值对&#xff0c;其中 键是表单控件的名称&#xff0c;…...

python+vue3+onlyoffice在线文档系统实战20240726笔记,左侧菜单实现和最近文档基本实现

解决右侧高度过高的问题 解决方案&#xff1a;去掉右侧顶部和底部。 实现左侧菜单 最近文档&#xff0c;纯粹文档 我的文档&#xff0c;既包括文件夹也包括文件 共享文档&#xff0c;别人分享给我的 基本实现代码&#xff1a; 渲染效果&#xff1a; 简单优化 设置默认菜…...

vue中的nexttrick

Vue.js 是一个用于构建用户界面的渐进式框架&#xff0c;它允许开发者通过声明式的数据绑定来构建网页应用。在 Vue 中&#xff0c;nextTick 是一个非常重要的 API&#xff0c;它用于延迟回调的执行&#xff0c;直到下次 DOM 更新循环之后。 为什么使用 nextTick&#xff1f; …...

【BUG】已解决:ModuleNotFoundError: No module named ‘requests‘

ModuleNotFoundError: No module named ‘requests‘ 目录 ModuleNotFoundError: No module named ‘requests‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&a…...

深入理解JS中的发布订阅模式和观察者模式

发布/订阅模式(Publish/Subscribe)和观察者模式(Observer Pattern)在概念上非常相似,都是用于实现对象之间的松耦合通信。尽管它们在实现细节和使用场景上有所不同,但核心思想是相通的。 观察者模式 直接通信:在观察者模式中,观察者(Observer)直接订阅主题(Subject…...

网站IPv6支持率怎么检测?

在当今数字化的时代&#xff0c;IPv6的推广和应用已经成为网络发展的重要趋势。IPv6拥有更大的地址空间、更高的安全性和更好的性能&#xff0c;对于满足日益增长的网络需求至关重要。对于网站所有者和管理员来说&#xff0c;了解其网站对IPv6的支持率是评估网站性能和兼容性的…...

react中简单的配置路由

1.安装react-router-dom npm install react-router-dom 2.新建文件 src下新建page文件夹&#xff0c;该文件夹下新建login和index文件夹用于存放登录页面和首页&#xff0c;再在对应文件夹下分别新建入口文件index.js&#xff1b; src下新建router文件用于存放路由配置文件…...

RocketMQ消息短暂而又精彩的一生(荣耀典藏版)

目录 前言 一、核心概念 二、消息诞生与发送 2.1.路由表 2.2.队列的选择 2.3.其它特殊情况处理 2.3.1.发送异常处理 2.3.2.消息过大的处理 三、消息存储 3.1.如何保证高性能读写 3.1.1.传统IO读写方式 3.2零拷贝 3.2.1.mmap() 3.2.2sendfile() 3.2.3.CommitLog …...

Linux中的文件操作

linux中exec*为加载器&#xff0c;可以将程序加载到内存。 main()函数也是函数&#xff0c;也要被调用&#xff0c;也要被传参 故在一个程序中exec*系列的函数先被执行 程序替换中execve是系统调用&#xff0c;其他的都是封装。 进程程序替换 1.创建子进程的目的&#xff1…...

[排序]hoare快速排序

今天我们继续来讲排序部分&#xff0c;顾名思义&#xff0c;快速排序是一种特别高效的排序方法&#xff0c;在C语言中qsort函数&#xff0c;底层便是用快排所实现的&#xff0c;快排适用于各个项目中&#xff0c;特别的实用&#xff0c;下面我们就由浅入深的全面刨析快速排序。…...

freertos的学习cubemx版

HAL 库的freertos 1 实时 2 任务->线程 3 移植 CMSIS_V2 V1版本 NVIC配置全部是抢占优先级 第四组 抢占级别有 0-15 编码规则&#xff0c; 变量名 &#xff1a;类型前缀&#xff0c; c - char S - int16_t L - int32_t U - unsigned Uc - uint8_t Us - uint…...

PyQt 信号与槽功能

PyQt 信号与槽功能 基本概念&#xff1a;在 PyQt 中&#xff0c;信号&#xff08;Signal&#xff09;与槽&#xff08;Slot&#xff09;是一种用于对象之间通信的机制。信号可以由一个对象发出&#xff0c;而槽是用于接收信号并执行相应操作的函数。 信号 信号是在 PyQt 的类…...

navicat premium安装和破解

https://blog.csdn.net/qq1031893936/article/details/90264688 提示信息 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...

深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”

深入浅出JavaScript中的ArrayBuffer&#xff1a;二进制数据的“瑞士军刀” 在JavaScript中&#xff0c;我们经常需要处理文本、数组、对象等数据类型。但当我们需要处理文件上传、图像处理、网络通信等场景时&#xff0c;单纯依赖字符串或数组就显得力不从心了。这时&#xff…...

稻米分类和病害检测数据集(猫脸码客第237期)

稻米分类图像数据集&#xff1a;驱动农业智能化发展的核心资源 引言 在全球农业体系中&#xff0c;稻米作为最关键的粮食作物之一&#xff0c;其品种多样性为人类饮食提供了丰富选择。然而&#xff0c;传统稻米分类方法高度依赖人工经验&#xff0c;存在效率低、主观性强等缺…...

跨域请求解决方案全解析

跨域请求可以通过多种技术方案实现&#xff0c;核心是绕过浏览器的同源策略限制。以下是主流解决方案及具体实现方式&#xff1a; 一、CORS&#xff08;跨域资源共享&#xff09; 最常用的标准化方案&#xff0c;通过服务器设置HTTP响应头实现&#xff1a; Access-Control-Al…...