【Java学习】Java常用类总结 | 建议收藏!!!

一、Object类详解

  • Object类存储在java.lang包中。
  • Object是比较特殊的类,是所有java类的父类
  • 用户创建一个类时,除非已经指定要从其他类继承,否则他就是从java.lang.Object类继承而来的。
  • 所以,在定义时可省略extends Object关键字。

1)getClass()

  • 返回当前对象的类对象型
  • 应用:用于判断两个引用中实际存储对象类型是否一致
class anything{
	public void test(){}
}
public class MyApplication1{
	public static void main(String args[]){
		anything obj = new anything();
		Class class1 = obj.getClass();
		System.out.println(class1);
	}
}
/*
*运行结果:
*class demo.anything
*/

2)hashCode()

  • 返回该对象的哈希码值
  • 哈希值根据对象的地址字符串数字使用hash算法计算出来的int类型的数值。
  • 相同的对象返回相同的哈希值
//在上面代码的基础之上可以直接调用 hashCode()
System.out.println(obj.hashCode());

/*
*366712642
*/

3)toString()

  • 返回该对象的字符串表示
  • 应用:可以根据程序需求覆盖该方法
    如:展示各个对象的属性值

直接调用:

package demo;
class student{
	String name;
	int age;
	student(String name,int age){
		this.name = name;
		this.age = age;
	}
	String getName(){
		return name;
	}
	int getAge(){
		return age;
	}
	void setter(String name,int age){
		this.name = name;
		this.age = age;
	}
	
}
public class MyApplication1{
	public static void main(String args[]){
		student s1 = new student("wang",20);
		System.out.print(s1.toString());
	}
}

/*
*demo.student@15db9742
*/

对不满足的结果可以进行重写:

package demo;
class student{
	String name;
	int age;
	student(String name,int age){
		this.name = name;
		this.age = age;
	}
	String getName(){
		return name;
	}
	int getAge(){
		return age;
	}
	void setter(String name,int age){
		this.name = name;
		this.age = age;
	}
	
	public String toString(){
		return name+":"+age;
	}
	
}
public class MyApplication1{
	public static void main(String args[]){
		student s1 = new student("wang",20);
		System.out.print(s1.toString());
	}
}

/*
*wang:20
*/

4)equals()

  • 默认实现为(this == obj),比较两个对象地址是否相同。
  • 可进行覆盖,比较两个对象内容是否相同
    源码实现:
public boolean equals(Object obj){
	return (this==obj);
}

Q:
equals 和 == 的区别 ???
A:
equals比较的是两个对象值是否相等,如果没有被重写,比较的是对象的引用地址是否相同。而==用于比较基本数据类型的值是否相等,或比较两个对象的引用地址是否相等;

二、Math类详解

  • 调用形式:
    Math.数学方法
    常量:Math.PI 或Math.E等等
  • 在Math类中包含的三角函数方法如下:

1)三角函数方法

public static double sin(double a)//正弦
public static double cos(double a)//余弦
public static double tan(double a)//正切
public static double asin(double a)//反正弦
public static double acos(double a)//反余弦
public static double atan(double a)//反正切
public static double toRadians(double angdeg)//将角度转换为弧度
public static double toDegrees(double angrad)//将弧度转换为角度

2)指数函数方法

public static double exp(double a)//e的a次方
public static double log(double a)//lna
public static double log10(double a)//底数为10的对数
public static double sqrt(double a)//a的平方根
public static double cbrt(double a)//a的立方根
public static double pow(double a,double b)//a的b次方

3)取整函数方法

public static double ceil(double a)//大于等于参数的最小整数
public static double floor(double a)//小于等于参数的最大整数
public static double rint(double a)//与参数最接近的整数(若相等,取偶数)
public static int round(float a)//加上0.5后与参数最接近的整数

4)取最大值、最小值、绝对值函数方法

public static double max(double a,double b)//a、b的最大值
public static double min(double a,double b)//a、b的最小值
public static double abs(double a)//绝对值

三、Random类

1)Math.random()方法

Math.random()//产生[0,1)的double数
(int)(Math.random()*100)//产生[0,100)的int数
50+(int)(Math.random()*100)//产生[50,150)的int数
(char)('a'+Math.random()*('z'-'a'+1))//产生a~z之间的字符
(char)(cha1+Math.random()*(cha2-cha1+1))//产生cha1~cha2之间的字符

2)Random类

除了Math.random()方法,Java还提供了一种可以获取随机数的方式,那就是java.util.Random类。

public int nextInt()
public int nextInt(int n)
public double nextDouble()
......

四、包装类

基本数据类型(8种)与包装类的对应关系如下:

  • byte → Byte
  • short → Short
  • int → Integer
  • long → Long
  • float → Float
  • double → Double
  • char → Character
  • boolean→ Boolean

包装类的继承关系:
在这里插入图片描述

五、String类

  • 字符串是常量,创建后不可改变 (重要!!!)
  • 字符串字面值存储在字符串池中,可以共享。
  • Sting s = “Hello”; 产生一个对象,字符串池中存储。
  • String s = new String(“Hello”); 产生两个对象,堆、池各存储一个。

String类常用方法

length()//返回字符串长度
charAt(int index)//返回某个位置的字符
contains(String str)//判断是否包含某个子字符串
indexOf()//返回子字符串首次出现的位置
trim()//去掉字符串前后空格
toUpperCase()//转大写
toLowerCase()//转小写
statsWith(str)//判断是否str开头
endsWith(str)//判断是否str结尾

注意区分:

  • String s = “a”+1+2
    结果:a12
  • String s = ‘a’+1+2
    结果:100
  • String s = 1+2+“a”
    结果:3a

六、StringBuffer、StringBuilder类

  • 可变长字符串
  • 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
  • StringBuffer运行效率慢、线程安全
  • StringBuilder运行效率快、线程不安全
  • 可通过append(str)方法追加str字符串

附:更加详细的内容,请访问:Java8API文档
https://docs.oracle.com/javase/8/docs/api/

小伙伴们,强烈安利一波👇:
推荐一款轻便实用的Chrome插件(限时免费下载,赠去广告特权)

好了,看到这里基本上这章就结束啦。如果您觉得这期内容对你有帮助的话,欢迎点赞,评论,收藏,谢谢啦。

推荐你可能喜欢的其他精彩内容:
Chrome与Chromedriver版本对应表(最新)【附下载链接】
【Linux学习】CentOS6.8安装步骤的详细教程
驱动谷歌浏览器执行用例时报错java.lang.IllegalStateException
算法基础-博学楼的阶梯【简单模拟】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值