java之lang包

java.lang包概述

java.lang包下放置了Java开发中常用的类和接口,所以为简化该包下类的使用,java.lang包下的类在使用时不需要导入这些类。

1610803565954.png

java.lang包下常用类有:

Object

String

StringBuffer和StringBuilder

八种基本数据类型的包装类

Thread等等

Object类

概述

Java所有类都是object的子类。所以,所有的Java对象都可以调用object类提供的方法。

java.lang.Object类是类层次结构中最顶层父类。所有的类(包括数组)直接或者间接的继承自Object类,同时也继承了该类中的方法。

1610803565990.png

Object的构造方法

Object类只有一个无参的构造方法

Object()

Object中常用的方法

boolean equals(Object o)

boolean equals(Object o) 比较两个对象是否相同,默认比较两个对象的内存地址

Object类的equals方法用于判断两个对象是否相等。

Object类的equals方法的返回值为boolean的true和false。

Object类的equals方法只有一种情况返回true:两个非空的引用变量o1和o2指向的是同一个对象时。

1610803566020.png

equals方法和==的区别

==可以用于比较基本数据类型的值

==可以用于比较两个对象是否相等,比较对象时,实际比较的是对象在内存中的地址

equals是一个方法,Object中默认比较内存地址,许多类中都按照不同需求重写了equals

int hashCode()

int hashCode() 返回一个对象的哈希码。

String toString()

String toString() 将一个对象转换为字符串,默认将一个对象地址转换成字符串。

1610803566079.png

注:打印一个对象,可以直接System.out.println(p);其实java会自动调用p 的 toString() 方法。

重写equals

当equals不满足我们的需求的时候,我们就需要对其进行重写。

Students类

1610803566160.png

main方法

1610803566193.png

重写toString方法

默认的toString方法会输出一个对象地址,假如现在我想让toString会输出对象的属性。

Students类

1610803566225.png

main方法

1610803566261.png

String类

String概述

String类代表字符串,提供了开发中常用的字符串处理的方法,如:求字符串的长度、截取字符串、替换字符串等方法.

字符串是常量,它的值创建之后就不可以再修改了。

如果字符串反复修改,不推荐使用String类。

String类常用构造方法

String() 无参构造方法

String(String str) 有一个字符串参数的构造方法

String(char[]ch) 有一个char类型数组参数的构造方法

String(byte[] b) 有一个byte数组参数的构造方法

字符串常量池

当定义一个字面量字符串时,JVM会在常量池中寻找是否有这个字符串,如果有,则引用这个字符串,因此图1中的str1== str,比较的是字符串的地址。

拼接字符串常量时,首先会在常量池寻找是否有拼接的字符串,没有则创建,比如图1中第10行,JVM会检测到常量池中没有“世界”这个字符串,因此会创建一个“世界”字符串,JVM将这两个字符串拼接起来,在常量池中,创建一个拼接后的字符串“你好世界”。

1610803567372.png

  1. 拼接字符串时,如果其中有变量,则在堆中创建字符串,与常量池不是一个内存,因此中的str != str1,即地址不同。

1610803567534.png

字符串的创建

1610803567566.png

String类常用方法

int length()

int length() 求字符串值的字符个数

boolean equals(Object o)

boolean equals(Object o) 比较两个字符串值是否相同

1610803567604.png

String replace(char old,char n)

String replace(char old,char n) 字符串替换

String replaceAll(String old,String n)

String replaceAll(String old,String n) 字符串替换

1610803567635.png

char charAt(int index)

char charAt(int index) 返回指定字符串指定位置的字符

int compareTo(String s)

int compareTo(String s)按字典顺序比较字符串大小

boolean endWith(String s)

boolean endWith(String s) 比较字符串是否以指定的参数结尾

boolean beginWith(String s)

boolean beginWith(String s)比较字符串是否以指定的参数开头

String valueOf(int i)

String valueOf(int i)将基本数据类型转换为字符串