【java常用API】字符串类:String、StringBuffer、StringBuilder,时间类:DATE、Calendar,Java比较器:Comparable,System,Math等

一、字符串类

1.String类

String特性

  • java中所有字符串面值(“abc”)都作为此类的实例对象。
  • String是一个final类,代表不可变的字符序列。
  • 字符串是常量,用双引号引起来表示。它的值在创建之后不能更改。
  • String对象的字符内容是存储在一个字符数组value[]中。
    在这里插入图片描述
public final class String
     implements java.io.Serializable,Comparable<String>,CharSequence{
      private final char value[];
      private int hash;
    String str = "hello";
    //本质上this.value = new char[0];
    String s1 = new String();
    
    //this.value = original.value;
    String s2 = new String(String original);

    //this.value = Arrays.copyOf(value,value.length);
    String s3 = new String(char[] a);

    String s4 = new String(char[] a,int startIndex,int count);

结论

  • 常量与常量的拼接结果在常量池。且常量池中不会存在相同内容的常量
  • 只要其中有一个是常量,结果就在堆中
  • 如果拼接的结果调用intern()方法,返回值就在常量池中

方法

  • trim() :返回字符串的副本,忽略前导空白和尾部空白
  • equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写
  • concat(String str):将指定字符串连接到此字符串的结尾,“+”
  • substring(int beginIndex,int endIndex):返回新字符串,从beginIndex开始截取到endIndex(不包含)的一个子字符串
  • endswith、startsWith:是否以指定str开始或结束
  • startsWith(String prefix,int toffset):测试此字符串从指定索引开始的子字符串是否已指定前缀开始
  • indexOf(String str,int fromIndex):返回str从指定索引开始第一次出现的索引位置
  • replace(oldChar,newChar):返回新的字符串,是用newChar替换所有oldChar
  • String[] split(regex,limit):根据正则表达式来拆分字符串,最多不超过limit
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

String->基本数据类型转换

  • 字符串->基本、包装类:Xxx.parseXxx(String s)
  • 基本、包装类->String:String.valueOf(xxx n)

字符数组、字符串

  • 字符数组->字符串:String(char[])和String(char[],int offset,int length)
  • 字符串->字符数组:char[] toCharArray(),getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):指定索引范围内字符串存放到数组

字符串与字节数组 类似以上!

2.StringBuffer类

java.lang.StringBuffer

  • 可变的字符序列。对字符串内容进行增删,不会产生新对象。
  • 在这里插入图片描述
  • 方法与String类似
  • 作为参数传递时,方法内部可以改变值

AbstractStringBuilder

StringBuffer
StringBuilder

三个构造器

  • StringBuffer():初始容量为16的字符串缓冲区
  • StringBuffer(int size):构造指定容量的字符串缓冲区
  • StringBuffer(String str):将内容初始化为指定字符串内容

常用方法

  • append:拼接
  • delete(start,end):删除指定位置的内容
  • replace(start,end,str):把指定位置替换为str
  • insert(offset,xxx):在指定位置插入xxx
  • reverse():当前字符序列逆转
  • indexOf、substring、length、charAt、setCharAt

3.StringBuilder类

StringBuilder和StringBuffer类似

String、StringBuild、StringBuffer区别

  • String(jdk1.0):不可变字符序列
  • StringBuffer(jdk1.0):可变字符系列、效率低、线程安全
  • StringBuilder(jdk5.0):可变字符序列、效率高、线程不安全

作为参数传递,方法内部String不会改变值,其他两个会改变值

二、时间类

1.java.lang.System类System类提供的long currentTimeMillis()用来返回当前时间与1970.1.1.0:0:0之间的毫秒差值

UTC、GMT、CST

2.时间类

在这里插入图片描述

3.java.util.Date类

表示特定的瞬间,精确到毫秒
构造器

  • Date():获取本地时间
  • Date(long date)

常用方法

  • getTime():返回自1970.1.1 0:0:0GMT以来此Date对象表示的毫秒数
  • toString():把此Date对象转换为一下String

4.java.text.SimpleDateFormat类

java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。

允许进行格式化:日期->文本、解析:文本->日期

