java 构造器

开发工具与关键技术: eclipse 和 Java
作者:杜永鹏
撰写时间:2021 年 6 月 16日

Java构造器
1.BigDecimal类
为了能精确表示、计算浮点数,java提供了BigDecimal类,该类提供了大量的构造器用于创建BigDecimal对象,包括把所有的基本数值型变量转成一个BigDecimal对象,页包括利用数字字符串,数字字符数组来创建BigDecimal对象。
1.1.常用构造器
构造器: BigDecimal(char[]in) 说明: 将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与
构造器: BigDecimal(String) 说明: 构造方法相同的字符序列。
构造器: BigDecimal(doubleval) 说明: 将 double 转换为 BigDecimal,后者是 double 的二进制浮点值准确 的十进制表示形式。
构造器: BigDecimal(int val) 说明: 将 int 转换为 BigDecimal。
构造器: BigDecimal(longval) 说明: 将 long 转换为 BigDecimal。
构造器: BigDecimal(Stringval) 说明: 将 BigDecimal 的字符串表示形式转换为 BigDecimal。
public static void main (String[] args) {
//构造器
char[] cs=new char[] {‘1’,‘2’,‘3’};
BigDecimal bigDecimal1=new BigDecimal(cs);
System.out.println(“bigDecmal1=”+bigDecimal1);

	BigDecimal bigDecimal2=new BigDecimal(50.0);
	System.out.println("bigDecimal2="+bigDecimal2);
	
	BigDecimal bigDecimal3=new BigDecimal(50);
	System.out.println("bigDecimal3="+bigDecimal3);
	
	BigDecimal bigDecimal4=new BigDecimal(50L);
	System.out.println("bigDecimal4="+bigDecimal4);
	
	BigDecimal bigDecimal5=new BigDecimal("50");
	System.out.println("bigDecimal5="+bigDecimal5);

}
常用方法:
返回值类型: BigDecimal 方法: valueOf(double val) 说明: 使用 Double.toString(double) 方法提供的 double 规范的字符串表示形式将double 转换为 BigDecimal。
返回值类型: BigDecimal 方法: valueOf(long val) 说明: 将 long 值转换为具有零标度的BigDecimal。
返回值类型: BigDecimal 方法: abs() 说明: 返回 BigDecimal,其值为此 BigDecimal的绝对值,其标度为this.scale()。
返回值类型: BigDecimal 方法: add(BigDecimalaugend) 说明: 返回一个 BigDecimal,其值为 (this +augend)
返回值类型: BigDecimal 方法: subtract(BigDecimalsubtrahend) 说明: 返回一个 BigDecimal,其值为 (this -subtrahend),
返回值类型: BigDecimal 方法: multiply(BigDecimalmultiplicand) 说明: 返回一个 BigDecimal,其值为 (this ×multiplicand)
返回值类型: BigDecimal 方法: divide(BigDecimaldivisor) 说明: 返回一个 BigDecimal,其值为 (this /divisor)
返回值类型: BigDecimal 方法: pow(int n) 说明: 返回其值为 (thisn) 的 BigDecimal
返回值类型: int 方法: compareTo(BigDecimalval) 说明: 将此 BigDecimal 与指定的 BigDecimal 比较。
返回值类型: byte 方法: byteValue() 说明: 将此 BigDecimal 转换为 byte,
返回值类型: byte 方法: byteValueExact() 说明: 将此 BigDecimal 转换为 byte,以检查丢失的信息。
返回值类型: short 方法: shortValue() 说明: 将此 BigDecimal 转换为 short
返回值类型: short 方法: shortValueExact() 说明: 将此 BigDecimal 转换为 short,以检查丢失的信息。
返回值类型: int 方法: intValue() 说明: 将此 BigDecimal 转换为 int。
返回值类型: int 方法: intValueExact() 说明: 将此 BigDecimal 转换为 int,以检查丢失的信息
返回值类型: long 方法: longValue() 说明: 将此 BigDecimal 转换为 long。
返回值类型: long 方法: longValueExact() 将此 BigDecimal 转换为 long,以检查丢失的信息。
返回值类型: float 方法: floatValue() 说明: 将此 BigDecimal 转换为 float。
返回值类型: double 方法: doubleValue() 说明: 将此 BigDecimal 转换为 double。
返回值类型: String 方法: toString() 说明: 返回此 BigDecimal 的字符串表示形式,如果需要指数,则使用科学记数法。
public static void main(String[] args) {
//演示浮点型的精度丢失问题
System.out.println("0.06 + 0.01 = "+ (0.06 + 0.01));
System.out.println("1.0 - 0.38 = " + (1.0 - 0.38));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("1123.3 / 100 = " + (1123.3 / 100));

	//不推荐使用构造器来转换浮点型数据
	System.out.println("-----------------------------------");
	BigDecimal decimalT1 =new BigDecimal("0.05");//推荐使用
	BigDecimal decimalT2 = BigDecimal.valueOf(0.01);//推荐使用
	BigDecimal decimalT3 = new BigDecimal(0.05);//不推荐使用
	System.out.println("f1 = " +decimalT1);
	System.out.println("f2 = " +decimalT2);
	System.out.println("f3 = " +decimalT3);
	System.out.println("使用String作为BigDecimal构造器参数: ");
	System.out.println("0.05 + 0.01 = " +decimalT1.add(decimalT2));
	System.out.println("0.05 - 0.01 = " +decimalT1.subtract(decimalT2));
	System.out.println("0.05 * 0.01 = " +decimalT1.multiply(decimalT2));
	System.out.println("0.05 / 0.01 = " +decimalT1.divide(decimalT2));
	System.out.println("0.05 ^ 2 =" +decimalT1.pow(2));
	System.out.println("使用double作为BigDecimal构造器参数: ");
	System.out.println("0.05 + 0.01 = " + decimalT3.add(decimalT2));
	System.out.println("0.05 - 0.01 = "+ decimalT3.subtract(decimalT2));
	System.out.println("0.05 * 0.01 = " + decimalT3.multiply(decimalT2));
	System.out.println("0.05 / 0.01 = " + decimalT3.divide(decimalT2));
	System.out.println("0.05 ^ 2 =" + decimalT3.pow(2));
}
  1. Date和Calendar类
    2.1.Date类
    Java提供了Date类来处理日期、时间(此处的Date是指java.util包下的Date类,而不是java.sql包下的
    Date类),Date对象既包含日期,也包含时间。Date类从JDK1.0起就开始存在了,因为它历史悠久,所
    以它的大部分构造器、方法都已经过时,不再推荐使用了。
    构造器:
    Java.util.Date的构造器还剩下两个构造器,其他都已经过时(@Deprecated注解,表示已经不再推荐使
    用,使用会有警告,并且可以会导致程序性能或者安全性方面的问题)
    构造器: Date() 说明: 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
    构造器: Date(longdate) 说明: 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

