1.Object类
1)toString()方法
打印一个已创建的对象名等同于 对象名.toString()
开发中需要得到对象的属性已字符串表示,需要重写toString()方法
2)equals()方法
默认比较的是地址值,返回的是一个 boolean 值
需要进行对象的内容进行比较(比较属性),需要重写equals()方法,
2.时间日期类
2.1)Date类
-表示特定时间,有特有格式(中国东八区,基准时间+8个小时)
-多种方法过时,由DateDormat类中的方法代替
1)new Date();打印对象名得到 当前系统时间(英文)
2)new Date(0L);打印对象名得到 标准基准时间 即1970年1月1日00:00:00 GMT
3)new Date(86400000L);long类型数据,86400000L表示一天的毫秒值,
打印得到 基准时间推迟一天
4)成员方法
public long getTime() 日期对象转换成对应的时间毫秒值
long 变量名 = 对象名.getTime();
2.2 DateDormat类
-DateDormat类是一个日历类,也是一个抽象类,抽象类无法创建对象
-子类 impleDateFotmat 类,子类创建对象
1)格式化
按照指定的格式,从Date对象转换为String对象.
1.创建子类对象
2.创建Date对象
3.对象名.format("yyyy年MM月dd日 HH时mm分ss秒"),括号内填 (指定时间格式)
把它交给String对象;
String date = 对象名.format("yyyy年MM月dd日 HH时mm分ss秒");
打印 date 得到 2018年10月24日 10时24分00秒
2)解析
按照指定的格式,从String对象转换为Date对象
1.创建子类对象
2.创建Date对象
3.对象名.format("yyyy年MM月dd日 HH时mm分ss秒"),括号内填date对象名也可以
把它交给Date对象;
String date = 对象名.format("2018年10月24日 10时24分00秒");
打印date 得到 Sun Aug 08 15:51:54 CST 2088
[1注意事项1]
做解析的时候,所用的方法后都要在方法名() 括号后面加上 throws ParseException
3.System类
-此类不能被实例化,是一个太监类
-不能被继承,不能创建对象
-所有方法都用 static 关键字进行修饰,静态方法可以通过 类名称.方法名() 进行调用
3.1)currentTimeMillis 方法
返回以毫秒为单位的当前时间。用数据类型 long 进行接收.
3.2)arraycopy 方法
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
(源数组,源数组索引起始位置,目标数组,目标数组索引起始位置,复制元素个数)
4.StringBuilder类
-String类型的字符串是常量,创建之后不能更改,字符串底层被final修饰.
-StringBuilder类型的字符串可以发生改变,默认16字符空间,超过自动扩充.
4.1)构造方法
1.StringBuilder(),空参
2.StringBuilder(String str),字符串参数
4.2)方法
1.append(...),添加任意数据类型的字符串形式
使用:对象名.append(任意数据类型的字符串参数);
链式编程: 对象名.append(参数1).append(参数2).append(参数3)...;(返回的是对象)
2.toString(),将当前StringBuilder对象转换为String对象
String str = bu.toString();// StringBuilder转换为String对象
备注:StringBuilder已经覆盖重写了Object当中的toString方法。
5.包装类
5.1)装箱与拆箱
1.装箱:从基本类型转换为对应的包装类对象。 基本类型的数据 --> 包装类
-valueOf(int i)/valueOf(Stirng str)// 返回一个表示指定的 int/String 值
Integer in = new Integer(1);
Integer in2 = Integer.valueOf(int或者String);
2.拆箱:从包装类对象转换为对应的基本类型。 包装类 --> 基本类型的数据
-intValue()// 以 int 类型返回该 Integer 的值。
int i = in.intValue();
5.2)自动装箱与自动拆箱
从Java 5(JDK 1.5) 开始,有自动装拆
1.自动装箱
-直接把int类型的整数赋值包装类
Integer in = 1; 就相当于 Integer in = new Integer(1);
2.自动拆箱
in是包装类,无法直接参与运算,可以自动转换为基本数据类型,在进行计算
int a = in + 2;// 3
---------------
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候需要调用toString()方法?
打印对象默认得到的是地址值,得到内容可能是该类重写了toString方法,
打印的时候就调用了.
2.我们为什么要重写equals()方法?
在程序中,我们的需求不是比较地址值,而是比较属性是否相同
3.==和equals()的区别?
== 在基本数据类型是数据值的比较,
== 在引用数据类型是时地址值的比较,
equals方法比较的是引用数据类型,继承Object的equals底层也是==实现的,用于比较两个对象的内容是否相等
4.String和StringBuilder的区别?
String存储的字符串不可改变
StringBuilder储存的字符串可以发生改变,默认16字符,超出自动扩充
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
基本数据类型变成包装类(引用数据类型),给对象使用
区别:
1.基本类型存储在堆里,包装类型存储在栈里.
2.包装类是对象,拥有方法和字段,对象的调用是引用对象的地址。
3.基本类型是值的传递,包装类是地址值传递。
4.ArrayList<E>,泛型不能使用基本数据类型
自动装箱:基本数据类型自动转换成为对应的包装类
自动拆箱:包装类自动转换成为对应的基本数据类型 |