实用类

Date类

boolean after(Date when) 如果调用的Date对象所包含的日期迟于由when指定的日期,则返回true,否则返回false

boolean before(Date when) 如果调用的Date对象所包含的日期早于由when指定的日期,则返回true,否则返回false

Object clone() 复制调用Date对象

int compareTo(Date anotherDate) 将调用对象的值与anotherDate的值进行比较,如果这两者数值相等,返回0,如果调用对象的值早于anotherDate的值,返回一个负值,如果调用对象的值晚于anotherDate的值,则返回一个正值

boolean equals(Object obj) 相等返回true

long getTime() 返回自1970年1月1日0时至今的毫秒数

int hashCode() 返回调用对象的hash值

void setTime(long time) time表示从1970年1月1日0时起至今以毫秒为单位的时间值

String toString() 将调用Date的对象转换成字符串并且返回结果

import java.util.Date;
public class HelloWorld {
	public static void main(String[] args) {
                Date date2 = new Date(99,1,6);     //1900+99,一月为0,十二月为11
		Date date = new Date();
		System.out.println(date);    //Mon Sep 10 19:36:41 CST 2018
		long msec = date.getTime();
		System.out.println(msec);    //1536579401192
		boolean a = date.after(date2);
		System.out.println(a);    //true
		boolean b = date.before(date2);
		System.out.println(b);    //false
		Object o = date2.clone();
		System.out.println(o);    //Sat Feb 06 00:00:00 CST 1999
		int i = date2.compareTo(date);
		System.out.println(i);    //-1
		boolean c = date2.equals(o);
		System.out.println(c);    //true
		long d = date2.getTime();
		System.out.println(d);    //918230400000
		int e = date2.hashCode();
		System.out.println(e);    //-892601131
		String s = date2.toString();
		System.out.println(s);    //Sat Feb 06 00:00:00 CST 1999
		date2.setTime(10000);
		System.out.println(date2);    //Thu Jan 01 08:00:10 CST 1970
	}
}

Calendar类

Calendar定义了几个受保护的变量

areFiledsSet是一个指示时间分量是否已经建立的boolean型变量

fields是一个包含时间分量的int数组

isSet是一个指示特定时间分量是否已经建立的boolean数组

time是一个包含了该对象的当前时间的long型变量

isTimeSet是一个指示当前时间是否已经建立的boolean型变量

 

import java.util.Calendar;
public class HelloWorld {
	public static void main(String[] args) {      
                String months[] =    {"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"};
		Calendar c = Calendar.getInstance();
		System.out.print(months[c.get(Calendar.MONTH)]);
		System.out.print(" " + c.get(Calendar.DATE) + " ");    //sep 10 2018
		System.out.println(c.get(Calendar.YEAR));
		System.out.print(c.get(Calendar.HOUR) + ":");
		System.out.print(c.get(Calendar.MINUTE) + ":");
		System.out.println(c.get(Calendar.SECOND));    //8:29:53
		c.set(Calendar.HOUR, 10);
		c.set(Calendar.MINUTE, 29);
		c.set(Calendar.SECOND, 22);
		System.out.print(c.get(Calendar.HOUR) + ":");
		System.out.print(c.get(Calendar.MINUTE) + ":");
		System.out.println(c.get(Calendar.SECOND));       //10:29:22		
	}
}

 DateFormat类

 DateFormat类主要用来创建日期格式化器,由格式化器将日期转换为各种日期格式串输出

getDateInstance()方法可以返回一个DateFormat类的实例,这个对象可以格式化日期信息

static final DateFormat getDateInstance()

static final DateFormat getDateInstance(int style)

static final DateFormat getDateInstance(int style, Locale aLocale)

SimpleDateFormat类

SimpleDateFormat类是DateFormat类的一个子类,用来自定义显示日期和时间信息的格式化模型,构造方法

SimpleDateFormat(String formatString)

SimpleDateFormat s = SimpleDateFormat("dd MMM yyyy hh:mm:ss zzz")

SimpleDateFormat中用于格式化字符串的符号

a : 上午或下午    d: day(1~31)
h: hour(1~12)   k: hour(1~24)
m: minute        s:second
w:week           y:year
z:时区           D: day(1~365)
E:一星期的某天    F:某月的工作日数
G:纪元          H:一天中的某小时(0~23)
K:上下午的某小时(0~11)    
M:月份
S:秒中的毫秒
W:某月中的某个星期

对于数字,时间数字中一个模式字符被重复的次数决定了多少数字将会出现

hh:mm:ss --- 01:51:15

h:m:s --- 1:51:15

import java.util.Date;
import java.text.SimpleDateFormat;

