文章目录

  • 字符串相关的类
    • String的特性
    • String对象的创建
    • 字符串相关的类
    • String类与其他结构之间的转换
    • StringBuffer,StringBuilder
    • StringBuffer类的常用方法
  • JDK8之前日期时间API
    • java.lang.System类
    • java.util.Date类
    • java.text.SimpleDateFormat类
    • java.util.Calendar类
  • JDK8中新日期时间API
    • 新时间日期API
    • LocalDate、LocalTime、LocalDateTime
    • 常用方法
    • Instant
    • 格式化与解析日期或时间
  • Java比较器
    • 自然排序:java.lang.Comparable

字符串相关的类

String的特性

  1. String:字符串,使用一对""引用起来表示

  2. String声明为final的,不可被继承

  3. String实现了Serializable接口:表示字符串是支持序列化的
    实现了Comparable接口:表示String可以比较大小

  4. String内部定义了final char[] value用于存储字符串数据

  5. String代表不可变的字符序列.简称:不可变性.

     体现:1.当对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值2.当对现有的字符串进行连续操作时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值3.当调用String的replace()方法修改指定字符或字符串时,也需要重新指定内存区域赋值
    
  6. 通过字面量的方式给一个字符串赋值,此时的字符串值声明在字符串常量池中.

  7. 字符串常量池是不会存储相同内容的字符串的

String对象的创建

  1. 方式一:通过字面量定义的方式:此时的s1和s2的数据javaEE声明方法区中的字符串常量池中
String s1="javaEE";
String s2="javaEE";
  1. 方式二:通过new+构造器的方式:
String s3=new String("javaEE");
String s4=new String("javaEE");

字符串相关的类

  1. int length():返回字符串的长度

  2. char charAt(int index): 返回某索引处的字符

  3. boolean isEmpty():判断是否是空字符串

  4. String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写

  5. String toUpperCase():使用默认语言环境,将 String 中的所有字符转换为大写

  6. String trim():返回字符串的副本,忽略前导空白和尾部空白

  7. boolean equals(Object obj):比较字符串的内容是否相同

  8. boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写

  9. String concat(String str):将指定字符串连接到此字符串的结尾。 等价于用“+”

  10. int compareTo(String anotherString):比较两个字符串的大小

  11. String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。

  12. String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串

  13. boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束

  14. boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始

  15. boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true

  16. int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引

  17. int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引

String类与其他结构之间的转换

  1. String 与基本数据类型,包装类之间的转换.
