JAVA基础
赋值
i = 2 + (j=4);//i = 6,j = 4,表达式值为6
逻辑运算符
& | ^:在运算时两边的表达式都会被运算执行(^:异或,同真同假返回true)
&& ||:运算时右边的表达式可能会不被执行
运算符优先级
[] () > ++ -- +(正) -(负) > * / % > + - > 逻辑运算符 > 赋值(= += -=)
强制类型转换
占用内存较大的类型转换为较短的则必须强制类型转换,反之可不做显示转换。
(float)double
数组
int[] intArray;int intArray[];//相同
intArray = new int[10];
int intArray[] = {1,2,3,4,5};
int c = new int[2][3];
int b[][] = {{1,},{1,2},{1,2,3},{1,2,3,4}};//[[1],[1,2],...,[1,2,3,4]]
方法参数可变长
void mymethod(String s,int...params)
1.BigDecimal
import java.math.BigDecimal;
float与double在运算时并未提供完全精确的结果,因此不应被运用在要求精确结果的场合,因此BigDecimal应运而生。
System.out.println(0.1+0.2);//0.3000000000000004
1.1构造
public BigDecimal(int val)
public BigDecimal(String val)
public BigDecimal(double val)//不建议
public static void main(String[] args)
{
BigDecimal bdouble = new BigDecimal("2.3");
System.out.println(bdouble);
}
1.2运算
BigDecimal.add(value)+ BigDecimal.subtract(value)- BigDecimal.multimpy(value)* BigDecimal.divide(value)/
divide(value,int scale小数点保留位数,int roundingMode舍入模式)
BigDecimal a = new BigDecimal("1.2345");
a = a.setScale(3,BigDecimal.ROUND_HALF_UP);
final
final变量:对变量声明为final,一旦将应用声明做final,就不可改变这个引用(引用不可更改但可以向其中增加删除改变内容),若将边拉你个再次初始化的话,编译器会报错
final方法:方法不可被子类重写,final在编译的时候已经被静态绑定了,因此final方法比非final方法快
final类:final类功能完整,不可被继承,如String、Integer及其他包装类均不可被继承
优点:1.提高性能。2.JVM对final的变量、方法、类进行优化。3.可以安全的在多线程环境下进行共享,不需额外同步开销(?)