1、java的类的构造函数没有返回类型,但是前面可以有public,也可以没有public。
2、java中1.0-0.8的结果不是0.2
double a = 0.1;
double b = 0.1;
double c = 0.1;
if((a + b + c == 0.3)){
System.out.println("等于0.3");
}
else{
System.out.println("不等于0.3");
}
结果不是0.3。因为java中使用分数与指数来表示浮点数。例如用1/2来表示0.5,1/2+1/4来表示0.75等。而0.1使用的是1/16+1/32+1/256+1/512.......来表示,无法精确表示。如果想要精度很高,就不要用==直接比较浮点数运算结果。
保证精度的方法:使用java.math.BigDecimal类:
BigDecimal aBigDecimal = new BigDecimal("1.0");
BigDecimal bBigDecimal = new BigDecimal("1.0");
BigDecimal cBigDecimal = new BigDecimal("1.0");
BigDecimal dBigDecimal = new BigDecimal("3.0");
System.out.println(dBigDecimal.equals(aBigDecimal.add(bBigDecimal).add(cBigDecimal)));
3、基本类型long、int、double、float、 boolean等,在j2se5.0之前必须亲自使用Long、Integer、Double、Float、Boolean等类打包为对象,才能当对象来使用。5.0之后就开始支持自动装箱(Autoboxing)、拆箱(unboxing)。int data1 = 10; Integer wrapper1 = new Integer(data1);就是一个打包的过程,将一个整型变量编程一个对象。Integer提供compareTo()方法,可与另一个Integer对象进行比较,如果打包值相同就返回0,小于传入对象返回-1,否则就是1。
4、
Float float5 = new Float(0.3);
Float float6 = new Float(0.3);
if(float5.equals(float6)){
System.out.println(true);
}
输出值是true。
Float float5 = new Float(0.3);
Float float6 = new Float(0.3);
if(float5.equals(0.3)){
System.out.println(true);
}
没有输出值。因为0.3是一个不确定的值。
5、
Integer a = 10;
int foo = a;
上面为自动装箱、拆箱的过程。