zoukankan      html  css  js  c++  java
  • work11

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

    /*
    Object 类
    1,它是所有类的一个根类
    2,其他类默认继承Object类
    常用方法:
    1,toString();
    在实际的开发中,我们一般来重写 toString(),之后用来显示属性的值
    2,equals()
    默认比较的是地址
    在实际的开发中,我们一般来重写 equals,之后用来比较对象的内容是否相等
    1,包路径 2,创建对象
    */


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

    package com.hp.Test10;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    
    public class Dome04 {
            public static void main(String[] args) throws ParseException {
                System.out.println("请输入第一个日期(yyyy-mm-dd)");
                Scanner c =new Scanner(System.in);
                String str=c.nextLine();
                System.out.println("请输入第二个日期(yyyy-mm-dd)");
                String str1=c.nextLine();
                //把字符串类型解析为Date类型
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
                Date d= sd.parse(str);
                Date d1=sd.parse(str1);
                long l =0;
                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+"周");
            }
    }


    3,计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。

    package com.hp.Test10;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.Scanner;
    
    public class Dome03 {
        public static void main(String[] args) {
    //        Scanner sc=new Scanner(System.in);
    //        System.out.println("请输入日期:");
    //        String str = sc.next();
    //        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    //        Date date=null;
            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:
                
            }
            return s;
        }
    
    
        }


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

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

    当修改字符串信息时,此时不许创建对象,可以使用stringBuilder对象。
    5,计算自己出生了多少天?

           String str= "1999-7-23 00-00-00";
            SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd");
    //把字符串转换成日期
            Date d = time.parse(str);
    
    //通过该日期得到毫秒值
            long mytime = d.getTime();
    //获取当前时间的毫秒值
            long newtime = System.currentTimeMillis();
    //用当前时间减去出生时间
            long datetime = newtime-mytime;
    //转换为天数
            long day = datetime/1000/60/60/24;
    //输出
            System.out.print(day);
        }


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

           String str= "1999-7-23 00-00-00";
            SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd");
    //把字符串转换成日期
            Date d = time.parse(str);
    
    //通过该日期得到毫秒值
            long mytime = d.getTime();
    //获取当前时间的毫秒值
            long newtime = System.currentTimeMillis();
    //用当前时间减去出生时间
            long datetime = newtime-mytime;
    //转换为天数
            long day = datetime/1000/60/60/24;
    //输出
            System.out.print(day);
        }
  • 相关阅读:
    MySQL(一)序
    Mockito 小结
    如何入门一个开源软件
    面经
    琐碎的想法(四)键盘布局、快捷键的由来
    琐碎的想法(二)网络协议——人们给计算机的一组“约定”
    Java源码赏析(六)Class<T> 类
    Java随谈(五)Java常见的语法糖
    Java随谈(四)JDK对并发的支持
    Event Loop和宏任务微任务
  • 原文地址:https://www.cnblogs.com/lemperor/p/13883744.html
Copyright © 2011-2022 走看看