@Testpublic void test1(){String str1="123";int num=Integer.parseInt(str1);String str2=String.valueOf(num);//123System.out.println(str2);String str3=num+"";System.out.println(str1==str3);}
  1. String 与char[]之间的转换
@Testpublic void test2(){String str1="abc123";char[] charArray=str1.toCharArray();for(int i=0;i<charArray.length;i++){System.out.println(charArray[i]);}char[] arr=new char[]{'h','e','l','l','o'};String str2=new String(arr);System.out.println(str2);}
  1. String 与byte[]之间的转换
@Testpublic void test3() throws UnsupportedEncodingException {String str1="abc123中国";byte[] bytes=str1.getBytes();//使用默认的字符集,进行转换System.out.println(Arrays.toString(bytes));byte[] gbks=str1.getBytes("gbk");System.out.println(Arrays.toString(gbks));String str2=new String(bytes);//使用默认的字符集进行解码System.out.println(str2);String str3=new String(gbks);System.out.println(str3);//出现乱码.原因:编码集和解码集不一致String str4=new String(gbks,"gbk");System.out.println(str4);}

StringBuffer,StringBuilder

  1. java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符串内容进行增删,此时不会产生新的对象。

  2. 很多方法与String相同。

  3. 作为参数传递时,方法内部可以改变值。

  4. StringBuffer类不同于String,其对象必须使用构造器生成。有三个构造器

    • StringBuffer():初始容量为16的字符串缓冲区
    • StringBuffer(int size):构造指定容量的字符串缓冲区
    • StringBuffer(String str):将内容初始化为指定字符串内容
  5. String,StringBuffer,StringBuilder三者异同

    String:不可变的字符序列:底层使用char[]存储
    StringBuffer:可变的字符序列:线程安全的,效率低:底层使用char[]存储
    StringBuilder:可变的字符序列:JDK5.0新增的,线程不安全的,效率高:底层使用char[]存储

StringBuffer类的常用方法

  1. StringBuffer append(xxx):提供了很多的append()方法,用于进行字符串拼接
  2. StringBuffer delete(int start,int end):删除指定位置的内容
  3. StringBuffer replace(int start, int end, Stringstr):把[start,end)位置替换为str
  4. StringBuffer insert(int offset, xxx):在指定位置插入xxx
  5. StringBuffer reverse() :把当前字符序列逆转
  6. public int indexOf(String str)
  7. public String substring(int start,intend):返回一个从start开始到end索引结束的左闭右开区间的子字符串
  8. public int length()
  9. public char charAt(int n )
  10. public void setCharAt(int n ,char ch)

总结:

增:append(xxx)
删:delete(int start,int end)
改:setCharAt(int n ,char ch) /replace(int start, int end, String str)
查:charAt(int n )
插:insert(int offset, xxx):在指定位置插入xxx
长度:length()
遍历:for +charAT()

JDK8之前日期时间API

java.lang.System类

  • System类提供的public staticlongcurrentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
  • 此方法适于计算时间差。
  • 计算世界时间的主要标准有:
    UTC(Coordinated Universal Time)
    GMT(Greenwich Mean Time)
    CST(Central Standard Time)

java.util.Date类

  1. 表示特定的瞬间,精确到毫秒
  2. 构造器
    • Date():使用无参构造器创建的对象可以获取本地当前时间。
    • Date(long date)
  3. 常用方法
    • getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
    • toString():把此 Date 对象转换为以下形式的 String: dow mon ddhh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。

java.text.SimpleDateFormat类

  1. Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
  2. 它允许进行格式化:日期->文本、解析:文本->日期
  3. 格式化:
    • SimpleDateFormat() :默认的模式和语言环境创建对象
    • public SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用
    • public String format(Date date):方法格式化时间对象date
  4. 解析
    • public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。
@Testpublic void test() throws ParseException {//实例化SimpleDateFarmatSimpleDateFormat sdf = new SimpleDateFormat();//实例化:日期--->字符串Date date=new Date();String format=sdf.format(date);System.out.println(format);//解析:格式化的逆过程,字符串--->日期String str="2025/7/16 18:07";sdf.parse(str);Date date1=sdf.parse(str);System.out.println(date1);System.out.println();SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化String format1=sdf.format(date);System.out.println(format1);//解析Date date2=sdf.parse("2025/7/16 18:10");System.out.println(date2);}

java.util.Calendar类

  1. Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。
  2. 获取Calendar实例的方法
    • 使用**Calendar.getInstance()**方法
    • 调用它的子类GregorianCalendar的构造器。
  3. 一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND
    • public void set(int field,int value)
    • public void add(int field,int amount)
    • public final Date getTime()
    • public final void setTime(Date date)

JDK8中新日期时间API

新时间日期API

  1. java.time – 包含值对象的基础包
  2. java.time.chrono – 提供对不同的日历系统的访问
  3. java.time.format – 格式化和解析时间和日期
  4. java.time.temporal – 包括底层框架和扩展特性
  5. java.time.zone – 包含时区支持的类

LocalDate、LocalTime、LocalDateTime

  1. LocalDate、LocalTime、LocalDateTime 类是其中较重要的几个类,它们的实例是不可变的对象
  2. LocalDate代表IOS格式(yyyy-MM-dd)的日期,可以存储 生日、纪念日等日期
  3. LocalTime表示一个时间,而不是日期
  4. LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一

常用方法

  1. noew():获取当前的日期,时间,日期+时间
  2. of():设置指定的年,月,日,时,分,秒,没有偏移量
  3. getXxx():获取相关的属性
  4. withXxx():设置相关的属性
  5. plus:向当前对象添加几天、几周、几个月、几年、几小时
  6. minus:从当前对象减去几月、几周、几天、几年、几小时

Instant

  • Instant:时间线上的一个瞬时点。 这可能被用来记录应用程序中的事件时间戳。

格式化与解析日期或时间

  • java.time.format.DateTimeFormatter 类:该类提供了三种格式化方法
    1. 预定义的标准格式。如:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
    2. 本地化相关的格式。如:ofLocalizedDateTime(FormatStyle.LONG)
    3. 自定义的格式。如:ofPattern(“yyyy-MM-dd hh:mm:ss”)

Java比较器

自然排序:java.lang.Comparable

  1. 像String,包装类等实现类Comparable接口,重写了Comparable()方法给出了比较两个对象大小
  2. 像String,包装类重写了compareTo()方法以后,进行了从小到大的排序
  3. 重写了compareTo()的规则:
    • 如果当前的对象this大于形参对象obj,则返回正整数.
    • 如果当前的对象this小于形参对象obj,则返回负整数.
    • 如果当前的对象this等于形参对象obj,则返回零.
  4. 对于自定义类来说,如果需要排序,我们可以让自定义类实现Comparable接口,重compareTo(obj)方法,在comparableTo(obj)方法中指定如何排序

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python库包】Gurobi-Optimize (求解 MIP) 安装

目录Step1&#xff1a;注册账号Step2&#xff1a;获取Licence另&#xff1a;完整安装 Gurobi软件参考本博客简介Gurobi-Optimizer的安装&#xff08;Python 环境&#xff09;。 Step1&#xff1a;注册账号 官网-Gurobi-Optimizer ⚠️注意&#xff1a; Gurobi 是商业软件&…

【渗透测试】NmapScanHelper 扫描辅助工具

目录NmapScanHelper 扫描辅助工具一、功能特性二、文件说明三、使用方法1. 安装依赖macOSUbuntu/DebianCentOS/RHEL2. 配置网段3. 运行扫描基本用法常用端口扫描示例扫描模式特殊环境模式选择性扫描自定义文件4. 查看结果四、扫描模式说明标准模式特殊环境模式五、支持的 Nmap …

Python爬虫入门到实战(1)-requests库

一.网络爬虫库网络爬虫通俗来讲就是使用代码将HTML网页的内容下载到本地的过程。爬取网页主要是为了获取网之间需要中的关键信息&#xff0c;例如网页中的数据、图片、视频等。urllib库:是Python自带的标准库&#xff0c;无须下载、安装即可直接使用。urllib库中包含大量的爬虫…

深入理解设计模式之代理模式:原理、实现与应用

在软件开发中&#xff0c;我们经常需要控制对某些对象的访问——可能是为了延迟加载、添加额外功能或保护敏感资源。这正是代理模式大显身手的地方。作为结构型设计模式的重要成员&#xff0c;代理模式在众多知名框架和系统中扮演着关键角色。本文将全面剖析代理模式的方方面面…

VSCode - VSCode 快速跳转标签页

VSCode 快速跳转标签页 1、标签页列表快速跳转 通过快捷键 Ctrl Tab 即可快速跳转标签页 # 操作方式先按住 Ctrl 键&#xff0c;再按 Tab 键&#xff0c;此时&#xff0c;即可打开标签页列表&#xff08;保持 Ctrl 键一直按住&#xff09;然后&#xff0c;再按 Tab 键&#xf…

深入理解设计模式:享元模式(Flyweight Pattern)

在软件开发中&#xff0c;我们经常会遇到需要创建大量相似对象的情况。如果每个对象都独立存储所有数据&#xff0c;将会消耗大量内存资源&#xff0c;导致系统性能下降。享元模式&#xff08;Flyweight Pattern&#xff09;正是为解决这一问题而生的经典设计模式。本文将深入探…

网络大提速,RDMA,IB,iWrap

本章第一节介绍的存储设备方面的创新解决了CPU访问存储设备的性能问题。但在实际的业务当中,数据的传输除了在节点内部的CPU与存储设备间外,节点之间也存在数据传输的需求。本节我们就介绍在网络传输方面是如何提速的。 在介绍新的网络技术之前,我们看看传统网络是如何传输…

【C++】红黑树,“红“与“黑”的较量

各位大佬好&#xff0c;我是落羽&#xff01;一个坚持不断学习进步的大学生。 如果您觉得我的文章有所帮助&#xff0c;欢迎多多互三分享交流&#xff0c;一起学习进步&#xff01; 也欢迎关注我的blog主页: 落羽的落羽 一、红黑树的概念与规则 红黑树是一种更加特殊的平衡二…

【愚公系列】《MIoT.VC》001-认识、安装 MIoT.VC 软件

💎【行业认证权威头衔】 ✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域…

git:tag标签远程管理

git tag v1&#xff1a;在当前所在分支创建标签v1git tag -a v2 -m release version&#xff1a;创建一个带有附注的标签git tag -d v2&#xff1a;删除本地标签git tag&#xff1a;查看标签git push origin 标签1 标签2……&#xff1a;把多个标签推送到远程git push origin -…

力扣 hot100 Day49

105. 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 //抄的 class Solution { private:unordered_map<int, i…

jvm-sandbox-repeater 录制和回放

https://github.com/alibaba/jvm-sandbox-repeater/blob/master/docs/user-guide-cn.md 快速录制自己应用 step0 安装sandbox和插件到应用服务器 curl -s https://github.com/alibaba/jvm-sandbox-repeater/releases/download/v1.0.0/install-repeater.sh | sh step1 修改repe…

【C++底层剖析】++a vs a++:到底谁是左值,谁是右值?

在 C 编程中&#xff0c;我们经常使用 a 和 a 来实现自增操作。乍一看它们只是“先加还是后加”的语法糖&#xff0c;但你真的理解它们的底层机制、返回值类型和左值右值属性吗&#xff1f;1. a 和 a 的基础区别表达式名称语义返回值类型左值 / 右值a前置自增先将 a 加 1&#…

【世纪龙科技】汽车故障诊断与排除仿真教学软件让课堂更高效安全

随着汽车产业向智能化、电动化快速转型&#xff0c;职业院校汽修专业的教学模式正面临全新挑战。传统实车实训存在成本高、风险大、场景单一等问题&#xff0c;而行业对人才的要求却越来越高——既需要扎实的理论基础&#xff0c;又必须具备熟练的故障诊断能力。如何在保证安全…

网络基础9:按流负载均衡实验(等价路由)

实验eNS拓扑图&#xff1a;1. 网络拓扑与 IP 配置AR5&#xff1a;GE0/0/0: 192.168.1.1/24&#xff08;连接 AR6&#xff09;GE0/0/1: 192.168.3.1/24&#xff08;连接 AR8&#xff09;Loopback0: 1.1.1.1/32&#xff08;源地址&#xff09;AR6&#xff1a;GE0/0/0: 192.168.1.…

4G模块 A7680发送中文短信到手机

命令说明 基础AT指令 ATi显示产品的标志信息 ATCIMI查询IMSI ATCICCID从SIM卡读取ICCID ATCGSN查询产品序列号 ATCPIN查询卡状态 ATCSQ查询信号强度 ATCGATT查询当前PS域状态 ATCREG查询GPRS注册状态 ATCEREG查询4G注册状态 ATCGPADDR查询PDP地址 ATCMGF选择短信格式 ATCMGS发…

深度学习-线性神经网络

文章目录线性回归基本概念随机梯度下降矢量化加速正态分布和平方损失极大似然估计线性回归实现从0开始**torch.no_grad()的两种用途****为什么需要 l.sum().backward()&#xff1f;**调用现成库softmax回归图像数据集从0开始实现softmax利用框架API实现课程学习自李牧老师B站的…

【王树森推荐系统】推荐系统涨指标的方法04:多样性

涨指标的方法有哪些&#xff1f; 改进召回模型&#xff0c;添加新的召回模型改进粗排和精排模型提升召回&#xff0c;粗排&#xff0c;精排的多样性特殊对待新用户吗&#xff0c;低活用户等特殊人群利用关注&#xff0c;转发&#xff0c;评论这三种交互行为 排序的多样性 精排多…

1. Spring AI概述

一、前言 Spring AI 是由 Spring 团队推出的开源项目&#xff0c;旨在为 Java 开发者提供简洁、一致的 Spring 风格开发体验&#xff0c;用于构建基于生成式人工智能&#xff08;GenAI&#xff09;和大型语言模型&#xff08;LLM&#xff09;的应用程序。它通过标准化抽象层简…

[每日随题10] DP - 重链剖分 - 状压DP

整体概述 难度&#xff1a;1600 →\rightarrow→ 2200 →\rightarrow→ 2600 P6005 [USACO20JAN] Time is Mooney G 标签&#xff1a;DP 前置知识&#xff1a;链式前向星 难度&#xff1a;绿 1600 题目描述&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 样例输…