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. dubbo-go v3 版本 go module 踩坑记

    简介: 该问题源于我们想对 dubbo-go 的 module path 做一次变更,使用 dubbo.apache.org/dubbo-go/v3 替换之前的 github.com/apache/d ...

  2. [Java]线程生命周期与线程通信

    [版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18162522 出自[进步*于辰的博客] 线程生命周期与 ...

  3. CF1912K

    题意:给定一个长度为 n 的序列,求有多少个子序列满足该子序列内任意相邻 3 个数的和为偶数. 只与奇偶有关,所以可以把状态转化为 01 的. 设 \(f[i][x][y]\) 表示在前 i 个数中, ...

  4. Competition Set - 模拟赛 I

    HNOI2017 Day2 2023-06-10 注:Day2T2换为BJOI2017Day2T1,以匹配学习进度 A.大佬 B.抛硬币 C.喷式水战改 A 大佬 你需要用 \(n\) 天挑战一名大佬 ...

  5. ubuntu_24.04 Noble LTS安装docker desktop启动无窗口及引擎启动失败的解决方法

    ubuntu_24.04 LTS安装docker desktop启动无窗口及引擎启动失败的解决方法 1. 安装docker desktop后启动无窗口 现象: 执行sudo apt install . ...

  6. 使用 Docker 部署 TaleBook 私人书籍管理系统

    1)项目介绍 GitHub:https://github.com/talebook/talebook Talebook 是一个简洁但强大的私人书籍管理系统.它基于 Calibre 项目构建,具备书籍管 ...

  7. 超级简单实用的CSS3动画,增添网页效果

    有时候做网页,如果都写成静态的没有动态效果,犹如一张张图片,没有视觉感受,没有达到很好的视觉效果. 其实一些简单的CSS3动画,可以增添网页的动态感,使自己设计的网页更有视觉享受.1.图片有一定角度的 ...

  8. SQL Server实战六:T-SQL、游标、存储过程的操作

      本文介绍基于Microsoft SQL Server软件,实现数据库T-SQL语言程序设计,以及游标的定义.使用与存储过程的创建.信息查找的方法. 目录 1 计算1-100间所有可被3整除的数的个 ...

  9. 鸿蒙stage模型

    app.json5全局的配置文件 icon和label是应用列表的 module.json5模块配置文件 中有一个abilities其中的icon和label才是桌面的图标和名称 日志的话就是hail ...

  10. 初识上位机(上):搭建PLC模拟仿真环境

    大家好,我是Edison. 作为一个工业自动化领域的程序员,不懂点PLC和上位机,貌似有点说不过去.这里我用两篇小文带你快速进入上位机开发领域.后续,我会考虑再出一个系列文章一起玩工控上位机. 什么是 ...