分享好友 行情首页 行情分类 切换频道
Java常用类的API
2024-12-24 11:23  浏览:72
 
 

Java常用类的API

 

        这个方法用于数组之间的元素拷贝。既支持两个不同数组之间的元素拷贝,也支持同一个数组内部的元素拷贝。

        当是同一个数组内部的拷贝时

srcPos(原数组下标) > destPos(目标数组下标:代表元素左移,通常用于删除元素

srcPos(原数组下标) < destPos(目标数组下标:代表元素右移,通常用于插入元素

因为arraycopy这个方法是JDK1.0就有的,当时还没有Arrays工具类。Arrays工具类是后来

 
 
 

(1)定义学生类Student,包含属性:学号id,姓名name,成绩score

(2)定义矩形类Rectangle,包含属性:长length,宽width

(3)定义商品类Goods,包含属性:编号id,名称name,价格price

(4)分别定义

* 学生对象数组,按照id升序排列
* 矩形对象数组,按照面积降序排列
* 商品对象数组,按照价格升序排列

        Java官方提供了一个自然比较器接口:java.lang.Comparable接口,这个接口包含一个必须重写的抽象:int compareTo(Object obj),当某个类的对象需要比较大小或排序时,这个类就实现这个接口,重写这个抽象方法,在抽象方法中说明按照这个类的什么值进行比较大小或排序。

结论:如果要给对象数组排序,让对象的类实现Comparable接口,重写int compareTo(Object obj)方法即可,然后调用Arrays.sort方法排序。

 
 

        当要比较大小或要排序的对象的类已经实现了Comparable接口,也重写了int compareTo(Object obj)方法,仍然不能满足新的比较大小或排序的需求,就要重新找另一个接口,java.util.Comparator,称为定制比较器接口,或者备胎,它也有一个抽象方法:int compare(Object o1, Object o2).这个接口,需要我们单独编写类来实现它。

        如果某个类的对象要比较大小,或排序

首先,考虑这个对象的类本身实现Comparable接口,重写int compareTo(Object obj)方法

其次,如果有更多的比较大小的规则要求,那么就要单独编写类,实现Comparator接口,重写int compare(Object o1, Object o2)

无论哪个,都可以使用Arrays.sort方法进行排序

Arrays.sort(数组) 说明依赖于 Comparable接口的 compareTo方法

Arrays.sort(数组, Comparator接口的实现类对象)说明依赖于 Comparator接口的compare方法

 
 
 

1、String是final修饰的类,没有子类

2、String类的对象本身是不可变,我们称为常量对象

包装类、第3代的日期时间类、String类等的对象也是不可变的。

String类的对象的值如果发生修改,会返回新对象。

 

String类的对象底层是如何存储这一组字符的

* JDK9之前:String类的对象底层是用char[]来存储一组字符的
* JDK9(含)之后:String类的对象底层是用byte[]来存储一组字符的

*因为程序中大多数字符串是不包含中文等字符,只有英文、数字0-9等第字符组成,二这些字符的编码在0-127之间,用byte[]数组存储可以节约一半的空间。

String类的哪些设计,保证了字符串对象不可变

* 无论底层是char[]还是byte[],它们前面都有final修饰,意味着value的值不能修改。这里限制了value不能指向新数组,那么意味着value不能扩容,缩容等操作。
* value前面有private修饰,意味着在String的外面无法直接访问value数组,如果没有get/set的话,只能在String类的内部访问或操作value数组。所以在String的外面,我们无法直接修改value的元素值。
* 在String的所有方法中,凡是涉及到修改字符串的内容的方法,都会返回新对象。

字符串对象被设计为不可变,有什么好处

可以共享字符串常量对象。

所有字符串对象都会被共享吗

* 直接双引号引起来的字符串常量对象
* 调用intern()的结果得到字符串是可以共享的
* 两个""直接引起来的字符串对象的+拼接结果也是可以被共享

 
 

3.2.1 系列1

 

3.2.2 系列2

 

GBK 只支持中文字符和ASCii码范围内的字符

UTF-8 支持全世界所有国家的常见字符和ASCii码范围内的字符,文件,网络,数据库都支持

UTF-16 JVM内部使用

3.2.3 系列3

 

3.2.4 系列4

支持正则的方法

* matches:判断字符串是否满足xx规则
* split:对字符串进行拆分
* replaceAll:替换满足正则的所有字符
* replaceFirst:替换满足正则的第一个字符

正则表达式:是文本的规则的定义。

    以上就是本篇文章【Java常用类的API】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/4193.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
单反 手机(单反手机是什么意思)
  单反手机:摄影的新纪元  随着科技的飞速发展,手机的功能越来越强大,其中摄影功能尤为突出。如今,我们迎来了一个新的时
酷派手机图片(酷派手机壁纸)
  酷派手机图片:展现时尚与科技的完美结合  在当今智能手机市场,酷派手机以其独特的风格和卓越的性能赢得了广大消费者的喜
手机qq的文件在哪个文件夹(手机qq的文件在哪儿)
  《手机QQ的文件在哪个文件夹》  随着科技的进步,手机已成为我们日常生活中不可或缺的一部分。手机QQ作为我们常用的社交软
12306修改手机号(12306修改手机号收不到验证码)
  关于《12306修改手机号》的文章  在当今数字化时代,手机已成为我们生活中不可或缺的一部分。对于经常乘坐火车出行的人来
手机的介绍(手机的介绍资料)
  手机的介绍  随着科技的飞速发展,手机已经成为了我们日常生活中不可或缺的一部分。它的影响力已经渗透到我们生活的各个领
2000以内的手机(2000以内的手机哪款性价比高2024年)
  关于《2000元以内的手机》的文章  随着科技的飞速发展,手机已经成为我们日常生活中不可或缺的一部分。在预算仅为2000元的
手机两个微信(手机两个微信怎么取消默认授权设置)
  手机两个微信的使用与探讨  随着科技的快速发展,微信已经成为我们日常生活中不可或缺的一部分。很多人在手机中安装两个微
手机怎么隐藏游戏(手机怎么隐藏游戏不被发现)
  手机怎么隐藏游戏  随着智能手机的普及,很多人都会在手机上玩游戏。但有时我们并不想被别人知道我们在玩游戏,或者我们需
华为定制版手机(华为定制版手机有哪些)
  华为定制版手机:科技与个性的完美结合  随着科技的飞速发展,智能手机已经成为我们日常生活中不可或缺的一部分。在众多手
手机密码忘记(手机密码忘记了怎么办才能解开oppo)
  关于手机密码忘记的问题  随着智能手机的普及,我们的生活已经离不开手机。然而,有时候我们会遇到一些小问题,其中之一就
本企业新闻
推荐企业新闻
发表评论
0评