javaSE第五章常用类——API、基本数据包装类、Object类、String类、Arrays类

API

API(Application Programming Interface)应用程序编程接口
是对java预先定义的类或接口功能和函数功能的说明文档,目的是提供给开发人员进行使用帮助说明

基本数据包装类

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面 向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类
包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作方法。
基本数据封装类
在这里插入图片描述
对于包装类来说,这些类的用途主要包含两种:
作为和基本数据类型对应的类类型存在
包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法

包装类常用属性方法

以下方法以java.lang.Integer为例

Integer.BYTES//所占字节
Integer.SIZE//位数
Integer.max(10,5)//比较最大值
Integer.min(10,5)//比较最小值
Integer.toHexString(220)//16进制
Integer.toOctalString(9)//8进制
Integer.toBinaryString(5)//转为2进制
b.compareTo(b1)//比较两个对象中包含的基本类型值大小  返回-1,0,1
new Integer(10);//基本类型转为包装类型
valueOf(128)//基本类型转为包装类型
intValue()//包装类型转为基本类型
int parseInt("30");//将字符串转为10进制整数
equals();//方法比较对象中包含的值是否相等

自动拆箱:把包装类型转为基本类型
拆箱的时候自动调用的是Integer的intValue方法

Integer x=new Integer(value:10);
int y=x//x.intValue()
System.out.println(y);

自动装箱:把基本类型转为包装类型
装箱的时候自动调用的是Integer的valueOf(int)方法

Integer n=y;//默认调用Integer.valueOf(y) 大于127,小于-128,就会new新的对象

== 比较基本类型是,比较的是值是否相等
== 比较引用类型时,比较的是两个引用所指向的对象地址是否相同

a.equals(b)比较的是对象a,b中的值是否相等

Object类

Object类是所有Java类的祖先(根基类)。每个类都使用 Object 作为 超类(父类)。所有对象(包括数组)都实现这个类的方法,object 实现多态的基础

object 中的方法

toString方法
Object类中定义有public String toString()方法,其返回值是 String类型,描述当前对象的有关信息。 在进行String与其它类型数据的连接操作时(如: System.out.println(“info”+person)),将自动调用该对象类的 toString()方法 ,可以根据需要在用户自定义类型中重写toString()方法。在使用对象直接输出的时候,默认输出的是一个对象在堆内存上的地址值;如若要输出该对象的内容,则要覆写toString方法
equal()
Object类中定义有: public boolean equals(Object obj)方法提供定义对象是否“相等”的逻辑。
Object 的 equals 方法 定义为:x.equals ( y ) ,当 x 和 y是同一个对象的引用时返回 true 否则返回 false
JDK提供的一些类,如String,Date等,重写了Object的equals方 法,调用这些类的equals方法, x.equals (y) ,当x和y所引用的对象 是同一类对象且属性内容相等时(并不一定是相同对象),返回 true 否则返回 false

Arrays类

用于操作数组工具类,里面定义了常见操作数组的静态方法
equals 方法 : 比较两个非同一数组是否相等,而数组本身的equals判断另一个数组是否它本身。

Arrays.equals(a, b)//相等ture,不相等false

sort -排序

Arrays.sort(a);//数组中的所有数按先大后小的顺序
Arrays.sort(a,2,4)//数组中,第三个数到第五个数按先大后小的顺序
Arrays.sort(strArray)//字符串排序,先大写后小写
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER//字符串排序,不分大小写
Arrays.binarySearch(a, 4)//二分查找法找指定元素的索引值,结果不是负数,说明找到了,使用二分查找法之前先得将数组排好顺序
Arrays.binarySearch(a, 0,4,7)//在a数组中从索引0到索引4之间找7这个数的索引位置

自定义对象排序
自定义类实现Comparable接口 ,重写compareTo方法

public boolean equals(Object obj) {    
       if(obj instanceof Car){       
          Car  otherCar = (Car)obj;        
          return this.name.equals(otherCar.name) && this.price==otherCar.price;    
        }    
           return false;
   }

数组复制: 将原来数组的内容复制到一个新的指定长度的数组中,称为数组扩容

int [] b=Arrays.copyOf(a, 10); //将a数组的长度,扩大到10.

toString() 方法

Arrays.toString(a)//将数组对象a的内容以字符串形式输出

String类

字符串是由多个字符组成的一串数据(字符序列)的字符串常量,java中所有字符串都是String类的实例. String对象的值一旦定义就不能改变,底层是使用char数组存储
有两种创建形式:
第一种:String s = “abc”;
先在栈中创建一个对String类的对象引用变量s,然后去字符串常量池中查找有没有"abc", 如果没有则在常量池中添加”abc”, s引用变量指向常量池中的”abc”,如果常量池中有,则直接指向改地址即可,不用重新创建.
第二种: 一概在堆中创建新对象,值存储在堆内存的对象中。
String s = new String(“abc”);
比较字符串内容是否相等

s1.equals(s2)//比较s1和s2内容是否相等

比较时忽略大小写

s2.equalsIgnoreCase(s3)//比较s1和s2内容是否相等,不分大小写

判断是否包含指定的子串

s3.contains("aD")//判断s3中是包含子串"aD"

判断以xxx开头(子串)

s3.startsWith("ac")//判断s3是否以"ac"开头

判断以xxx结尾(子串)

s3.endsWith("cD")//判断s3是否以"cD"结尾

基本功能

s.length()//返回字符串s长度
s.charAt(3)//返回索引4上的字符
s.indexOf("c")//获取字符"c"首次出现的位置, 从前向后
s.indexOf("c",s.indexOf("c")+1)//从指定位置开始找的
s.lastIndexOf("c")//从后向前找字符"c"首次出现的位置
s.substring(2)//从索引2开始截取一个新的子串到结尾
s.substring(2,6))//从索引2开始到索引6截取一个新的子串

转换功能

byte[]  bytes= s.getBytes(字符集) ;//将字符串转为字节数组,转码,字符集默认为平台上的字符集
String s1=new String(bytes,0,2,字符集)//将字节数组索引0开始,长度为2,转为字符串,解码,解码的字符集要和转码的字符集一致
char[] chars=s.toCharArray();//将字符串转为字符数组
String.valueOf(10);//将整数转为字符串,建议使用valueOf方法,引用的值如果为null,返回null字符串形式,不报错
i.toString();//i=null,就会报空指针异常
s.toLowerCase();//将字符串s转为小写
s.toUpperCase();//将字符串s转为大写
String t=s.concat("efg")//s+="efg",拼接字符串
String[]sarray=s.split(":")//使用的制定的分割符号拆分字符串

替换功能

s.replace("c","C");//将字符串s中的c替换为C,只能用指定的字符串替换指定目标字串
s.replaceAll("//d","");//以正则表达式方式进行匹配替换
s.replaceFirst("//d","");//以正则表达式方式进行匹配替换,替换第一个
s.trim();//去掉字符串两端的空格
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序J

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

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

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

打赏作者

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

抵扣说明:

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

余额充值