JAVA学习日志

今天主要学习了java的计算问题、常量以及一个复合数据类型
复合数据类型
复合数据类型包括:class类、interface接口、数组。
null 索引在运行时并没有对应的类型,但它可以被转换为任何类型(不能是简单类型)。
索引类型的默认值就是null.
Java精确计算问题
关键字strictfp是strict float point的缩写,指的是精确浮点,它是用来确保浮点数运算的准确性。
JVM在执行浮点数运算时,如果没有指定strictfp关键字,此时计算结果可能会不精确,而且计算
结果在不同平台或厂商的虚拟机上会有不同的结果,导致意想不到的错误。而一旦使用了strictfp
来声明一个类、接口或者方法,那么在所声明的范围内,Java编译器以及运行环境会完全依照IEEE 二进制浮点数算术标准来执行,在这个关键字声明的范围内所有浮点数的计算都是精确的。
需要注意的是,当一个类被strictfp修饰时,所有方法都会自动被strictfp修饰。因此,strictfp可以保证 浮点数运算的精确性,而且在不同的硬件平台会有一致的运行结果。但是精确计算事实上还是没有得到 保障,这是受到存储方式的限制。需要精确计算还是以来BigDecimal实现的。

金融类的应用中可以使用long存储数据,货币单位为分
常见数学计算
Java的Math类中包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math的方法都被定义为static 形式,通过Math类可以在主函数中直接调用。
Math.sqrt()计算平方根

int k=16; //如果不能执行计算,则返回NaN
double res=Math.sqrt(k);
System.out.println(res);

Math.pow(a, b)计算a的b次方
Math.max(a,b)计算最大值
Math.min(a,b)计算最小值
Math.abs()求绝对值
Math.ceil天花板的意思,就是返回大的值;floor地板的意思,就是返回小的值;round 四舍五 入,float时返回int值,double时返回long值

double d1=-1234.567;
System.out.println(Math.ceil(d1));//-1234.0
System.out.println(Math.floor(d1));//-1235.0
System.out.println(Math.round(d1)); //-1235 容易出错的位置 d1=1234.567;
System.out.println(Math.ceil(d1)); //1235.0
System.out.println(Math.floor(d1));//1234.0
System.out.println(Math.round(d1)); //1235

random 取得一个大于或者等于0.0小于不等于1.0随机数
例如:0.343857473393

常量

常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。如整型常量123,实型常量
1.23,字符常量’A’,布尔常量true等

你可能感兴趣的:(java,学习)