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.可以安全的在多线程环境下进行共享,不需额外同步开销(?)