基础常用类

1. Math类 (基本数学运算类)
封装了关于基本数学运算的方法,所有类都是静态的,可以用类名直接调用
  1. static int abs(int a) 取绝对值
int a = -122;
Math.abs(a);
  1. static double ceil(double a) 向上取整 返回double类型
double d = 123.1;
Math.ceil(d);
  1. static double floor(double a) 向下取整 返回double类型
double  d = 123.2;;
Math.floor(d);
  1. static int max(int a,int b) 获取两个之间的最大值 min() 最小值
int a = 123;
int b = 124;
Math.max(a,b);
  1. static double pow(double a,double b) 计算a的b次方
double d = 2;
double f = 0.5;
Math.pow(d,f);
  1. static double random() 随机获取一个0.0~1.0 之间的小数,不包括1
double d = Math.random(); 
  1. static int round(float a) 四舍五入
float f = 123.5;
Math.round(f);
  1. static double sqrt(double a) 平方根
double d = 123.5;
Math.sqrt(d);
2. String类
2.1 java.long.String

类定义的对象都是字符串

字符串不能发生改变

创建方法

  1. 直接创建 (如果紧接着创建一个名字不同数据相同的,两个字符串共用一个地址值(new创建时在堆内存;直接创建在串池中
String s1 = "abc";
  1. new方式
String s2 = new String();
  1. 利用一个char数组
char[] ch = {'a','s','d'};
String s3 = new String(ch);//"asd" 
  1. 传递一个字节数组,再转为String, 规则为Ascii码表转换
byte bytes = {97,98,99};
String s4 = new String(bytes);//"abc"

String类下的方法:

1. 获取字符串长度    int  length()
2. 获取特定字符位置  char cahrAt(int intdex)
3. 获取特定字符的下标  int  indexOf(String str)
4. 获取特定字符的最后的一个位置  int  lastIndexOf(int ch)  
5. 将字符串咋转为字符数组  char[]  toCharArray()    
2.2 字符串的比较
  1. == 在基本数据类型比较时,比较的是数据值;在引用数据类型比较时,比较的是地址值 (同一种创建方式,用的地址值相同
  2. equals 比较字符串,区分大小写,先比较地址值,地址值不同再比较内容 equalslgnoreCase 比较字符串内容,忽略大小写

(比较内容,用这两个比较)

3. Object类
定义: Object 是所有类的父类,其他类可以使用Object类的所有的方法
3.1, 继承:
  1. 显式继承
public class Round extends Object{
    
}
  1. 隐式继承
public class Round {
    
}
3.2, 构造函数
  1. Object()
Object ob = new Object();
3.3, 方法
  1. protected Object clone(); 创建并返回一个对象的拷贝

  2. boolean equals(Object obj); 比较两个对象是否相等

  3. Class<?>getClass(); 获取对象运行时的类

  4. int hashCode(); 获取对象的hash值

  5. void notify(); 唤醒该对象上的等待的某个线程

  6. void notify(); 唤醒该对象上的所有等待线程

  7. String toString(); 以字符串形式返回该对象

  8. void wait(); 让线程进入等待状态

  9. boolean equals(Object obj) 比较

1. 指示一些其他对象是否等于此对象。判断两个对象是否相等
    public boolean equals(Object obj) {
     return (this == obj);
 }
2. 比较两个对象的内容是否一样【重点】
    class Employee {
	int id;
	String name;
	public Employee(int id, String name) {
		
		this.id = id;
		this.name = name;
	}
	
	//employee1.equals(employee2)
	@Override
	public boolean equals(Object obj) {//employee2 赋值 obj  这叫象上转型
		//this ===>employee1 
		//obj =====>employee2
		if (this == obj) {//比较内存地址
			return true;
		}
		//如果内存地址不一样的话 接下来判断内容
		if (obj instanceof Employee) {//为强转做准备
			Employee emp = (Employee) obj;
			return this.id == emp.id && this.name.equals(emp.name);
		}
		
		return false;
	}
}
public class Demo4 {
	public static void main(String[] args) {
		Employee employee1 = new Employee(1, "老邢");
		Employee employee2 = new Employee(1, "老邢");
		System.out.println(employee1.equals(employee2));
	}
}

public int hashCode()

返回对象的哈希码值。 支持这种方法是为了散列表,如HashMap提供的那样

在Object类中,将十六进制的内存地址转为十进制的值,就叫hash值

如果内存地址不一样,那么哈希也是不一样的

hashCode的总合同是:

​ 如果根据equals(Object)方法两个对象相等,则在两个对象中的每个对象上调用hashCode方法必须产生相同的整数结果

请注意,无论何时覆盖equlas方法,通常需要覆盖hashCode方法,以便维护hashCode方法的通用合同,该方法规定相等的对象必须具有相等的哈希码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值