一、本章内容
二、Object
Object介绍及方法
Object类是所有类的超类, Object是Java语言中唯一一个没有父类的类。
- 一个类可以不是Object类的直接子类,但一定是Object类的子类,Java中的每一个类都是从Object扩展来的。
- 在Object类中定义的方法,在所有类中都可以使用。
3.public boolean equals(Object obj)
比较两个对象引用的值是否相等(比较哈希地址)
4.public int hashCode()
返回十进制整数,唯一标识一个对象 - public String toString()
返回 类名@hashcode
Object类常用方法
1.public boolean equals(Object obj): 比较两个对象引用的值是否相等(比较地址)。指出调用该方法的对象是否与obj对象相等。即地址是否相等。
2.public int hashCode():该方法返回对象的哈希码,哈希码是一个代表对象的十六进制整数,比作对象的身份证号。在程序运行期间,每次调用同一个对象的hashCode()返回的哈希码必定相同,但是多次执行同一个程序,程序的一次执行和下一次执行期间同一个对象的哈希码不一定相同。实际上默认的哈希码是将对象的内存地址通过某种转换得到的,所以不同对象会有不同的哈希码。
3.blic String toString():返回 类名@hashcode ;事实上返回这样的字符串没有什么实际的意义。一般子类都会覆盖该方法,让它返回有意义的文本。
三、equals() 与 ==的区别
1.理解equals()方法和==运算符的区别是非常重要的。
默认情况下(即没有被重写时)equals()只能比较引用类型,"=="既能比较引用类型又能比较基本类型。
equals()方法从Object类继承,即比较对象引用的值
一般都被子类方法覆盖,不再比较引用的值
2."=="运算符:
比较基本数据类型:相当于算术等号
比较引用数据类型:比较引用的值,不能被覆盖。
四、包装类
包装类简介
基本数据类型不是对象层次结构的组成部分。有时需要像处理对象一样处理这些基本数据类型,可通过相应的“包装类”来将其“包装”。
符串与基本数据类型、包装类型转换图
包装类的6种转换:
1.基本数据类型转换为包装类
2.包装类转换为基本数据类型
3.字符串转换为包装类
4.字符串通转换为基本数据类型
5.包装类转换为字符串
6.基本数据类型转换为字符串
五、字符串类
·字符串是我们在编程中最常使用的一种数据类型,它的表现形式可以分为两种:String和StringBuffer。
·它不属于8种基本的数据类型,而是一种引用类型。
·String对象代表一组不可改变的Unicode字符序列,对它的任何修改实际上又产生一个新的字符串,String类对象的内容一旦被初始化就不能再改变。
·StringBuffer对象代表一组可改变的Unicode字符序列。
·同时,String类是final类型的类。
String的创建:有两种方式:
-静态方式(常用)。像是给变量直接赋值一样来使用。如:String s1 = “abc”; String s2 = “abc”;
-动态方式。动态的内存分配,使用new运算符。如:String s3= new String(“abc”); String s4= new String(“abc”);
那么这两种方式创建的字符串是同一个字符串对象嘛?不,是有区别的。
在于:使用静态方式创建的字符串,在方法区的常量池中只会产生唯一一个字符串对象,使用该方式产生同样一个字符串时,内存中不再开辟另外一块空间,而是两个引用变量指向同一个字符串对象。
使用动态方式创建的字符串,在堆内存中会产生出不同的对象
String对象的创建
String类的构造方法
初始化一个新创建的 String 对象,它表示一个空字符序列。
初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列
分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。
字符串文字常量本身是一个String对象
String类的转换
tring类的构造方法
初始化一个新创建的 String 对象,通过使用指定的charset 解码指定的 byte 数组
初始化一个新创建的 String 对象,通过使用指定的 charset解码指定的 byte 子数组,构造一个新的 String
String类与StringBuilder类的比较
1.Java中定义了String与StringBuffer两个类来封装对
字符串的各种操作
2.String类与StringBuffer类都被放到了java.lang包中
3.两者的主要区别在于
String类对象中的内容初始化不可以改变
StringBuffer类对象中的内容可以改变
4.StringBuffer和StringBuilder都是长度可变的字符串。
5.两者的操作基本相同。
6.两者的主要区别在于
StringBuffer类是线程安全的;
StringBuilder类是线程不安全的。
StringBuffer在JDK1.0中就有,而StringBuilder是
在JDK5.0后才出现的。
StringBuilder的一些方法实现要比StringBuffer快
些。
六、Math类
Math类
Math类提供了大量用于数学运算的方法
Math类是final类,因此不能从Math类继承
Math类中的方法都是static方法,因此不必创建Math类的对象就可以直接使用该类的方法
Math类中的常量
Math类中的常用方法
七、日期类
Date 类
java.util.Date。
Date 类表示指定的时间信息,可以精确到毫秒。
不支持国际化。
该类的许多方法已过时。
获取当前系统时间:
Date类常用方法
Calendar 类
java.util.Calendar。
java.util.GregorianCalendar
常用的日期处理的对象。可以设置自己的时区和国际化格式。
是一个抽象类。
Calendar 抽象类定义了足够的方法,让我们能够表述日历的规则 。
获取Calendar对象的实例
获取Calendar对象的实例:
设置Calendar实例所表示的时间:
获取指定的时间属性
Calendar类常用属性
八、SimpleDateFormat类
SimpleDateFormat类
java.text.SimpleDateFormat 。
一个以与语言环境相关的方式来格式化和分析日期的具体类。是抽象类java.text.DateFormat类的子类。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式 。
SimpleDateFormat类的使用
获取SimpleDateFormat的实例
将日期格式成指定的字符串
将格式化的字符串转换成日期对象
SimpleDateFormat类中的模式字母
九、本章重点总结
Object类
hashcode()、equals()、toString()方法
包装类
包装类、基本数据类型、字符串间的相互转换
字符串类
String、StringBuffer、StringBuilder的常用方法
String与StringBuffer的异同、 StringBuffer与StringBuilder的异同
Math类
Math类的常用方法
日期类型
Date类的使用
Calendar类的使用
SimpleDateFormat类