JAVA SE基础(常用API)

求关注 求支持

1

Math类概述

Math包含执行基本数字运算的方法,类的成员都是静态的,通过类名就可以直接调用

常用方法

3

public class MathDemo {

	/**
	 *测试
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//返回参数绝对值
		System.out.println(Math.abs(-1));
		System.out.println(Math.abs(1));
		System.out.println(Math.abs(-1.23));
		System.out.println("----------------");
		
		//返回大于等于参数的最小整数值(double)
		System.out.println(Math.ceil(2.1));
		System.out.println("----------------");
		
		//返回小于等于参数的最大整数值(double)
		System.out.println(Math.floor(2.1));
		System.out.println("----------------");
		
		//返回按四舍五入,最接近参数的整数
		System.out.println(Math.round(2.4));
		System.out.println(Math.round(2.5));
		System.out.println("----------------");
		
		//返回两个数中最大值、最小值
		System.out.println(Math.max(5, 6));
		System.out.println(Math.min(5, 6));
		System.out.println("----------------");
		
		//返回a的b次幂
		System.out.println(Math.pow(2, 3));
		System.out.println("----------------");
		
		//返回0-1之间随机数
		System.out.println(Math.random());
	}

}

System类

常用方法

4

		public class MathDemo {

	/**
	 *测试
	 */
	public static void main(String[] args) {
		//终止当前运行的JAVA虚拟机,0表异常
		System.out.println("开始");
		System.exit(0);
		System.out.println("结束");
	}
}

会输出什么呢?????

			public class MathDemo {

	/**
	 *测试
	 */
	public static void main(String[] args) {
		//返回当前时间-距离1970-1-1的时间(以毫秒为单位)
		System.out.println(System.currentTimeMillis());
		System.out.println(System.currentTimeMillis()*1.0/1000/60/60/24/365+"年");
	}

}

还可以计算一段代码运行时间

		long last=System.currentTimeMillis();
		for(int i=0;i<10000;i++){
			System.out.println(i);
		}
		long end=System.currentTimeMillis();
		System.out.println("共运行了"+(end-last)+"毫秒");

Object类

Object类是类结构的,每一个类都有Object类作为超类

:为什么子类的构造方法都默认访问父类的无参构造方法

因为它们的顶级父类(Object)只有无参构造方法

常用方法

7

toString();

//返回对象的字符串表示形式,建议重写此方法
public String toString();

我们建立一个学生类,对其进行测试

public class Student {
	private String name;
	private int age;
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

直接进行代码测试,会发现

public class ObjectDemo {

	/**
	 * 测试
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student s=new Student();
		s.setName("菜鸡");
		s.setAge(88);
		System.out.println(s);
	}
}

5
通过底层代码发现其调用了object的toString方法

 public void println(Object x) {
        String s = String.valueOf(x);
        synchronized (this) {
            print(s);
            newLine();
        }
    }
 public static String valueOf(Object obj) {
	return (obj == null) ? "null" : obj.toString();
    }
 public String toString() {
	return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

底层代码可选中方法,右键选择declaration查看(myeclipse)

System.out.println(s);
System.out.println(s.toString());

上面两者效果等同

当我们重写toString 方法

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "name="+name+","+"age="+age;
	}

6

equals();

public class ObjectDemo {

	/**
	 * 测试
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student s1=new Student();
		Student s2=new Student();
		System.out.println(s1==s2);
		System.out.println(s1.equals(s2));
	}

}

会输出什么呢?????
答:全为false

默认状态下,比较两者的地址

可以进行方法重写(自动生成)

@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		if (age != other.age)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}

就会输出true了

总结

跪谢查阅
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小橙菜鸡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值