目录
一.api
1.api介绍:
二.Object类
1.toString方法
2.equals方法
1.什么是equals方法
2.Object类向我们提供的equals方法
编辑
3.equals方法与"=="的区别
三.Arrays类
1.toString方法
2.sort方法
3.copyOf方法
4.fill方法
5.binarySearch方法
四.基本数据类型包装类
1.Integer
1>.装箱
2>.拆箱
五.String类
1.String类介绍
2.String类中常用方法
3.字符串常量池
一.api
1.api介绍:
java语言中已经把很多功能实现了封装成不同的类和接口,java官方提供了一个文档,为类和接口提供说明,这个文档就叫api文档
api就是java官方给开发人员提供的java中类的使用说明书
二.Object类
Object类是所有类的父类,我们常称Object类是万类之祖
1.toString方法
toString方法会返回一个对象的字符串表现形式,输出的是一个字符串
我们所有没有继承的类都会默认继承Object类,用类名.toString就可以调用toString方法
public static void main(String[] arg){toString t = new toString();t.setAge(10);t.setName("王五");System.out.println(t.toString());
}
但是运行结果却和我们预期不同,运行结果如下:
这是为什么呢,toString方法应该将我们类中的信息以字符串的形式向控制台输出才对,为什么是类的在包中的位置和地址呢,让我们看看源码
从Object中toString方法的源码我们可以看出,它和我们的预期并不相符,只是输出了一个地址
,所以我们想要将类中的信息表示出来就要对toString方法进行重写
//类中的属性private int age;private String name;
@Overridepublic String toString() {return "toString{" +"age=" + age +", name='" + name + '\'' +'}';
这样就得到了我们想要的功能
2.equals方法
1.什么是equals方法
equals方法用于比较两个对象中的信息是否相等
2.Object类向我们提供的equals方法
Object类向我们提供的equals方法是通过==号来判断两个对象地址是否相同,这并不符合我们的要求,所以我们通常会对equals方法进行重写,源码如下:
3.equals方法与"=="的区别
==:如果两边是基本数据类型,==用来判断元素值是否相同,当==两边是对象时,==判断的是两边对象地址是否相同
equals:equals用来判断两个对象中的内容是否相同,但Object类向我们提供的equals方法不能实现,我们通常会进行重写
三.Arrays类
Arrays类在java.lang包中
1.toString方法
将数组中的元素以字符串的形式向控制台输出
public static void main(String[] args) {int[] a = {1,2,3,4,5};System.out.println(Arrays.toString(a));
}
运行结果如下:[1, 2, 3, 4, 5]
2.sort方法
冒泡排序,通过两两交换实现将数组升序排列
public static void main(String[] args) {int[] a = {1,2,5,3,4};Arrays.sort(a);System.out.println(Arrays.toString(a));
}
运行结果如下:[1,2,3,4,5]
3.copyOf方法
将指定数组赋值给另一个指定长度的新数组,常用于数组扩容
public static void main(String[] args) {int[] a = {1,2,5,3,4};int[] b = Arrays.copyOf(a,10);System.out.println(Arrays.toString(b));
}
运行结果如下:[1, 2, 5, 3, 4, 0, 0, 0, 0, 0]
4.fill方法
将指定的值赋给数组
public static void main(String[] args) {int[] a = {1,2,5,3,4};Arrays.fill(a,10);System.out.println(Arrays.toString(a));
}
运行结果如下:[10, 10, 10, 10, 10]
5.binarySearch方法
二分查找算法,通过每次去除一般的元素,高效进行查找,前提必须是这个数组是有序的(升序或者降序)
public static void main(String[] args) {int[] a = {1,2,3,5,11,12,13,17,18};System.out.println(Arrays.binarySearch(a, 17));
}
运行结果如下:7
四.基本数据类型包装类
每一个基本数据类型都有一个自己的包装类
1.Boolean:
布尔类将对象中的基元类型
boolean
的值包boolean
2.Long:
Long
类包装一个对象中的基本类型long
的值。3.Integer:
Integer
类包装一个对象中的原始类型int
的值。4.Short:
Short
类在一个对象中包含一个基本类型short
的值。5.Characte:
Character
类包装一个对象中的基本类型char
的值。6.Byte:
Byte
类在一个对象中包含一个原始类型byte
的值。7.Double:
Double
类包装一个对象中的基本类型double
的值。8.Float:
Float
类在一个对象中包含一个基本类型float
的值。
因为基本数据类型不满足我们对面向对象语言特性的使用,所以产生了基本数据类型包装类,每一个基本数据类型包装类中都有一个Value属性,存储基本数据类型的值
1.Integer
Public static void mian(String[] arg){//创建对象Integer i1 = new Integer(20);//包装成一个int的基本类型Integer i2 = new Integer("10");//包装成一个String类型//与其他类型的转换int a = i1.intValue();//将值取出来 转化为基本数据类型
}
1>.装箱
将基本数据类型赋值给基本数据类型包装类这一操作被称为装箱
Public static void main(String[] arg){Integer i1 = new Integer();Integer i1 = Integer.valueOf(10)//手动装箱Integer i2 = 10;//自动装箱,它默认会调用Integer中的ValueOf方法 }
自动装箱时需要注意,valueOf方法中整数值在-128到127之间返回的是Integer类中的数组,所以在这个范围内值相同,地址也就相同,在这个地址需要比较的话用equa方法。
不在这个范围之内,每次都是创建一个新的对象
2>.拆箱
将基本数据类型从基本数据类型包装类的对象中取出值的操作我们称为拆箱
Public static void main(String[] arg){Integer i1 = new Integer(10);int i = i1;//自动拆箱,默认调用Intvalue方法int i1 = i1.Intvalue();//手动拆箱 }
五.String类
1.String类介绍
1.String类是java中专门用于处理字符串的类
2.String类是1被final修饰的,其他类不能继承
3.String类中,有一个char数组用来存储字符串的内容
4.字符串的对象一旦创建后就不能改变了(因为char数组是被final修饰的),一旦值改变了就会创建一个新的字符串对象
2.String类中常用方法
1.boolean equals//比较两个字符串内容是否一致
2.boolean equalsIgnoreCase//比较两个对象内容是否相等,忽略大小写
3.boolean contains//判断是否包含一个指定的子串
4.boolean isEmpty//判断字符串的值是否是空串 是空串返回true
5.boolean startsWith//判断字符串是否以某个字符串开头
6.boolean endsWith//判断字符串是否以某个字符串结尾
7.length//获取字符串长度
8.charAt//获取字符串中指定位置的字符
9.indexOf(String str)//获取指定字符在字符串中首次出现的位置 从前向后
10.indexOf(String str int fromIndex)//从指定位置开始查找,获取指定字符首次出现的位置
11.lastIndexOf(string str)//从后向前找
l12.astIndexOf(string str,int fromIndex)//上一个方法的重载
13.substring//从指定位置开始截取到末尾,截取后返回的都是一个新的字符串对象
14.substring//从指定位置开始截取到指定位置结束,不包含结束位置,截取后返回的都是一个新的字符串对象
15.valueOf//用于把各种数据类型转化为字符串,在实际开发过程中toString用的较少,String.valueOf用的比较多,因为当数据为null时,toString会报错,但valueOf不会报错,会把null输出出来
16.toLowerCase//将字符串中全部字母转为小写字母
17.toUpperCase//将字符串中全部字母转为大写字母
18.concat//用于连接两个字符串
19.trim//用于消除字符串最前面和最后面的空格
20.split("分隔符")//用指定的字符将字符串进行拆分成字符数组
21.replace//用一个指定的字符串把字符串中已有的字符串替换
22.toCharArray//将字符串转化为字符数组
23.getByte//将字符串转化为byte数组
3.字符串常量池
Public static void main(String[] arg){String str1 = new String();String str2 = {"ABC"};
}
str1的是直接在堆区创建对象。
str2是现在字符串常量池中寻找是否有相同的字符串常量,如果有str2指向那个地址,如果没有,在字符串常量池中会创建"ABC"对象,然后str2指向那个地址
字符串常量池就是在JVM缓存区中的方法区中的一块空间,用于存储字符串常量,例如下图:
public static void main(String[] arg){String str1 = "ABC"String str2 = "ABC"String str3 = new String("ABC");System.out.println(str1 == str2);//trueSystem.out.println(str1 == str3);//falseSystem.out.println(str1.equals(str3));//true
}
因为字符串常量区的存在,在str1初始化完,"ABC"已经在字符串常量区创建了对象,str2因为值与"ABC"相同,所以str1与str2指向同一地址,但str3是在堆区直接创建对象,==号比较两对象地址,所以str1与str3不相等,但是str1与str3值相同,所以用equals方法比较是true
本篇文章到此结束,谢谢大家的关注