大家好,欢迎来到IT知识分享网。
1,简述String类中的equals方法与Object类中的equals方法的不同点。
①Java中其他类都是Object类的子类,Object类中的equals()方法比较的是两个对象的地址。
②String中equals()方法比较的是两个对象的值是否相同
2,编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几;
package demo; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; class WeekCaseException extends Exception { public WeekCaseException() { } public WeekCaseException(String me){ super(me); } } class Demo01{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入日期:"); String str = sc.nextLine(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = sdf.parse(str); } catch (ParseException e) { e.printStackTrace(); } //把Date类型转为Calendar类型 Calendar c = Calendar.getInstance(); c.setTime(date); //提取年月日 int year = c.get(Calendar.YEAR); GregorianCalendar gc = new GregorianCalendar(); if(gc.isLeapYear(year)){ System.out.println(year+"是闰年"); }else{ System.out.println(year+"不是闰年"); } //获得月字段天数的最大值 int day = c.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println("该月有"+day+"天"); //获得周几 int i = c.get(Calendar.DAY_OF_WEEK) - 1; String week = ""; try { week = matching(i); } catch (Exception e) { e.printStackTrace(); } System.out.println("今天是周"+week); } public static String matching(int i) throws Exception { String s = ""; switch (i) { case 0: s = "日"; break; case 1: s = "一"; break; case 2: s = "二"; break; case 3: s = "三"; break; case 4: s = "四"; break; case 5: s = "五"; break; case 6: s = "六"; break; default: throw new WeekCaseException("超出了正常一周范围"); } return s; } }
3,计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Demo02 { public static void main(String[] args) throws ParseException { String s1 = "2020-10-26"; String s2 = "2019-11-06"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //把字符串时间解析为Date对象 Date d1 = sdf.parse(s1); Date d2 = sdf.parse(s2); //分别获得两个日期的long类型毫秒数 long date1 = d1.getTime(); long date2 = d2.getTime(); //两个时间相隔的毫秒数 long d = date1 - date2; //一天的毫秒数 final long day = 86400000; //相隔多少天 System.out.println(s1+"与"+s2+"相隔"+(d / day)+"天,相隔"+(d/day/7)+"周"); } }
4,简述StringBuilder类与string类的区别
①工作原理不同:String 类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET 框架下,这个操作实在是划不来。因为系统先是把 两个字符串写入内存,接着删除原来的 String 对象,然后再创建一个 String 对象,并读取内存 中的数据赋给该对象。这一来二去的,耗了不少时间。而使用 System.Text 命名空间下面的 StringBuilder 类就不是这样了,它提供的 Append 方法,能够在已有对象的原地进行字符串的修改,简单而且直接。
5,计算自己出生了多少天?
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class Demo03 { public static void main(String[] args) throws Exception { System.out.println("请输入出生日期 格式 YYYY‐MM‐dd"); // 获取出生日期,键盘输入 String birthdayString = new Scanner(System.in).next(); //创建SimpleDateFormat对象实例并定义好转换格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 调用方法parse,字符串转成日期对象 Date birthdayDate = sdf.parse(birthdayString); // 获取今天的日期对象 Date todayDate = new Date(); // 将两个日期转成毫秒值,Date类的方法getTime long birthdaySecond = birthdayDate.getTime(); long todaySecond = todayDate.getTime(); long secone = todaySecond - birthdaySecond; if (secone < 0) { System.out.println("你还没出生呢"); } else { System.out.println("你已经出生"+ secone / 1000 / 60 / 60 / 24+"天了!"); } } }
6,求一个for循环 执行时间?
public class Demo04 { public static void main(String[] args) { int a = 0; int x = 10000; for (int i = 0; i < x; i++) { a = 2*x; } System.out.println(a/1000); } }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32452.html