Java日常的String、Date、计算问题

news2024/9/21 20:39:41

一、String相关类

三者执行速度:StringBuilder > StringBuffer > String

1.1、String

每次对 String 类型改变的时,都会生成一个新的 String 对象,指针指向新的 String 对象。
适用于字符串不常变的,少量的数据场景中,例如常量的声明、少量的变量运算...等。

1.2、StringBuilder

对象可以直接进行修改,不会生成新的对象。
适用于单线程频繁进行字符串运算(如拼接、替换、和删除等),如SQL语句的拼装、JSON封装...等。

1.3、StringBuffer

每次都对对象本身进行操作,不是生成新的对象。对方法加了同步锁(synchronized)或对调用的方法加了同步锁,线程安全。
适用于多线程频繁进行字符串运算(如拼接、替换、和删除等),如XML解析、HTTP参数解析和封装...等。

二、Java8新增的日期类

2.1、Clock

用于获取指定时区的当前日期、时间。该类可以取代System类的currentTimeMillis()方法。

//获取当前Clock
Clock clock = Clock.systemUTC();
//获取clock对应的毫秒数
//等于System.currentTimeMillis()
System.out.println(clock.millis());
System.out.println(System.currentTimeMillis());

2.2、Duration

持续时间

Duration d = Duration.ofSeconds(600); 
System.out.println("600秒="+d.toMinutes()+"分"); 
System.out.println("600秒="+d.toHours()+"时"); 
System.out.println("600秒="+d.toDays()+"天"); 

2.3、Instant:

一个具体的时刻,可以精确到纳秒。
1)now():获取当前时刻。
2)now(Clock clock):获取clock对应的时刻。
3)minusXxx():在当前时刻基础上减去一段时间。
4)plusXxx():在当前时刻基础上加上一段时间。

//获取当前时间
Instant instant = Instant.now();
System.out.println(instant);
//instant增加600秒
Instant instant2 = instant.plusSeconds(600);

2.4、LocalDate

代表不带时区的日期,如:2019-02-24。
1)now():获取当前日期。
2)now(Clock clock):获取clock对应的日期。
3)minusXxx():在当前年份基础上减去几年、几月、几周或几日等。
4)plusXxx():在当前年份基础上加上几年、几月、几周或几日等。

2.5、LocalTime

代表不带时区的时间,如:10:20:09。
1)now():获取当前时间。
2)now(Clock clock):获取clock对应的时间。
3)minusXxx():在当前年份基础上减去几小时、几分、几秒等。
4)plusXxx():在当前年份基础上加上几小时、几分、几秒等。

2.6、LocalDateTime

代表不带时区的日期、时间,如:2019-02-24T10:20:09。
1)now():获取当前日期、时间。
2)now(Clock clock):获取clock对应的日期、时间。
3)minusXxx():在当前年份基础上减去几年、几月、几周或几日、几小时、几分、几秒等。
4)plusXxx():在当前年份基础上加上几年、几月、几周或几日、几小时、几分、几秒等。

2.7、MonthDay

仅代表月日,如:--09-20。
1)now():获取当前月日。
2)now(Clock clock):获取clock对应的月日。

2.8、Year

仅代表年,如:2019。
1)now():获取当前年份。
2)now(Clock clock):获取clock对应的年份。
3)minusXxx():在当前年份基础上减去几年。
4)plusXxx():在当前年份基础上加上几年。

2.9、YearMonth

仅代表年月,如:2019-02。
1)now():获取当前年月。
2)now(Clock clock):获取clock对应的年月。
3)minusXxx():在当前年份基础上减去几年、几月。
4)plusXxx():在当前年份基础上加上几年、几月。

ZonedDateTime:有时区的日期时间。
ZonedId:代表一个时区。
DayOfWeek:枚举类,定义了周一到周日的枚举值。
Month:、枚举类,定义了一月到十二月的枚举值。

三、计算问题和引用

3.1、BigDecimal 

金钱应采用java.math.BigDecimal存储;
BigDecimal入库时,选decimal类型,注意默写成0.00,不要用默认的NULL。
使用BigDecimal(String val) 创建对象,如BigDecimal numA=new BigDecimal("0.6");,
不要用参数为float、double 创建对象,如BigDecimal numA=new BigDecimal(0.6);
用参数为float、double 创建对象会丢失精度。

3.2、SoftReference 软引用 

static SoftReference<List<String>> cacheList = new SoftReference<List<String>>(Arrays.asList("AAA","BBB","CCC"));

