zoukankan      html  css  js  c++  java
  • JAVA基础11

    1, 简述String类中的equals方法与Object类中的equals方法的不同点。

    String类中的equals方法是比较两个对象中的内容是否相同。

    Object类中的equals方法是比较两个对象是否是同一个对象。

    2,编写程序,(Scanner)当以年--日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几;

    package Demo3;
    
    import sun.misc.Cleaner;
    
    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 mess){
            super(mess);
        }
    
    }
    
    public class Demo1 {
        public static void main(String[] args) throws ParseException {
            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 = pipei(i);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            System.out.println("今天是周"+week);
    
        }
        public static String pipei(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,计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。

    package Demo3;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    
    public class Demo2 {
        public static void main(String[] args) throws ParseException {
            System.out.println("请输入第一个日期(yyyy-MM-dd)");
            Scanner sc = new Scanner(System.in);
            String str = sc.nextLine();
            System.out.println("请输入第二个日期(yyyy-MM-dd)");
            String str1 = sc.nextLine();
            //把字符串类型解析为Date类型
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date d = sdf.parse(str);
            Date d1 = sdf.parse(str1);
            Long l;
            if (d.after(d1)){
                l = d.getTime()-d1.getTime();
            }else{
                l = d1.getTime()-d.getTime();
            }
            long a = 1000*60*60*24;//一天的时间
            long day = l/a;
            long week = day/7;
    
    
            System.out.println("两个日期相隔"+day+"天");
            System.out.println("相隔"+week+"周");
        }
    }

    4,简述StringBuilder类与string类的区别

    String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。

    StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值,当修改 StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定 StringBuilder 类的容量。

    5,计算自己出生了多少天?

    package Demo3;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    
    public class Demo3 {
        public static void main(String[] args) throws ParseException {
            // 1、使用Scanner类中的方法next,获取出生日期
            Scanner sc = new Scanner(System.in);
            System.out.println("请输出您的出生日期,格式:yyyy-MM-dd");
            String birthdayDateString = sc.next();
            // 2、使用DateFormat类中的方法parse,把字符串的出生日期,解析为Date格式的出生日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date birthdayDate = sdf.parse(birthdayDateString);
            // 3、把Date格式的出生日期转换为毫秒值
            long birthdayDateTime = birthdayDate.getTime();
            // 4、获取当前的日期,转换为毫秒值
            long todayTime = new Date().getTime();
            // 5、使用当前日期的毫秒值-出生日期的毫秒值
            long time = todayTime - birthdayDateTime;
            // 6、把毫秒值转换为天(s / 1000 / 60 / 60 / 24)
            System.out.println("您已经出生了:" + time / 1000 / 60 / 60 /24 + "天");
        }
    
    }

    6,求一个for循环 执行时间?

    package Demo3;
    
    public class Demo4 {
        public static void main(String[] args) {
            long ti = System.currentTimeMillis();
            for(int i=Integer.MIN_VALUE;i<Integer.MAX_VALUE;i++){
                if(i==i) continue;//加判断
            }
            System.out.println(System.currentTimeMillis()-ti);
    
    
            ti = System.currentTimeMillis();
            for(int i=Integer.MIN_VALUE;i<Integer.MAX_VALUE;i++){
                continue;
            }
            System.out.println(System.currentTimeMillis()-ti);
        }
    
    }
  • 相关阅读:
    LeetCode翻转矩阵后的得分-Python3<六>
    LeetCode子域名访问计数-Python3.7<五>
    LeetCode 键盘行-Python3.7<四>
    流程控制<二>
    Numbers、Strings、Lists 笔记<一>
    LeetCode-数组操作-Python<三>
    LeetCode链表相加-Python<二>
    LeetCode两数之和-Python<一>
    使用Django创建网站项目<二>
    Windows下vue-cli脚手架搭建入门<一>
  • 原文地址:https://www.cnblogs.com/coder-ahao/p/13881607.html
Copyright © 2011-2022 走看看