Java 基础补充-1

常量

final指示常量

类常量用static final, 类常量是希望某个常量在多个类中使用。

例:

1
2
final double A = 3.1415;
public static final double A = 3.1415;

运算符

&&(与) || (或) !(非)

三元操作符 ?: 例如: x<y?x:y 会返回x和y中较小的一个。


文件输入输出

1
2
Scanner in = new Scanner(Path.of("file.txt"), StandardCharsets.UTF_8); //读取文件
PrintWriter out = new PrintWriter("file.txt", StandardCharsets.UTF_8); //写入文件

大数

使用静态 valueOf 可以将普通数值转为大数

1
BigInteger a = BigInteger.valueOf(100);

BigInteger 和 BigDecimal分别来实现任意精度整数和浮点数运算。

不能使用常用运算符 (如:+ - ) 而是使用add 和 multiply


for each 循环

格式:for(variable :collection) statement

1
2
3
// 例如
for (int element : a)
System.out.println(a[i]);

数组拷贝

Arrays类的copy()方法

第二个参数是新数组长度,通常用来增加数组的大小

如果长度超过, 数值型元素默认赋0, 布尔型默认赋false

1
2
// 例如
int[] copyLuckyNumbers = Arrays.copyOf(luckyNumbers, luckyNumbers.length);

数组排序

Arrays类的sort()方法

1
2
3
4
// 例如
int[] a = new int[100];
// 初始化数组,并赋值...
Arrays.sort(a);

Arrays类中常用函数

  • static String toString(xxx[] a)
  • static xxx[] copyOf(xxx[] a, int end)
  • static xxx[] copyOfRange(xxx[] a, int start, int end)
  • static void sort(xxx[] a)
  • static int binarySearch(xxx[] a, xxx v) // 用二分查找算法在a中查找v,返回索引
  • static void fill(xxx[] a, xxx v) // 将所有值填充为v
  • static boolean equals(xxx[] a, xxx[] b)

不规则数组

Java实际上没有多维数组,只有一堆数组。“数组中的数组。”