Java中的常用类之Object类、包装类和String类?【附ASCLL表】(十)

什么是Object类

在这里插入图片描述

(1) Object:是位于 java.lang包中的类,使用时无需导包 
(2) Object类:是所有类的父类,直接父类或是间接父类
(3) Object类型的引用可以存储任意类型的对象 
		Object代表对象 
(4) Object类中方法是每个类都默认具有的功能

Object类中的常见方法

(1) getClass():被final修饰,允许子类继承,不能被覆盖 
	作用:获取引用中存储的实际对象类型 
(2) int hashCode():没有被final修饰,允许子类覆盖
	作用:返回对象哈希码值 
(3) String toString():没有被final修饰,允许被子类覆盖 
	作用:返回对象的字符串形式 
(4) boolean equals(Object obj):没有被final修饰,允许被子类覆盖 
	作用:用于比较两个对象的内容是否相等,相等-true;不相等-false 
	注意:
		= =的应用: 
		= = 如果两端为基本数据类型变量,则判断变量中数值是否相等 
		= = 如果两端为引用,则判断引用中存储的地址是否相等
(5) void finalize():没有被final修饰,允许子类覆盖 [JVM进行性能调优涉及] 
	作用:垃圾回收器回收垃圾对象时,jvm自动调用 

什么是包装类

基本数据类型对应的类称为包装类.
目的:让Object统一管理所有类型的数据

8个基本数据类型提供的对应类:

位于 java.lang包中,包装类被final修饰,没有子类.

包装类的默认值均为null.

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

数据类型之间的转换

String->int 
int n = Integer.paseInt("123"); 
注意:参与转换的字符串必须是纯数值,否则运行报错,错误信息为:
	java.lang.NumberFormatException(数值格式转换异常)

自动装箱拆箱

(1) JDK5.0版本提供类了自动装箱和拆箱,即基本数据类型和对应的包装类型之间相互转换 
(2) 装箱和拆箱 
装箱:将基本数据类型转换为对应的包装类型 
	Integer i1 = 12; // int- >Integer 
拆箱:包装类型转换为对应的基本数据类型 
	Integer i1 = 12; int n = i1; // Integer -> int

什么是String类

代表字符串:由""引起来的一个或是多个字符
位于java.lang包中,被final修饰,没有子类

获取字符串的两种方式

(1) String str1 = "hello"; 
	直接使用""方式获取字符串直接在串池中查看是否有需要的字符串对象;
	如果串池有,则直接使用;没有需要在串池中产生一个字符串对象;
	串池中的字符串对象可以被共享使用 
(2) String str2 = new String("world"); 
	利用构造方法获取字符串,首先在堆空间中创建一个字符串对象;
	然后查看串池中是否存在此字符串对象;
	存在-串池中就不在创建字符串对象;
	不存在-串池中需要再创建一个字符串对象用于共享;
	这种获取字符串的方式产生1~2个字符串对象

字符串的常见方法

(1) int length():获取字符串的长度 
	注意:数组获取长度:数组名.length 
(2) boolean equals(String str):判断字符串内容是否相等,相等-true;不相等-false 
	注意:实际开发时,比较字符串内容是否相等,必须使用equals
(3) boolean equalsIgnoreCase(String str):比较字符串的内容是否相等,而且忽略大小写
	注意:实际开发时,对验证码比较无需关注大小写时可以应用
(4) char charAt(int index):根据下标获取对应的字符
	注意:如果指定的下标超过字符串的下标范围,则运行报错,错误信息为:
		 java.lang.StringIndexOutOfBoundsException 
		 (字符串下标越界:上越界+下越界)   

在这里插入图片描述

在这里插入图片描述

String的不可变性

(1) String字符串为字面值常量,一旦创建不能更改
(2) 由于String不可变性,完成字符串拼接时,相对效率较低

String的可变长字符串:(字符串拼接时使用)

(1) 常用的可变长字符串:位于java.lang包中 
	a. StringBuffer:jdk1.0版本,线程安全,效率低 
	b. StringBuilder:jdk5.0版本,线程不安全,效率高 
(2) 常见的构造方法: 
	a. StringBuilder():无参数的构造方法 
	b. StringBuilder(String str):以 String类型的字符串创建一个变长的字符串 
(3) 常见的功能方法:
	字符串的拼接: StringBuilder append(参数):完成字符串的 拼接
(4) 注意: 
	将String转换为StringBulder: 
	StringBuilder sb = new StringBuilder(""); 
	将StringBuilder转换为String: 
	String s = sb.toString();

StringStringBuidlerStringBuffer的区别:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_60768515/article/details/123803808