Java 中的一些常用类

位于java.long包下

  1. 是所有类的超类
  2. object o = 任意类型的对象
  3. Object类中所有受保护,公开的方法,是所有类所具备的

常用方法:

getClass() : 返回引用中指向的对象的实际类型

//判断 a 和 a1指向的实际对象  是否是同一类型
System.out.println(a.getClass() == a1.getClass()); //一致 - true; 不一致-																false

int hashCode(): 返回值对象的哈希码值(对象地址的整数表现形式)
String toString(): 返回对象的字符串表现形式

Worker w = new Worker();
System.out.println(w);

打印对象就是打印toString方法的返回值(对象的字符串表现形式)

需要覆盖toString方法:

public String toString() {
    
    
	return name+" "+age+" "+score;
}

boolean equals(Object o):判断当前对象和指定对象内容是否相同
注意:自定义类型需要重写equals方法

	public boolean equals(Object o) {
    
    
		if(this==o) return true;   //		1. 自反性判断
		if(o==null) return false;  //		2. 非空判断
		if(this.getClass()!=o.getClass()) 
            return false;		  //		3. 判断类型是否一致
		Worker w = (Worker)o;     //		4. 强转
		if(this.name.equals(w.name)&&this.age==w.age&&this.score==w.score)
			return true;         //		    5. 逐一比较属性是否一致
		return false;			
	}

void finalize():垃圾回收器回收垃圾对象时调用
垃圾对象:没有引用指向的对象
垃圾回收:销毁垃圾对象,释放内存空间

垃圾回收机制
自动回收机制:JVM内存耗尽时,将不能再为新创建的对象分配空间。此时垃圾回收器回一次性回收所有垃圾对象(自动调用finalize方法)
手动回收机制:利用System.gc();通知JVM做垃圾回收。若垃圾回收器空闲则回收;若不空闲则暂不回收。

包装类(java.lang)

概念:八种基本数据类型对应的对象类型,称为包装类。

常用方法

Integer —— int

//		int --> Integer
Integer i1 = new Integer(a);	   //1. 通过构造方法
Integer i2  = Integer.valueOf(a);  	//2. 通过静态方法valueOf
//		Integer-->String
String s1 = i4.toString();
String s2 = i4+"";

String ——Integer

//		String-->Integer
Integer i4 = new Integer(s);	//1. 通过构造方法
Integer i5 = Integer.valueOf(s);	//2. 通过静态方法valueOf
//		Integer-->String
String s1 = i4.toString();
String s2 = i4+"";

String —— int

扫描二维码关注公众号,回复: 13460181 查看本文章
//		String-->int
//		static int parseInt(String s)   获取s的int表现形式
int i6 = Integer.parseInt(str);   

注意:字符串类型转换成Integerint类型,则要求字符串内容只能是数字。
否则运行报错,报错信息为:java.lang.NumberFormatException(数字格式转换异常)

//		int-->String
String str1 = 10+""; 

自动拆装箱

JDK 5.0 开始,包装类类型和基本数据类型之间可以自动转换。称之为自动拆装箱
拆箱:包装类类型转换为基本数据类型
装箱:基本数据类型转换为包装类类型

Integer i1 = 10;  //装箱
int i2 = i1;	//拆箱

缓冲区

当自动装箱时,默认调用的是valueOf方法。
对-128~127之间的数字,做了预包装,存放在缓冲区
提高效率。

作用

区分0和null,即有效数据和无效数据

String类(java.lang)

常用方法

char charAt(int index): 返回下标对应的字符
int length(): 返回字符串的长度
String[] split(String s) : 根据s将字符串进行拆分成一个字符串数组
String toUpperCase(): 将字符串转换成大写
String toLowerCase() 将字符串转换成小写
boolean endsWith(String s): 判断字符串是否以s结尾
int indexOf(String s): 返回字符串中第一次出现s的下标,若不存在返回-1
int lastIndexOf(String s): 返回s在字符串中最后一次出现的下标,若不存在返回-1
String substring(int start,int end) : 截取字符串,从start-end(不包含end)

字符串对象的创建方式

  1. 字面值形式 String s = "abc";
    只会产生一个对象,存放在串池中
  2. new关键字创建 String s = new String("abc");
    产生两个对象,一个存放在堆空间中,一个存放在串池中
    String intern(): 返回字符串在串池中的字符串对象

不可变长:
串池中的String是字面值常量,创建之后不可更改。
存放在串池中,资源共享,节省空间。

缺点:
当进行字符串拼接时,不会改变原有的空间,而是产生大量的副文本存放新的字符串对象。从而降低了字符串拼接的效率。

可变长字符串:

StringBuffer : JDK 1.0 线程安全的 效率低
StringBuilder: JDK 5.0 线程不安全的 效率高

  1. 创建对象:
    StringBuilder s = new StringBuilder("abc");
    常用方法:
    append(): 字符串拼接 //类似于String的+
  2. 当进行大量字符串拼接时,则创建一个可变长字符串,通过append方法进行拼接。
    再调用toString()方法转换成String对象

BigDecimal(java.math)

作用:用于精确的表示、计算浮点数

  1. 如何创建对象
BigDecimal bd1 = new BigDecimal("1.0");  //参数选取字符串
  1. 运算
BigDecimal bd1 = new BigDecimal("10.0");   //bd1 = 1.0
BigDecimal bd2 = new BigDecimal("3.0");   //bd2 = 0.9
BigDecimal bd3 = bd1.add(bd2);     //bd3 = bd1+bd2
BigDecimal bd4 = bd1.subtract(bd2);   //bd4 = bd1-bd2
BigDecimal bd5 = bd1.multiply(bd2);   //bd5 = bd1*bd2
//bd2 :表示分母   2:表示 精确位数   BigDecimal.ROUND_HALF_UP:四舍五入的取值方式
BigDecimal bd6 = bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP);    												             //bd6 = bd1/bd2

猜你喜欢

转载自blog.csdn.net/gym02/article/details/107079990