public static void main(String[] args) {
    List<String> myList = cacheList.get();
    for (String str : myList) {
        System.out.println(str);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/902184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题 143重排链表

题目 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交…

【Linux】-进程概念之进程地址空间的万字详解(解决一个变量怎么保存不同数据的问题)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

Java程序设计——编写计算器

设计主类 Calculator import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Objects;import javax.swing.*;//Calculator类&#xff0c;继承JFrame框架&#xff0c;实现事件监听器接口 public class Calculator e…

如何快速制作一个房地产电子传单?

在如今高度数字化的时代&#xff0c;电子传单成为了宣传推广的一种重要方式。下面将介绍如何利用乔拓云平台快速制作一个房地产电子传单。 第一步&#xff0c;找一个可靠的第三方制作平台/工具&#xff0c;比如乔拓云平台。乔拓云平台是一个功能强大、简单易用的电子传单制作工…

SpringBoot+微信小程序奶茶在线点单小程序系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBoot微信小程序框架开发的奶茶在线点单小程序系统。首先&#xff0c;这是一个前后端分离的项目&#xff…

2023年,IT人都在追寻什么样的科技和技术?

摘要&#xff1a; 随着科技的不断发展&#xff0c;IT领域也在以惊人的速度发展。每年都会有新的技术和趋势出现&#xff0c;成为IT人士关注和追逐的对象。那么&#xff0c;在2023年&#xff0c;IT人都在追寻什么样的科技和技术呢&#xff1f;本文将探索2023年IT 人士最热衷的科…

SpringBoot---内置Tomcat 配置和切换

&#x1f600;前言 本篇博文是关于内置Tomcat 配置和切换&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x…

4 STM32标准库函数 之 FLASH存储器(FLASH)所有函数的介绍及使用

3 STM32标准库函数 之 FLASH存储器所有函数的介绍及使用 1. 图片有格式2 文字无格式二、FLASH 库函数固件库函数预览2.1 函数FLASH_SetLatency2.2 函数FLASH_HalfCycleAccessCmd2.3 函数FLASH_PrefetchBufferCmd2.4 函数FLASH_Unlock2.5 函数FLASH_Lock2.6 函数FLASH_ErasePage…

LeetCode 2236. 判断根结点是否等于子结点之和

【LetMeFly】2236.判断根结点是否等于子结点之和 力扣题目链接&#xff1a;https://leetcode.cn/problems/root-equals-sum-of-children/ 给你一个 二叉树 的根结点 root&#xff0c;该二叉树由恰好 3 个结点组成&#xff1a;根结点、左子结点和右子结点。 如果根结点值等于…

【数据分析入门】Matplotlib

目录 零、图形解析与工作流0.1 图形解析0.2 工作流 一、准备数据1.1 一维数据1.2 二维数据或图片 二、绘制图形2.1 画布2.2 坐标轴 三、绘图例程3.1 一维数据3.2 向量场3.3 数据分布3.4 二维数据或图片 四、自定义图形4.1 颜色、色条与色彩表4.2 标记4.3 线型4.4 文本与标注4.5…

Zoho CRM有哪些特点?

企业想要选择一款CRM系统&#xff0c;只看CRM公司排名或CRM厂商排名可以吗&#xff1f;其实&#xff0c;选型时的误区就是盲目选择大品牌&#xff0c;反而忽略了CRM和业务的适配度&#xff0c;毕竟适合的才是最好的。。 Zoho CRM是一款国际知名的SaaS云端CRM系统&#xff0c;面…

阿里云访问端口被限制解决方法记录

阿里云服务器&#xff0c;80端口可以访问&#xff0c;但是加入了安全组端口8080 通过公网访问改端口策略&#xff0c;发现不能被访问 问题出在防火墙&#xff0c;需要重置一下 解决方法&#xff1a; 在运行的服务器上执行如下命令&#xff1a; # iptables -A INPUT -j ACCEP…

23年9月到24年3月苹果产品发布

2023年到2024年的苹果产品发布 9月 基本就是手机&#xff0c;4款&#xff1a;15、15plus、15pro、15pro max 手表和ipodmini 10月就是新的M3芯片&#xff0c;至于M pro芯片会放在24年的3月份。 其他的就没什么新意了

课程项目设计--项目设计--宿舍管理系统--vue+springboot完成项目--项目从零开始

写在前面&#xff1a; 本文是从项目设计到完成开始写的&#xff0c;本来这个项目基础功能是做完了的&#xff0c;但是之前时间紧张想从头做起了。之前一周写前端后端累死了. 设计是关键&#xff0c;这一篇主讲设计。可能后面会有修改&#xff0c;本人实力有限&#xff0c;如有…

【微信小程序】下拉刷新功能实现

微信小程序开发系列 文章目录 前言一、onPullDownRefresh函数二、实现1.开启下拉刷新2.监听下拉事件 前言 在开发微信小程序中经常会需要下拉页面进行更新要页面数据的功能&#xff0c;微信小程序提供了onPullDownRefresh函数。该函数作用是监听用户下拉动作。 一、onPullDown…

【多线程】 —— 线程池

文章目录 1、什么是线程池&#xff0c;线程池有哪些&#xff08;创建&#xff09;(1) newCachedThreadPool(2) newFixedThreadPool(3) newSingleThreadExecutor(4) newScheduleThreadPool 2、为什么要使用线程池&#xff1f;3、线程池底层工作原理4、ThreadPoolExecutor 对象有…

【剖析STL】vector

vector的介绍及使用 1.1 vector的介绍 cplusplus.com/reference/vector/vector/ vector是表示可变大小数组的序列容器。就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问&#xff0c;和数组一样高效。但是…

激活函数总结(十四):激活函数补充(Gaussian 、GCU、ASU)

激活函数总结&#xff08;十四&#xff09;&#xff1a;激活函数补充 1 引言2 激活函数2.1 Gaussian 激活函数2.2 Growing Cosine Unit (GCU)激活函数2.3 Amplifying Sine Unit (ASU)激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、R…

AI绘画之三_StableDiffusion_界面操作

1 介绍 首先&#xff0c;介绍界面中的重要元素&#xff0c;如图所示&#xff1a; 基础模型&#xff1a;基础模型是最重要的设置项文生图&#xff1a;选项卡列出了各大功能&#xff0c;文生图指通过文字生成图片图生图&#xff1a;图生图指通过图片和文字生成图片修复照片&am…