疯狂JAVA讲义基础类库(第七章)学习笔记

一 简单零碎的知识汇总

1)String类重写了HashCode()方法,改为根据字符序列计算HashCode()方法。

2)Object类提供了如下几个方法:

Object类还提供了wait(),notify(),notifyAll()几个方法,用于控制线程的暂停与运行。

Object还提供了一个protected修饰的clone()方法,该方法只能被子类重写或调用。

3)如下程序示范了Objects工具类的用法:

4)BigDecimal类提供了add(),subtract(),multiply(),divide(),pow()等方法对精确浮点数进行常规算数运算。

5)Calendar.MONTH字段代表的月份,月份的起始值不是1,而是0。所以设置8月时,用7而不是8。

6)String类提供如下几个特殊方法使用正则表达式:

7)正则表达式语法:

使用正则表达式:

二 易混淆出错的难点汇总

1)自定义类实现克隆的步骤如下:

注意体会如下示例代码:

class Address
{
	String detail;
	public Address(String detail)
	{
		this.detail = detail;
	}
}
// 实现Cloneable接口
class User implements Cloneable
{
	int age;
	Address address;
	public User(int age)
	{
		this.age = age;
		address = new Address("广州天河");
	}
	// 通过调用super.clone()来实现clone()方法
	public User clone()
		throws CloneNotSupportedException
	{
		return (User)super.clone();
	}
}
public class CloneTest
{
	public static void main(String[] args)
		throws CloneNotSupportedException
	{
		User u1 = new User(29);
		// clone得到u1对象的副本。
		User u2 = u1.clone();
		// 判断u1、u2是否相同
		System.out.println(u1 == u2);      //①
		// 判断u1、u2的address是否相同
		System.out.println(u1.address == u2.address);     //②
	}
}

2)关于String,StringBuilder,StringBuffer类。

     1.String对象是不可变类,一旦一个String对象被创建,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。

     2.StringBuffer对象代表一个字符序列可变的字符串,通过append(),insert(),reverse(),setCharAt(),setLength()等方法可以改变            这个字符串对应的字符序列。一旦通过StringBuilder生成了最终想要的字符串序列,就可以调用toString()方法将其转换。

     3.StringBuilder与StringBuffer基本相似,两个类构造器和方法也基本相同。不同的是StringBuffer是线程安全,StringBuilder            则没有实现线程安全功能,所以性能略高。

3)创建BigDecimal对象时,一定要使用String对象作为构造器参数,而不是直接使用double数字,否则会发生精度丢失问题。

      如果必须使用double浮点数作为参数创建BigDecimal对象,不要使用构造器,而要通过BigDecimal.valueOf(double value)静        态方法来创建BigDecimal对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值