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();//去掉字符串两端的空格