2021.01.15 java第一阶段10

(一)Date

1、Date 类型的对象用于表示一个特定的瞬间,精确到毫秒。根据构造方法不同,创建的Date对象表示的毫秒值也有差别
2、构造方法:
(1) Date() 创建Date对象,此对象中表示的时间就是1970年1月1日0时0分0秒到创建它刹那的毫秒值 (2)Date(long date) 创建Date对象,此对象表示的时间是参数指定的毫秒值
3、成员方法:
(1)getTime() 获取Date对象中的毫秒值 【Date -> 毫秒】
(2)setTime(long time) 向调用者对象中设置毫秒值时间 【毫秒 -> Date】

二、DateFormat

1、直接打印Date对象,日期格式是英文,语言不友好,需要使用一个对象,将Date对象表示的时间进
行格式化,转化为便于阅读的时间格式
2、DateFormat类是一个抽象类,不能实例化,所以需要使用实现子类来创建对象,有一个已知子类:
SimpleDateFormat
3、由于是将时间本身转化为文本的表现形式,所以DateFormat类型属于text包下,不要导错包
4、DateFormat的构造方法用于给子类访问
5、成员方法:
(1)format(Date date) 将Date对象表示的时间转化为一个日期字符串 Date -> String
(2)parse(String source) 将日期时间字符串解析为Date对象 String -> Date

三、SimpleDateFormat

(一)SimpleDateFormat的使用
1、由于DateFormat类型是抽象类无法创建对象,所以操作都有实现子类SimpleDateFormat来完成
2、SimpleDateFormat对象可以使用抽象父类中继承来的方法
3、SimpleDateFormat既可以完成Date到String的格式化,也可以完成String到Date对象的解析
4、构造方法:
(1)SimpleDateFormat() 使用默认的格式根据语言环境来格式化日期时间
(2)SimpleDateFormat(String pattern) 使用指定的格式根据语言环境来格式化日期时间
5、常用模式:
在这里插入图片描述
(二)练习
键盘录入自己的生日,计算并输出今天是自己出生的第多少天

package com.offcn.demos;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
* 键盘录入自己的生日,计算并输出今天是自己出生的第多少天
*/
public class Demo03_DateExercise {
	public static void main(String[] args) throws ParseException {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请录入自己的生日,按照xxxx-xx-xx输入:");
		String birthStr = sc.nextLine();
		
		//1.将String日期进行解析
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		
		//得到了出生时的毫秒值
		Date date = sdf.parse(birthStr);
		
		//2.获取今天的时间对象
		Date today = new Date();
		//3.分别获取生日毫秒和今天的毫秒之后做换算成天
		
		long birthMillis = date.getTime();
		
		long todayMillis = today.getTime();
		
		System.out.println("今天是出生的第" + (todayMillis - birthMillis) / 1000 /
	60 /60 / 24 + "天");
	}
}

四、Calendar

(一)概述
1、Calendar类型的对象能够表示精确的瞬间,里面包含了很多字段
2、Calendar属于util包,需要导包
3、Calendar是一个抽象类,无法实例化:
(1)使用实现子类来创建对象调用方法
(2)在类中寻找能够返回当前类相关类型的对象的静态方法
4、获取Calendar类型对象的操作:
Calendar.getInstance():可以获取到当前类型实现子类的对象,具有各个日历字段值
(二)get方法
1、直接打印Calendar对象可以看到全部字段的值,通过get方法可以获取指定一个字段的值
2、get(int field) 传入字段的序号,返回相应字段的时间值
特别的,序号不容易记忆,在Calendar类型中,每个字段都有对应的序号,且字段序号都是以字段名
称命名的,他们也都是常量,所以直接【类名.字段名】就可以得到相应字段的序号,再交给get方法就
能得到时间值例如:对象.get(Calendar.YEAR),就能得到具体YEAR的值
3、特别说明:
(1)月份:从0-11,例如现在是3月,获取到的日期值是2
(2)星期几:从周日开始,所以周五返回的日期值是6,周日是1
(三)set方法
1、set方法用于给日历对象中的各个字段赋值,仅仅修改制定的字段值,其他的不动
2、set(int field, int value) 给指定的字段赋上指定的值
3、set(int year, int month, int date, int hourOfDay, int minute, int second) 为指定字段设置值
(四)add方法
1、add(int field, int amount) 给指定的日历字段进行指定的偏移量,如果指定的日历字段无法容纳偏
移量,会根据日历的规则改变时间

五、集合的概述

