Java学习概论第十四节

四、核心类

1、基本类型的封装类

• 封装类还可以实现基本类型变量和字符串之间的转换,将字符串的值转换
为基本类型的值有两种方式:
• 直接利用封装类的构造方法,即Xxx(String s)构造方法
• 调用封装类提供的parseXxx(String s)静态方法
• 示例:
int num1=new Integer(“10”);
int num2=Integer.parseInt(“123”);
• 基本类型的值转换成字符串有三种方式:
• 直接使用一个空字符串来连接数值即可,例如:""+23
• 调用封装类提供的toString()静态方法,例如:Integer.toString(100)
• 调用String类提供的valueOf()静态方法,例如:String.valueOf(66)
• 示例:
String s1 = “” + 23;
String s2 = Integer.toString(100);
String s3 = String.valueOf(66);
代码演示基本类型的封装类:

// 直接把一个整数值赋给Integer对象 
Integer intObj = 5; 
// 直接把一个boolean值赋给一个Boolean对象 
Boolean boolObj = true; 
// Integer对象与整数进行算数运算 
int a = intObj + 10; 
System.out.println(a); 
System.out.println(boolObj); 
// 字符串与基本intStr类型变量之间的转换 
String =123; 
// 把一个特定字符串转换成int 
int it1 = Integer.parseInt(intStr); 
int it2 = new Integer(intStr); 
System.out.println(it1 +,+ it2);

• 运行结果如下:
15 
true 
123,123
2、装箱和拆箱

基本类型与其对应封装类之间能够自动进行转换,其本质是Java的自动装
箱和拆箱过程。
• 装箱是指将基本类型数据值转换成对应的封装类对象,即将栈中的数据 封装成对象存放到堆中的过程。
• 拆箱是装箱的反过程,是将封装的对象转换成基本类型数据值,即将堆 中的数据值存放到栈中的过程。
示例代码:

int i = 10; 
// 自动装箱 
Integer obj = i + 5; 
Double dobj = 4.5; 
Boolean bobj = false; 
System.out.println("obj=" + obj+",dobj="+dobj+",bobj="+bobj); 
// 自动拆箱 
int a = obj; 
double d=dobj; 
boolean b=bobj; 
System.out.println("a=" + a+",d="+d+",b="+b);

运行结果:
obj=15,dobj=4.5,bobj=false 
a=15,d=4.5,b=false
3、 Object类

Java基础类库提供了一些常用的核心类,包括Object、String、Math等。
其中,Object对象类定义在java.lang包中,是所有类的顶级父类,在Java
体系中,所有类都直接或间接的继承了Object类。因此,任何Java对象都可
以调用Object类中的方法,而且任何类型的对象都可以赋给Object类型的变
量。
• Object类提供了所有类都需要的一些方法,常用的方法及描述:
方法 功能描述
protected Object clone()
创建并返回当前对象的副本,该方法支持对象复制
publicboolean equals(Object obj)
判断指定的对象与传入的对象是否相等
protected void finalize()
垃圾回收器调用此方法来清理即将回收对象的资源
publicfinal Class<?> getClass()
返回当前对象运行时所属的类型
publicint hashCode()
返回当前对象的哈希代码值
publicString toString()
返回当前对象的字符串表示
(1) equa
ls()方法

两个基本类型的变量比较
是否相等时直接使用“= =”运算符即可,但两个
引用类型的对象比较是否相等时则有两种方式:使用“= =”运算符,或使
用equlas()方法。在比较两个对象是否相等时,“= =”运算符和equals()
方法是有区别的:
• “= =”运算符比较的是两个对象地址是否相同,即引用的是同一个对象。
• equals()方法通常可以用于比较两个对象的内容是否相同。
(2)toString()方法
变量的声明与赋值可以分开Object类的toString()方法是一个非常特殊的
方法,它是一个“自我描述”的方法,该方法返回当前对象的字符串表示。
当使用System.out.println(obj)输出语句中直接打印对象时,或字符串与
对象进行连接操作时,例如:“info” + obj,系统都会都会自动调用对象的
toString()方法。
• Object类中的toString()方法返回包含类名和散列码的字符串,具体格式
如下:
类名@哈希代码值

4、字符串类

Java提供了String、StringBuffer和StringBuilder三个类来封装字符串,并提供了一系
列方法来操作字符串对象,三者区别如下:
• String创建的字符串是不可变的,如果改变字符串变量的值,是在内存中创建一个新的字符串,字符串变量将引用新创建的字符串地址,而原来的字符串在内存中依然存在且内容不变,直至Java的垃圾回收系统对其进行销毁。
• StringBuffer创建的字符串是可变的,当使用StringBuffer创建一个字符串后,该字符串的内容可以通过append()、insert()、setCharAt()等方法进行改变,而字符串变量所引用的地址一直不变,最终调用它的toString()方法转换成一个String对象。
• StringBuilder与StringBuffer类似也是创建一个可变的字符串,不同的是StringBuffer是线程安全的,而StringBuilder没有实现线程安全,因此性能较好。
(1) String类
• String字符串类常用的方法如下:
方法 功能描述
String()
默认构造方法,创建一个包含0个字符的String对象(不是返回null)
String(char[] value)
使用一个字符数组构造一个String对象
String(String s)
使用一个字符串值构造一个String对象
String(StringBufferbs)
根据StringBuffer对象来创建对应的String对象
String(StringBuildersb)
根据StringBuilder对象来创建对应的String对象
char charAt(int index)
获取字符串中指定位置的字符,参数index下标从0开始
int compareTo(String s)
比较两个字符串的大小,相等返回0,不等则返回不等字符编码值的差
boolean endsWith(String s)
判断一个字符串是否以指定的字符串结尾

方法 功能描述
boolean equals() 比较两个字符串的内容是否相等
byte[] getBytes() 将字符串转换成字节数组
int indexOf(String s) 找出指定的子字符串在字符串中第一次出现的位置
int length() 返回字符串的长度
String subString(intbeg) 获取从beg位置开始到结束的子字符串
String subString(intbeg,int end) 获取从beg位置开始到end位置的子字符串
String toLowerCase() 将字符串转换成小写
String toUpperCase() 将字符串转换成大写
static String valueOf(X x) 将基本类型值转换成字符串

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值