public class HelloWorld {
	public static void main(String[] args) {
                Date date = new Date();
		SimpleDateFormat s;
		s = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		System.out.println(s.format(date));
		s = new SimpleDateFormat("hh:mm:ss");
		System.out.println(s.format(date));
		s = new SimpleDateFormat("dd MMM yyyy hh:mm:ss zzz");
		System.out.println(s.format(date));
		s = new SimpleDateFormat("E MMM dd yyyy");
		System.out.println(s.format(date));
		
		
	}
}

Math类

常用属性和方法

public static final double E --- 近似值伟2.72

public static final double PI --- 近似值3.14

三角函数

public static double sin(double a)

public static double cos(double a)

public static double tan(double a)

public static double asin(double a)

public static double acos(double a)

public static double atan(double a)

角度、弧度转换

public static double toRadians(double angdeg)

public static double toDegrees(double angrad)

代数函数

public static double exp(double a) 以e为底的指数函数

public static double log(double a)

public static double sqrt(double a)

public static double ceil(double a) 返回与大于等于参数的最小整数相等的double类型数

public static double floor(double a) 返回与小于等于参数的最小整数相等的double类型数

public static double random() 返回一个0~1.0之间的double类型随机数

其他数据重载方法

public static int abs(int a)

public static int max(int a, int b)

public static int min(int a, int b)

public class HelloWorld {
	public static void main(String[] args) {        
                int [] a = {9,2,3,4,5,6};
		int min = a[0];
		for(int i = 0 ; i < a.length; ++i)
		{
			min = Math.min(min, a[i]);
		}
		System.out.println(min);
	}
}

Random类(生成随机数)

取指定范围的随机数

Math.random()*(max - min + 1) + min;

构造方法

Random()

Random(long seed)

公共方法

boolean nextBoolean() 返回下一布尔型随机数

void nextBytes(byte[] bytes) 用随机产生的值填充数组

double nextDouble() 返回下一double型随机数

float nextFloat() 返回下一float型随机数

double nextGaussian() 返回下一高斯型随机数

int nextInt() 返回下一int型随机数

int nextInt(int bound) 返回一个介于0~bound之间的int随机数

long nextLong() 返回下一个long随机数

void setSeed(long seed) 将由seed指定的值作为种子值

import java.util.*;
public class HelloWorld {
	public static void main(String[] args) {		
                Random r1 = new Random(1234567890L);
		Random r2 = new Random(100);
		boolean b1 = r1.nextBoolean();    //true
		boolean b2 = r2.nextBoolean();    //true
		int i1 = r1.nextInt();        //-1908238811
		int i2 = r2.nextInt();        //-1139614796
		double d1 = r1.nextDouble();    //0.975287909828516
		double d2 = r2.nextDouble();    //0.19497605734770518
		System.out.println(b1);
		System.out.println(b2);
		System.out.println(i1);
		System.out.println(i2);
		System.out.println(d1);
		System.out.println(d2);
	}
}

枚举

计算机程序有时需要处理一些非数值型的数据,eg:性别,月份,星期几,颜色等,通常可以定义一个数值常量来代表某一状态

enum 枚举名{枚举值表};

枚举简单定义

public enum color {
	RED,BLUE,GREEN;
}
public class HelloWorld {
	public static void main(String[] args) {
                color c = color.RED;
		System.out.println(c);    //RED   
	    }
	}

枚举的变量名和值不同(需要给出额外的构造方法)

public enum color {
	RED("红色"),GREEN("绿色"),BLUE("蓝色");
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	color(String name){
		this.setName(name);
	}
}
public class HelloWorld {
	public static void main(String[] args) {
            color c = color.RED;
		System.out.println(c.getName());  //红色
	    }
	}

 不想给出额外的构造方法,还有另一种选择就是覆写源自Object类的toString()方法,令其返回值与枚举值的名字不同

enum color {
	RED{
		public String toString() {
			return "红色";
		}
	},
	GREEN{
		public String toString() {
			return "绿色";
		}
	},
	BLUE{
		public String toString() {
			return "蓝色";
		}
	};
}
public class HelloWorld {
	public static void main(String[] args) {
            color c = color.RED;
		System.out.println(c);      //红色
	    }
	}

Annotation(注解)

1、@Override

被用作标注方法,说明被标注的方法重写了父类的方法

2、@Deprecated

该类的构造方法已经不推荐使用

3、@SuppressWarnings

此注解可以告诉java编译器关闭对类、方法及成员变量的警告信息

@SuppressWarnings({"unchecked","rawtype"})

Lamda表达式

Lamda表达式又称为“闭包”或“匿名方法”

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值

 

(parameters) -> expression
或
(parameters) ->{ statements; }

Lambda 表达式实例 

// 1. 不需要参数,返回值为 5  
() -> 5  
  
// 2. 接收一个参数(数字类型),返回其2倍的值  
x -> 2 * x  
  
// 3. 接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  
  
// 4. 接收2个int型整数,返回他们的和  
(int x, int y) -> x + y  
  
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
(String s) -> System.out.print(s)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

窗外藏深海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值