(一)对象类型的数组
1、定义一个数组,数组的元素全都是引用数据类型
(二)集合的由来
1、对象数组的不足:
(1)无法扩容:数组一旦创建大小是固定的,无法后续修改
(2)结果:每次要向数组中存储数据的时候,如果数组容量不够,还需要我们自己手动扩容(数组的
拷贝),非常麻烦
(3)我们手动扩容的操作实际上和业务逻辑无关
2、解决:
(1)将对象类型的数组,变为某个类型的私有成员变量
(2)对于数组,提前提供好各种各样的方法用于操作数组(这些方法都公有)
(3)如果要添加一个元素,并且目前容量不足,可以自动扩容
(4)综合以上三点,就是集合
(三)集合和数组的区别
1、共同点:
(1)都是用于存储数据的容器
(2)都方便管理零散的数据
2、不同点:
(1)数组的容量是固定的无法变化,集合的容量会自动增大
(2)数组可以存储指定类型的数据(基本数据类型和引用数据类型均可,看数组的类型),而集合只
能存储引用数据类型
(3)方法不同:数组只有一个length,集合有各种各样易用的操作
(四)集合的体系结构(掌握)
在这里插入图片描述

内容概要:本文档详细介绍了在三台CentOS 7服务器(IP地址分别为192.168.0.157、192.168.0.158和192.168.0.159)上安装和配置Hadoop、Flink及其他大数据组件(如Hive、MySQL、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala)的具体步骤。首先,文档说明了环境准备,包括配置主机名映射、SSH免密登录、JDK安装等。接着,详细描述了Hadoop集群的安装配置,包括SSH免密登录、JDK配置、Hadoop环境变量设置、HDFS和YARN配置文件修改、集群启动与测试。随后,依次介绍了MySQL、Hive、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala和Flink的安装配置过程,包括解压、环境变量配置、配置文件修改、服务启动等关键步骤。最后,文档提供了每个组件的基本测试方法,确保安装成功。 适合人群:具备一定Linux基础和大数据组件基础知识的运维人员、大数据开发工程师以及系统管理员。 使用场景及目标:①为大数据平台建提供详细的安装指南,确保各组件能够顺利安装和配置;②帮助技术人员快速掌握Hadoop、Flink等大数据组件的安装与配置,提升工作效率;③适用于企业级大数据平台的建与维护,确保集群稳定运行。 其他说明:本文档不仅提供了详细的安装步骤,还涵盖了常见的配置项解释和故障排查建议。建议读者在安装过程中仔细阅读每一步骤,并根据实际情况调整配置参数。此外,文档中的命令和配置文件路径均为示例,实际操作时需根据具体环境进行适当修改。
在无线通信领域,天线阵列设计对于信号传播方向和覆盖范围的优化至关重要。本题要求设计一个广播电台的天线布局,形成特定的水平面波瓣图,即在东北方向实现最大辐射强度,在正东到正北的90°范围内辐射衰减最小且无零点;而在其余270°范围内允许出现零点,且正西和西南方向必须为零。为此,设计了一个由4个铅垂铁塔组成的阵列,各铁塔上的电流幅度相等,相位关系可自由调整,几何布置和间距不受限制。设计过程如下: 第一步:构建初级波瓣图 选取南北方向上的两个点源,间距为0.2λ(λ为电磁波波长),形成一个端射阵。通过调整相位差,使正南方向的辐射为零,计算得到初始相位差δ=252°。为了满足西南方向零辐射的要求,整体相位再偏移45°,得到初级波瓣图的表达式为E1=cos(36°cos(φ+45°)+126°)。 第二步:构建次级波瓣图 再选取一个点源位于正北方向,另一个点源位于西南方向,间距为0.4λ。调整相位差使西南方向的辐射为零,计算得到相位差δ=280°。同样整体偏移45°,得到次级波瓣图的表达式为E2=cos(72°cos(φ+45°)+140°)。 最终组合: 将初级波瓣图E1和次级波瓣图E2相乘,得到总阵的波瓣图E=E1×E2=cos(36°cos(φ+45°)+126°)×cos(72°cos(φ+45°)+140°)。通过编程实现计算并绘制波瓣图,可以看到三个阶段的波瓣图分别对应初级波瓣、次级波瓣和总波瓣,最终得到满足广播电台需求的总波瓣图。实验代码使用MATLAB编写,利用polar函数在极坐标下绘制波瓣图,并通过subplot分块显示不同阶段的波瓣图。这种设计方法体现了天线阵列设计的基本原理,即通过调整天线间的相对位置和相位关系,控制电磁波的辐射方向和强度,以满足特定的覆盖需求。这种设计在雷达、卫星通信和移动通信基站等无线通信系统中得到了广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值