格式化

  • SimpleDateFormat():默认的模式和语言环境创建对象
  • SimpleDateFormat(String pattern):用pattern指定格式创建对象。
  • String format(Date date):方法格式化时间对象date

解析
public Date parse(String source):从给定字符串开始解析文本,来生成一个日期

5.java.util.Calendar(日历)类

Calendar是一个抽象基类,主要用于完成日期字段之间相互操作的功能

获取实例

  • Calendar.getInstance()方法
  • 调用子类GregorianCalendar的构造器

Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。如:YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY、MINUTE、SECOND

  • set、add、Date getTime、setTime

注意

  • 获取月份:一月是0…12月是11,以此类推
  • 获取星期:周日是1…周六是7

6.JDK8中新日期时间API

java8吸收了Joda-Time的精华,新的time中包含:LocalDate、LocalTime、LocalDateTime、ZonedDateTime、Duration的类

新时间日期API

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

Instant:瞬时

三、Java比较器

对象的排序就需要自定义

1.Compareable自然排序

Comparable接口强行对实现它的每个类的对象进行整体排序。这种排序称为类的自然排序

  • 实现Comparable的类必须实现compareTo(Object obj)方法,两个对象即通过compareTo(Object obj)的返回值来比较大小。
  • 如果对象this大于形参obj。则返回正整数,反之。相等则为0。
  • 对于列列表、数组,通过Collections.sort或Arrays.sort进行自然排序。

典型实现
String、Character、BigInteger、BigDecimal、Boolean、Date、Time

2.Compareator定制排序

定制排序java.util.Comparator

  • 没有实现Comparable接口而又不方便修改代码,使用Comparator对象。
  • 使用Comparator对象,重写compare(Object obj1,Object obj2),比较obj1和obj2大小:obj1大于obj2返回正整数,反之。相等返回0
  • 可以将Comparator传递给sort方法(Collections.sort和Arrays.sort)
  • 来控制某些数据结构的顺序或为那些没有自然顺序的对象collection提供排序。

四、System类

system是系统类
java.lang.Sysytem

  • 该类构造器是private,所以其方法属性都为static。
  • 成员变量:in、out、err:输入、输出、标准错误输出流
  • 成员方法:native long currentTimeMillis():返回当前计算机时间。自1970年1月1日所差毫秒数
  • void exit(int status):退出程序,status为0为正常退出
  • void gc():请求系统进行垃圾回收。是否回收不确定
  • String getProperty(String key):获取系统属性名为key的值,key:
java.version:java运行环境版本
java.home:java安装目录
os.name:操作系统名
os.version:操作系统版本
user.name:用户账户名称
user.home:用户主目录
user.dir:用户当前工作目录

五、Math类

Java.lang.Math提供静态方法用于科学计算;返回一般是double

  • abs绝对值
  • acos,asin,atan,cos,sin,tan三角函数
  • sqrt平方根
  • pow(double a,double b)a的b次幂
  • log自然对数
  • exp e为底数
  • max(double a,double b)
  • min(double a,double b)
  • random()返回0.0到1.0随机数
  • long round(double a)double数据a转换为long型(四舍五入)
  • toDegrees(double angrad)弧度->角度
  • toRadians(double angdeg)角度->弧度

六、BigInteger与BigDecimal

BigInteger与BigDecimal

1.BIgInteger

java.math包下的BigInteger可以表示不可变的任意精度的整数
Long是2 的63次方-1

  • 保留所有基本整数操作的对应物,提供math的所有相关方法,提供:模运算,GCD计算、质数测试、素数生成、位操作。

构造器
BigInteger(String val):根据字符串构建BigInteger对象
在这里插入图片描述

2.BigDecimal

商业计算中,要求数字精度高,故用java.math.BigDecimal类

  • BigDecimal类支持不可变的、任意精度的有符号十进制定点数

构造器

  • public BigDecimal(double val)
  • public BigDecimal(String val)

常用方法

  • add
  • subtract
  • multiply
  • divide

知识图谱

在这里插入图片描述
在线查看:java常用API
在这里插入图片描述

	私信获取知识图谱!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Itfuture03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值