作业day11

1,简述String类中的equals方法与Object类中的equals方法的不同点。
String类中equals()方法比较的是两个对象的内容是否相同
Object类中的equals()方法比较的是两个对象的地址是否一样。

2,编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几;
public class Demo {
public static void main(String[] args) throws ParseException {
Scanner sc=new Scanner(System.in);
System.out.println("请输入时间(以年-月-日的格式):");
String date1 = sc.next();
SimpleDateFormat sim=new SimpleDateFormat("yyyy年MM月dd日");

Calendar cal=Calendar.getInstance();
cal.setTime(sim.parse(date1));
int i = cal.get(Calendar.YEAR);
if (i%4 == 0&&i%100!=0) {
System.out.println("为闰年");
}else {
System.out.println("不为闰年");
}

int i1 = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("该月有"+i1+"天");
System.out.println("该日是星期"+cal.get(Calendar.DAY_OF_WEEK));
}
}

3,计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。
public class Demo {
public static void main(String[] args) throws ParseException {
String date1="2000年2月15日";
String date2="2020年12月12日";
SimpleDateFormat sim=new SimpleDateFormat("yyy年MM月dd日");
Date date3 = sim.parse(date1);
Date date4 = sim.parse(date2);
long time = date3.getTime();
long time1 = date4.getTime();
long time2=time1-time;
long day=time2/1000/60/60/24;
long week=day/7;
System.out.println("2000年2月15日到2020年12月12日的天数间隔:"+day);
System.out.println("2000年2月15日到2020年12月12日的周数:"+week);
}
}

4,简述StringBuilder类与string类的区别
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。
StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值,当修改 StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定 StringBuilder 类的容量。
总结后大概为这3点:
string 对象是恒定不变的,StringBuilder对象表示的字符串是可变的。StringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。
对于简单的字符串连接操作,在性能上StringBuilder并不一定总是优于string。因为StringBuilder对象创建代价较大,在字符串目标连接较少的情况下,过度滥用StringBuilder会导致性能的浪费,只有大量的或者无法预知次数的字符串操作,才考虑StringBuilder来实现。
当修改字符串信息时,此时不许创建对象,可以使用StringBuilder对象。

5,计算自己出生了多少天?
public class Demo {
public static void main(String[] args) throws ParseException {
Scanner sc=new Scanner(System.in);
System.out.println("输入出生的时间(格式yyyy年MM月dd日):");
String date1 = sc.next();
SimpleDateFormat sim = new SimpleDateFormat("yyyy年MM月dd日");
Date time1 = sim.parse(date1);
long l = System.currentTimeMillis();
Date date2=new Date(l);

long time2 = date2.getTime();
long time3 = time1.getTime();

long l1 = time2-time3;
System.out.println("出生了"+l1/1000/60/60/24+"天");
}
}

6,求一个for循环 执行时间?
public class Demo {
public static void main(String[] args) {
Date date=new Date();
long time = System.currentTimeMillis();
for (int i = 0; i <1000 ; i++) {
System.out.println("hhh");
}
long time1 = System.currentTimeMillis();
long time2=time1-time;
System.out.println("这个for循环执行时间为:"+time2+"毫秒");
}
}

原文地址:https://www.cnblogs.com/gxt123/p/13882952.html