用Java编写一个程序，从给定的整数数组中找到最大的三个数字并返回它们的乘积。


整数数组：[1, 5, 7, 2, 10, 15, 3]
以下是Java编写的程序，返回给定整数数组的最大的三个数字的乘积：

```java
public class Main {
    public static void main(String[] args) {
        int[] array = {1, 5, 7, 2, 10, 15, 3};
        int max1 = Integer.MIN_VALUE, max2 = Integer.MIN_VALUE, max3 = Integer.MIN_VALUE;
        for (int i = 0; i < array.length; i++) {
            if (array[i] > max1) {
                max3 = max2;
                max2 = max1;
                max1 = array[i];
            } else if (array[i] > max2) {
                max3 = max2;
                max2 = array[i];
            } else if (array[i] > max3) {
                max3 = array[i];
            }
        }
        int result = max1 * max2 * max3;
        System.out.println(result);
    }
}
``` 

输出结果为： 1050

解释：

程序首先声明了三个变量max1，max2和max3，作为当前找到的最大三个数。

然后使用一个for循环遍历整个数组，依次比较每个数字和当前找到的最大三个数。如果一个数字比当前最大数max1，那么就将max1设置为该数字，而max1原来的值将向后挤，max2的值变成max1原来的值，max3的值变成max2原来的值。如果一个数字比max2小但比max3大，那么就将max3设置为该数字。如果一个数字比max3小，则不做任何工作。

最后，将max1，max2和max3相乘，并将结果存储在result变量中，并将结果打印到控制台上。