Java常用类---Object、Scanner和Arrays

常用类

1.Object类
①概述
Object类是类层次结构的根类,所有类都直接或间接继承自该类。

②构造方法
public Object()
所以在面对对象中介绍时说所有类都默认继承了父类的无参构造方法

③常用方法
public int hashCode():
返回当前对象的哈希码值。根据不同的对象返回不同的整数,哈希码值是根据哈希算法计算出来的一个值,这个值和地址值有关,但不是地址值。地址相同的两个对象的哈希码值相同。

public final Class<?> getClass():
通过对象调用此方法,返回此对象的所属类。

public String toString():
返回调用者的完整类名+’@’+该对象的无符号十六进制哈希码值,一般建议子类直接重写,在Eclipse中可以右键–>source–>Generate toString()直接生成toString方法
直接输出一个对象的名称默认调用了该对象的toString方法

public boolean equals(Object obj)
==:

  • 基本数据类型:比较值是否相等
  • 引用数据类型:比较地址值是否相等

equals的底层源码是用"=="实现的,一般建议子类直接重写该方法,常与instanceof关键字联用,在Eclipse中可以右键–>source–>Generate hashCode() and equals()直接生成

protected void finalize() throws Throwable
当该对象不再使用时,由该对象的垃圾回收器调用此方法以回收该对象。

2.Scanner类
①概述
JDK1.5之后出现的用于接收用户输入的类。

②构造方法
public Scanner(InputStream source)
System类中:public static final InputStream in
例:
    Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();

③常用方法
public boolean hasNextXxx():
判断是否还有下一个输入项,可以用它来判断输入的值是否正确,例:
    public boolean hasNextByte()
    public boolean hasNextFloat()

public xxx nextXxx():
获取下一个输入项,例:
    public byte nextByte()

		Scanner sc=new Scanner(System.in);
		if(sc.hasNextInt()) {
			int a=sc.nextInt();
		}else {
			System.out.println("你输入的数据有误!");
		}

④可能出现的问题:
当先获取一个数值,再获取一个字符串时,会出现将回车符当做字符串的问题,例:

		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		String b = sc.nextLine();
		System.out.println("a:" + a + ",b:" + b);

解决方案:
先获取一个数值后,再创建一个新的键盘录入对象获取字符串,例

		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		Scanner sc1 = new Scanner(System.in);
		String b = sc1.nextLine();
		System.out.println("a:" + a + ",b:" + b);

或把所有数据都先按照字符串获取,然后按照需求转换

3.String类
①概述
由多个字符组成的一串数据;定义的一个字符串值可以将它看成一个字符串对象。字符串是常量,赋值后不能修改。

具体介绍请看专题文章:Java基础知识每日总结(4)—Java字符串

4.Arrays类
①概述
Arrays类是java.util包下的一个类,它里面包含了处理数组的各种方法(例如,排序和查找),这些方法基本上都是静态方法,所以可以直接使用类名.方法名调用。

②常用方法
public static String toString(Object[] a)
将任意类型的数组转为String。例,

int[] a= {2,6,4,8,3};
System.out.println(Arrays.toString(a));   //[2, 6, 4, 8, 3]

public static void sort(Object[] a)
对任意类型的数组进行排序,排序遵循自然排序(从小到大)。例,

int[] a= {2,6,4,8,3};
Arrays.sort(a);
System.out.println(Arrays.toString(a));   //[2, 3, 4, 6, 8]

public static int binarySearch(Object[] a,Object key)
使用二分查找方法对任意类型数组以key值进行查找,查找的前提是数组必须是有序的或数组先进行排序。例,

int[] a= {2,6,4,8,3};
Arrays.sort(a);
System.out.println(Arrays.binarySearch(a, 6));   //3
System.out.println(Arrays.binarySearch(a, 60));  //-6

如果要查找的元素在数组中不存在,返回一个负值。

public static List asList(T… a)
a为可变参数,它的实质是数组,此方法的实质是将数组转换为集合,参数可以为数组,也可以是变量。例,

String[] a={"hello"};
List<String> s=Arrays.asList(a);

for(String s2:s)
	System.out.println(s2);   //hello

List<String> ss=Arrays.asList();
List<String> sss=Arrays.asList("Hello","World");

for(String s2:ss)
	System.out.println(s2);   //
for(String s2:sss)
	System.out.print(s2+"  ");   //Hello  World  

因为此方法的底层是将数组转为集合,而数组的长度是不变的,所以不能对转成的集合进行增加或删除等改变数组长度的操作。一旦增加或删除就会出现UnsupportedOperationException不支持的操作异常。

更多常用类的介绍请看:Java常用类—包装器、BigInteger和System

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值