51,396
社区成员




/**
java.util.Calendar类:日历类
我们可以使用Calendar类中的方法获取日历上的字段(年,月,日,时,分,秒...)
我们可以使用Calendar类中的方法修改日历上字段的值 2019年-->2029年 11月-->2月
我们可以使用Calendar类中的方法把日历上的字段的值增加/减少 2019-5=2014 11月+3月=2月
我们可以使用Calendar类中的方法把日历对象转换为日期Date对象
Calendar 类是一个抽象类,无法直接创建对象,在Calendar 类中有一个静态方法,返回了Calendar 类的子类对象
static Calendar getInstance()
使用默认时区和语言环境获得一个日历。
注意:
西方月份:0-11月
东方月份:1-12月
西方星期:星期日-星期六
东方星期:星期一-星期日
*/
public class Demo01Calendar{
/**
getInstance方法的源码:
Calendar cal = null;
cal = new GregorianCalendar(zone, aLocale);
*/
Calendar c = Calendar.getInstance();
System.out.println(c);
}
/**
Calendar类中的常用成员方法:
int get(int field) 获取指定日历字段的值
void set(int field, int value)将给定的日历字段设置为给定值。
void add(int field, int amount) 把日历字段增加或者减少指定的值
Date getTime() 把日历对象转换为日期对象
注意:
将以上方法参数int field,让我们传递指定的日历字段,这些日历字段在Calendar类中被定义为了常量
public final static int YEAR = 1;
public final static int MONTH = 2;
public final static int DATE = 5;
public final static int DAY_OF_MONTH = 5;
public final static int HOUR = 10;
public final static int MINUTE = 12;
public final static int SECOND = 13;
public final static int MILLISECOND = 14;
*/
public class Demo02Calendar {
public static void main(String[] args) {
//获取Calendar类的子类对象
Calendar c = Calendar.getInstance();
show04(c);
}
/**
Date getTime() 把日历对象转换为日期对象
*/
private static void show04(Calendar c) {
Date date = c.getTime();
System.out.println(date);//Tue Apr 27 23:19:10 CST 2021
}
/**
void add(int field, int amount) 把日历字段增加或者减少指定的值
参数:
int field:指定的字段
int amount:给字段增加|减少的值
传递正数:增加
传递负数:减少
*/
private static void show03(Calendar c) {
//把年-5年
c.add(Calendar.YEAR,-5);
//把月+4个月
c.add(Calendar.MONTH,4);
//把日-10日
c.add(Calendar.DATE,-10);
int year = c.get(Calendar.YEAR);
System.out.println(year);//2016 2017
int month = c.get(Calendar.MONTH);
System.out.println(month);//8
int date = c.get(Calendar.DATE);
System.out.println(date);//17
}
/**
void set(int field, int value)将给定的日历字段设置为给定值。
参数:
int field:指定的字段
int value:指定的值
同时设置年月日,建议使用以下方法:
void set(int year, int month, int date) 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
*/
private static void show02(Calendar c) {
//把年设置为8888年
c.set(Calendar.YEAR,8888);
//把月设置为8月
c.set(Calendar.MONTH,8);
//设置日为8日
c.set(Calendar.DATE,8);
//同时设置年月日为9999-9-9
c.set(9999,9,9);
int year = c.get(Calendar.YEAR);
System.out.println(year);
int month = c.get(Calendar.MONTH);
System.out.println(month);
int date = c.get(Calendar.DATE);
System.out.println(date);
}
/**
int get(int field) 获取指定日历字段的值
参数:
int field:传递指定的日历字段
*/
private static void show01(Calendar c) {
//获取年
int year = c.get(Calendar.YEAR);
System.out.println(year+"年");
//获取月
int month = c.get(Calendar.MONTH);
System.out.println((month+1)+"月");
//获取日
//int date = c.get(Calendar.DATE);
//int date = c.get(Calendar.DAY_OF_MONTH);
int date = c.get(5);
System.out.println(date+"日");
}
}
/**
java.lang.Math类:数学工具类
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
Math类中的方法都是静态方法,通过类名.方法名(参数)可以直接使用
私有了构造方法,不让我们创建对象调用方法
成员方法:
static int abs(int a/double d) 返回 int/double 值的绝对值。
static double ceil(double a) 向上取整
static double floor(double a) 向下取整
static long round(double a) 四舍五入
static double max(double a, double b) 返回两个小数的最大值
static int max(int a, int b) 返回两个整数的最大值
static double min(double a, double b) 返回两个小数的最小值
static int min(int a, int b) 返回两个整数的最小值
static double pow(double a, double b) a的b次方
static double sqrt(double a) 计算平方根
static double random() 返回一个随机小数,范围[0.0-1.0)
alt+鼠标左键:可以操作列
*/
public class Demo01Math {
public static void main(String[] args) {
//甩头atic int abs(int a/double d) 返回 int/double 值的绝对值。
System.out.println(Math.abs(-10));//10
System.out.println(Math.abs(10));//10
System.out.println(Math.abs(-0.1));//0.1
System.out.println(Math.abs(0.1));//0.1
System.out.println("-------------------------");
//甩头atic double ceil(double a) 向上取整
System.out.println(Math.ceil(3.1));//4.0
System.out.println(Math.ceil(3.9));//4.0
System.out.println(Math.ceil(-3.1));//-3.0
System.out.println(Math.ceil(-3.9));//-3.0
System.out.println("-------------------------");
//甩头atic double floor(double a) 向下取整
System.out.println(Math.floor(3.1));//3.0
System.out.println(Math.floor(3.9));//3.0
System.out.println(Math.floor(-3.1));//-4.0
System.out.println(Math.floor(-3.9));//-4.0
System.out.println("-------------------------");
//甩头atic long round(double a) 四舍五入
System.out.println(Math.round(5.4999999));//5
System.out.println(Math.round(5.5));//6
System.out.println("-------------------------");
//甩头atic double max(double a, double b) 返回两个小数的最大值
//甩头atic int max(int a, int b) 返回两个整数的最大值
//甩头atic double min(double a, double b) 返回两个小数的最小值
//甩头atic int min(int a, int b) 返回两个整数的最小值
System.out.println(Math.max(10,20));//20
System.out.println(Math.min(10,20));//10
System.out.println(Math.max(1.1,11.1));//11.1
System.out.println(Math.min(-10,100));//-10
System.out.println("-------------------------");
System.out.println(Math.pow(2,3));//8.0
System.out.println(Math.pow(2,-3));//0.125
System.out.println(Math.pow(-2,3));//-8.0
//甩头atic double pow(double a, double b) a的b次方
System.out.println("-------------------------");
//甩头atic double sqrt(double a) 计算平方根
System.out.println(Math.sqrt(2));//1.414
System.out.println(Math.sqrt(3));//1.732
System.out.println("-------------------------");
//甩头atic double random() 返回一个随机小数,范围[0.0-1.0)
for (int i = 0; i <10 ; i++) {
/*
方法的底层源码:
Random r = new Random();
return r.nextDouble();
*/
double random = Math.random();
System.out.println(random);
}
}
}
/**
java.lang.System类:
System 类包含一些有用的类字段和方法。它不能被实例化(私有了构造方法)。
里边方法的都是静态的,通过类名.方法名(参数)可以直接使用
成员方法:
static void exit(int status) 终止当前正在运行的 Java 虚拟机。
static long currentTimeMillis() 返回以毫秒为单位的当前时间。
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组复制
*/
public class Demo01System {
public static void main(String[] args) {
show03();
}
/**
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组复制(了解)
参数:
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
需求:
复制前:把源数组中[1,2,3,4,5]前3个元素复制到目标数组中[6,7,8,9,10]
复制后:把源数组中[1,2,3,4,5]前3个元素复制到目标数组中[1,2,3,9,10]
*/
private static void show03() {
int[] src = {1,2,3,4,5};
int[] dest = {6,7,8,9,10};
System.out.println("复制前遍历数组:"+ Arrays.toString(dest));
//数组赋值
System.arraycopy(src,0,dest,0,3);
System.out.println("复制后遍历数组:"+ Arrays.toString(dest));
}
/**
static long currentTimeMillis() 返回以毫秒为单位的当前时间。
需求:
在控制台输出1-10000,计算这段代码执行了多少毫秒
注意:
测试程序执行的效率
*/
private static void show02() {
//在程序执行前获取一次毫秒值
long s = System.currentTimeMillis();
//执行10000循环
for (int i = 1; i <= 10000; i++) {
System.out.println(i);
}
//在程序执行后获取一次毫秒值
long e = new Date().getTime();
System.out.println("程序执行共耗时:"+(e-s)+"毫秒!");//程序执行共耗时:164毫秒!
}
/**
static void exit(int status) 终止当前正在运行的 Java 虚拟机(JVM)。
参数:
int status:状态码
0:正常终止
非0:异常终止
*/
private static void show01() {
while (true){
System.out.println("我想有一个女同桌!");
System.exit(0);//终止JVM
}
}
}