大数值和数组
1、大数值
1.1 如果基本的整数和浮点数精度不满足需求,那么可以使用java.math包中的BigInteger和BigDecimal来处理包含任意长度序列的数值。
1.2 可以使用静态方法valueOf方法将普通的数值转换为大数值
如:BigInteger a = BigInteger.valueOf(100);
1.3不能使用熟悉的算术运算符(如+\*)处理大数值,而应该使用大数值类中的add和mutilply等方法 。
如:BigInteger c = a.add(b) // 相当于c = a + b;
2、数组
2.1 是一个数据结构,来存储同一类型的数值的集合;并通过整型下标访问数组中的每一个值。
2.2 声明数组的方法:int a[] 或 int[] a 。这两种方式均可,但大多数java程序员喜欢后者,因为它将类型int[] 和变量名a分开了。
2.3 一旦创建了数组,其大小将不能被改变。如果经常扩展数组可以使用另一个数据结构--数组列表(array list)。
2.4 java SE 5.0增加一中功能很强的循环结构,可以依次处理数组中的每个元素,而不需要关心数组下标。
语法:for(遍历使用的元素变量名 : 集合变量) 处理语句;
如:for(int element : a) System.out.printf(element);
2.5 java中允许数组长度为0的数组,这在编写一个结果为数组的方法,如果碰巧结果为空,则这种形式就显得非常有用。
如: new elementType[0];
★长度为0的数组和null是不同的。
2.6 对于命令行参数数组来说,并不会将程序名传入,这与c++不同。
2.7对于数组的拷贝、检索和排序等,可以使用Array类中的相关静态方法实现。
★java se6之前是使用System.arrayCopy进行数组拷贝。
2.8 java实际上没有多维数组,只有一维数组,多维数组可以解释为“数组中的数组”。
★java 中的double arr[10][6] 相当于c++中的double** arr = new double*[10]。所以它可以创造一个锯齿装的数组。