Object类

Object概述

Java.lang.Object类是java语言中的根类,是所有类的父类

如果一个类没有特别指定父类,那么则默认继承Object类

toString方法

public String toString()   返回该对象的字符串表示

由于toString方法返回的结果是内存地址,而在编写代码中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它

覆盖重写

如果不希望使用toString方法的默认行为,则可以对它进行覆盖重写

例如自定义的Person类:

equals方法

public boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”

调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的

这里的“相同”有默认自定义两种方式

 

默认地址比较

如果没有覆盖重写equals方法,那么Object类中默认进行 = = 运算符的对象地址比较,只要不是同一个对象,结果 必然为false

对象内容比较

如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法

例如:

 

 

Objects类

在JDK7添加了一个Objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是 null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表 示形式、比较两个对象

在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问 题

方法如下:

public static boolean equals(Object a, Object b) :判断两个对象是否相等。

日期时间类

Date类

java.util.Date 类 表示特定的瞬间,精确到毫秒

 

使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造参数,可以自定义毫秒时刻

例如:

常用方法

DateFormat类

java.text.DateFormat 是日期/时间格式化子类的抽象类,通过这个类可以完成日期和文本之

间的转换,也就是可以在Date对象与String对象之间进行来回转换。

 

格式化:按照指定的格式,从Date对象转换为String对象

解析:按照指定的格式,从String对象转换为Date对象

构造方法 

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类 java.text.SimpleDateFormat 这个类需要一个模式(格式)来指定格式化或解析的标准

构造方法为:

public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造 SimpleDateForma

参数pattern是一个字符串,代表日期时间的自定义格式

 

格式规则 

常用的格式规则为:

常用方法

DateFormat类的常用方法有:

使用format方法的代码为:

parse方法

使用parse方法的代码为

Calendar类

Calendar概念:日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装 为静态成员变量,方便获取。日历类就是方便获取各个时间属性的

 

获取方式

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,如下:

Calendar静态方法

public static Calendar getInstance() :使用默认时区和语言环境获得一个日历

例如:

 

常用方法

Calendar类中提供很多成员常量,代表给定的日历字段:

get/set方法

get方法用来获取指定字段的值,set方法用来设置指定字段的值,

代码使用演示:

 

add方法

add方法可以对指定日历字段的值进行加减操作,如果第二个参数为正数则加上偏移量,如果为负数则减去偏移量

代码如:

getTime方法

Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象

 

注意:

  西方星期的开始为周日,中国为周一。

  在Calendar类中,月份的表示是以0-11代表1-12月。

  日期是有大小关系的,时间靠后,时间越大

 

System类

System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:

public static long currentTimeMillis() :返回以毫秒为单位的当前时间

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将数组中指定的数据拷贝到另一个数组中

currentTimeMillis方法

currentTimeMillis方法就是获取当前系统时间与1970年01月01日00:00点之间的毫秒差值

arraycopy方法

数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,

含义分别为:

例如:

将src数组中前3个元素,复制到dest数组的前3个位置上复制元素前:src数组元素[1,2,3,4,5],dest数组元素 [6,7,8,9,10]复制元素后:src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]

StringBuilder类

字符串拼接问题

由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象

StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。

原来StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进 行各种操作。

它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动 维护数组的扩容

构造方法 

根据StringBuilder的API文档,常用构造方法有2个:

 

常用方法

StringBuilder常用的方法有2个:

append方法

append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到 StringBuilder中。例如:

注意::StringBuilder已经覆盖重写了Object当中的toString方法

toString方法

通过toString方法,StringBuilder对象将会转换为不可变的String对象

如:

包装类

概述

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:

 

装箱与拆箱

基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:

装箱:从基本类型转换为对应的包装类对象

拆箱:从包装类对象转换为对应的基本类型

用Integer与 int为例:

基本数值---->包装对象

 

包装对象---->基本数值

自动装箱与自动拆箱

由于经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成

例如:

基本类型与字符串之间的转换 

基本类型转换为String

 

String转换成对应的基本类型

除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型

代码使用(仅以Integer类的静态方法parseXxx为例)如:

注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出 java.lang.NumberFormatException 异常

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值