Java.util.Date的方法也剩下几个,其他都过时了:
返回值类型: boolean 方法: after(Date when) 说明: 测试此日期是否在指定日期之后。
返回值类型: boolean 方法: before(Date when) 说明: 测试此日期是否在指定日期之前。
返回值类型: Object 方法: clone() 说明: 返回此对象的副本。
返回值类型: int 方法: compareTo(DateanotherDate) 说明: 比较两个日期的顺序。
返回值类型: boolean 方法: equals(Object obj) 说明: 比较两个日期的相等性。
返回值类型: long 方法: getTime() 说明: 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
返回值类型: void 方法: setTime(long time) 说明: 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00GMT 以后 time 毫秒的时间点。
public static void main(String[] args) {
//构造器
Date date=new Date();
System.out.println(date);
Date date2=new Date(System.currentTimeMillis()-10000L);
System.out.println(date2);

	//after() before()
	boolean bol1=date.after(date2);
	System.out.println(bol1);
	boolean bol2=date.before(date2);
	System.out.println(bol2);
	
	//compareTo()
	System.out.println("--------compareTo()------");
	int intA= date.compareTo(date2);
	System.out.println(intA);
	
	//clone()
	System.out.println("-------clone()-----");
	Date date3=(Date) date.clone();
	System.out.println(date3);
	System.out.println(date==date3);
	
	//equals()
	System.out.println("--equals--");
	boolean bol3=date.equals(date3);
	System.out.println(bol3);
	
	//getTime()
	System.out.println("---getTime()-----");
	long longA=date3.getTime();
	System.out.println(longA);
	
	//setTime()
	System.out.println("-----setTime()-----");
	System.out.println(date3);
	try {
		Thread.sleep(1000);
	} catch (InterruptedException e) {
		// TODO: handle exception
		e.printStackTrace();
	}
	date3.setTime(System.currentTimeMillis());
	System.out.println(date3);

	SimpleDateFormat dateFormat 
			= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	String strDate=dateFormat.format(date3);
	System.out.println(strDate);
	String strD="2012-04-01 11:11:11";
	Date date4;
	try {
		date4 = dateFormat.parse(strD);
		System.out.println(date4);
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值