一、Object 对象
包名所在地:java.lang.Object
描述:所有类的父类,所有方法的子类都可以使用,再对象实例化的时候,最终的父类就是Object。若一个类没有指向父类,那么就会默认指向Object。
1.Object中的equals;
此处需要注意的是:==和equals的区别,之前的博客也有做了相对应的题目,这里我在啰嗦一下:比较地址值,基础数据类型比较值,应用数据类型比较地址,equals在没有覆盖的时候,和一样,但是覆盖之后,就是比较两个对象的内容了。
2.Object终的toString:返回该字符串的对象表示,注意:这里我就遇到过,搞了半天,很难受,希望大家别再遇到,我大概说一下。当你创建一个用户类,构造它的方法,一定要加上这个toString的,生成它的方法,不然当你对数组元素进行遍历或者输出的时候,输出的是乱码,那东西应该叫乱码还是地址值,反正,这里多注意。
二。Date类
1.包名所在地:java.lang.Date
2.描述:表述指定的时间,精确到毫秒;
3.主要经常使用的方法:
public Date() 分配Date对象,初始化时间,精确到毫秒
public Date(long date)分配Date时间,表示从1970年1月1日 00:00:00 GMT 以来指定的时间 精确到毫秒
使用方法:无参指定当前系统时间,有参的自定义时间
4.常用的方法:getTime() 把时间对象转化为毫秒值
三、DateFormat类:
1.包名所在地:java.text.DateFormat
2.作用:时间\日期格式化的子类,可以实现时间和文本的格式化,也是可以Date和String之间相互转化,
3.由于DateFormat属于一个抽象类,抽象类不能直接调用,所以我们需要调用它下方的SimplDateFormat实现类,它的作用主要是格式化一个时间,设置一个时间格式,比如:-02-01用SimplDateFormat 设置的时间格式就是:yyyy-MM-dd,注:y表示年,M表示月、d表示日、H表示小时、m表示分钟、s表示秒 S表示毫秒,**区分大小写
4.Dateformat常用方法:
format方法:时间转化为字符串
parse方法:字符串转化为时间
四、Calendar日历类
1.包名所在地:java\util.Calendar
2.作用:Date类出现之后出现,代替了很多Date 的方法,主要是将所有可能使用到的时间都封装成静态成员,fina修饰的时间,不可改变,这样容易获取,方便获取所有的时间属性,
3.Calendar属于一个抽象类,不能直接调用,它的调用方式比较特殊:
Calendar c = Calendar.getInstance();这里需要注意下,它不能用常用的方式创建对象。
4.常用的方法:get返回当前系统的日历,set自定义时间日历,add根据日历的规则,为给定的日历添加或者减去一个时间;getTime返回日历,从历元到现在的时间偏移量,就是从历元到现在的时间差额有多少,返回Date时间对象的毫秒值
五、System类
1.包名所在地:java.lang.System
2.作用:获取系统操作
3.常用方法:
currentTimeMillis(),返回当前时间的毫秒值
arraycopy把一个数组复制到另外一个数组里面去,这里有五个参数:src源数组,srcPos源数组索引起始位置,dest目标数组,destPos目标数组的起始位置,length复制元素个数
4.首先对String类api给出的解释是:String是常量,不可改变的,每次拼接都需要new一个新的对象,耗时,非空间,由此引入了StringBuilder,
StringBuffer解释:属于一个缓冲区,就是一个容器,可以装很多字符串的容器,并对字符串进行操作,内部拥有一个数组存储字符串,可扩容。
5.常用方法:
append:添加任意长度的字符串,并返回对象本身,
toString:将StringBuffer转化为String
六、包装类
1.之前的博客也有说明了包装类:这里在强调一次:
基础类–包装类
int --Integer
byte–Byte
long–Long
double-Double
float-Float
boolean–Boolean
char–Char
short–Short
2.装箱与拆箱:
基础类型转化为包装类属于装箱
包装类转化为基础类属于拆箱
3.在jdk5之后产生了一个新特性,自动装箱和自动拆箱:自动装箱:调用intValue方法。
4.基础数据类型和string的转化方式
string转化为基础数据类型:调用parseXxx方法,
基础类型转化为String int= 123+“”,加一个“ ”即可
今日题目:
一、简述String类中的equals方法与Object类中的equals方法的不同点。
三、看下列程序,不运行说结果,写出答案后,并运行看看自己给的答案与运行结果是否正确,并分析原因。
1.String s1 = new String(“abc”);
String s2 = “abc”;
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
2.String s1 = “abc”;
String s2 = “abc”;
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
3. String s1 = “a” + “b” + “c”;
String s2 = “abc”;
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
4. String s1 = “ab”;
String s2 = “abc”;
String s3 = s1 + “c”;
System.out.println(s3 == s2);
System.out.println(s3.equals(s2));
练习四:StringBuilder类与String类的区别
五、请用代码实现:获取当前的日期,并把这个日期转换为指定格式的字符串,如2030-06-06 06:06:06。
六、使用SimpleDateFormat类,把-05-04转换为05月04日。
七、用程序判断2月14日是星期几。
练习八:System类arraycopy方法的使用
九、请使用代码实现
分别使用String的+=和StringBuilder的append方法对字符串做10000次拼接,计算String拼接10000次花费时间与StringBuilder拼接10000次所花费时间并打印。
十、分析以下需求,并用代码实现:
(1)定义数字字符串数组{“010”,“3223”,“666”,“7890987”,“123123”,“3443”};
(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出;
(3)如:010 是对称的,3223 是对称的,123123 不是对称的;
(4)最终打印该数组中对称字符串的个数。