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);
}

work11的更多相关文章

  1. java学习笔记(详细)

    java平台 1.J2SE java开发平台标准版 2.J2EE java开发平台企业版 java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序.不同系统上要安装对应的虚 ...

  2. BUCT20180814邀请赛 Solution

    A:SUM 水. #include<bits/stdc++.h> using namespace std; #define N 100010 typedef long long ll; i ...

  3. 3、RabbitMQ-work queues 工作队列

    work queues 工作队列 1.模型图: 为什么会出现 work queues? 前提:使用 simple 队列的时候 我们应用程序在是使用消息系统的时候,一般生产者 P 生产消息是毫不费力的( ...

随机推荐

  1. 你的 Sleep 服务会梦到服务网格外的 bookinfo 吗

    简介: ASM 产品是基于社区 Istio 定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力.通过托管模式,解耦了 Istio 组件与所管理的 K8s 集群的生命周期管理 ...

  2. All in one:如何搭建端到端可观测体系

    ​简介:一文看懂可观测! 作者:西杰 & 白玙 可观测的前生今世 系统的可观测与故障可分析作为系统运维中重要的衡量标准,随着系统在架构.资源单位.资源获取方式.通信方式演进过程,遇到了巨大挑战 ...

  3. [FAQ] Win10 WSL Ubuntu 根目录实际位置

    1. 运行(win+R),直接输入 \\wsl$ 进入Ubuntu的目录. 2. 或者文件夹里同样输入  \\wsl$ 进行查找. Refer:Win10 WSL 路径 Link:https://ww ...

  4. WPF 对接 Vortice 调用 D2D 使用 IWICBitmap 离屏渲染

    通过 Vortice 库可以使用非常底层的方式调用到 Direct2D1 进行渲染,本文将使用 D2D 离屏渲染到 IWICBitmap 上,再使用一点点反射黑科技,直接将此 IWICBitmap 对 ...

  5. Win10下小米路由器4A百兆版刷Openwrt固件【图片详细版】

    将原来的小米路由器换成了华为,早就听闻刷软路由可以实现去广告,解锁灰色歌单等诸多骚操作.就来榨取这个小米4A的剩余价值来着的. 注意 1. 必须使用路由模式,中继模式是打不开telnet的 更新固件 ...

  6. C#的基于.net framework的Dll模块编程(五) - 编程手把手系列文章

    这次继续这个系列的介绍: 一.使用DLL类库的方法: 1) 静态类: 先引用该类库,然后声明命名空间,然后就能够进行使用了. 2) 动态类: 先引用该类库,然后声明命名空间,然后能够进行使用了. 3) ...

  7. 九、DataArts Studio

    功能总览: 基本概念: 主题设计:通过分层架构表达对数据的分类和定义,帮助理清数据资产,明确业务领域和业务对象的关联关系. 主题域分组:基于业务场景对主题域分组. 主题域:互不重叠数据的高层面的数据分 ...

  8. 虚拟机中安装mysql 完整教程( CentOS7 版本)

    一.检查是否安装了Mysql Yum检查 yum list installed | grep mysql 安装则直接删除 yum remove mysql-community-client.x86_6 ...

  9. 从零开始写 Docker(十四)---重构:实现容器间 rootfs 隔离

    本文为从零开始写 Docker 系列第十四篇,实现容器间的 rootfs 隔离,使得多个容器间互不影响. 完整代码见:https://github.com/lixd/mydocker 欢迎 Star ...

  10. OpenTelemetry agent 对 Spring Boot 应用的影响:一次 SPI 失效的

    背景 前段时间公司领导让我排查一个关于在 JDK21 环境中使用 Spring Boot 配合一个 JDK18 新增的一个 SPI(java.net.spi.InetAddressResolverPr ...