首先,定义一个二维数组:

```java

int[][] a = new int[5][5];

```

接下来,找出二维数组中的最大值以及其所有坐标。可以通过遍历数组并比较每个元素的值来实现。以下是一个示例代码:

```java

public class Main {

public static void main(String[] args) {

int[][] a = new int[5][5];

// 初始化二维数组

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

a[i][j] = i * j;

}

}

// 找出最大值及其坐标

int maxValue = a[0][0];

int maxRow = 0;

int maxCol = 0;

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

if (a[i][j] > maxValue) {

maxValue = a[i][j];

maxRow = i;

maxCol = j;

}

}

}

// 打印最大值及其坐标

System.out.println("最大值: " + maxValue);

System.out.println("坐标: [" + maxRow + ", " + maxCol + "]");

}

}

```

```java

public class DoubleArray { public static void main(String[] args) {

int[][] a = new int[5][5];

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[0].length; j++) {

a[i][j] = (int) (Math.random() * 10);

}

}

int maxi = 0;

int maxj = 0;

int count = 0;

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[0].length; j++) {

if (count % 5 != 0) {

System.out.print(a[i][j] + " ");

count++;

} else {

System.out.println();

System.out.print(a[i][j] + " ");

count++;

}

if (a[maxi][maxj] < a[i][j]) {

maxi = i;

maxj = j;

}

}

}

System.out.println("

The maximum number of the array: " + a[maxi][maxj] + "

其坐标为:(" + maxi + "," + maxj + ")");

}

}

```

这种实现方式确实存在问题,即只能打印出一个最大值的坐标。为了解决这一问题,我们可以定义一个数组来保存最大值坐标。具体方法如下:

1. 首先,我们需要遍历整个二维数组,找到每一行的最大值及其对应的列索引。

2. 然后,将找到的最大值坐标存储在一个新的一维数组中。

3. 最后,输出新数组中的元素即可得到包含最大值坐标的一串字符。

这样,我们就可以得到一个包含所有最大值坐标的有序数组,从而避免了只能打印出一个最大值坐标的问题。

```java

public class LargestNumberIndex {

public static void main(String[] args) {

// 初始化一个二维数组

int[][] a = new int[][] {{1, 2, 3}, {3, 2, 1}};

// 获取最大值

int maxi = 0, maxj = 0, countMax = 1;

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[0].length; j++) {

if (a[maxi][maxj] < a[i][j]) {

maxi = i;

maxj = j;

countMax = 1;

} else if (a[maxi][maxj] == a[i][j]) {

countMax += 1;

}

}

}

// 记录所有最大值的下标

int[] maxNumi = new int[countMax];

int[] maxNumj = new int[countMax];

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[0].length; j++) {

if (a[maxi][maxj] == a[i][j]) {

maxi = i;

maxj = j;

countMax--;

maxNumi[countMax] = i;

maxNumj[countMax] = j;

}

}

}

// 输出结果

for (int i = 0; i < maxNumi.length; i++) {

System.out.println("

数组的最大值:" + a[maxNumi[i]][maxNumj[i]] + "

其坐标为:(" + maxNumi[i] + "," + maxNumj[i] + ")");

}

}

}

```

二维数组的最大值和坐标信息如下:最大值为3,其坐标为(1, 0)和(0, 2)。

要清零一个二维数组,可以尝试以下方法:

方法一:遍历赋值0

```java

// 全部清零

for (int j = 0; j < arg.length - 1; j++) {

arr[j] = 0;

}

```

方法二:指向空指针

```java

arg = null;

```

然而,错误的方法是定义一个名为clear的方法,将参数arr设置为null。这种方法仅在具有指针的编程语言中有效,对于非指针类型的变量无效。在Java等没有指针的语言中,这种方法只是将形参清空,对实参没有影响。