Here is a Java program that demonstrates how to find the 3rd largest number in an array:

**
import java.util.Arrays;
class ThirdLargest
{
public int findThirdLargest(int[] arr, int n) {
// sort the array
Arrays.sort(arr);
// return the element at index n-3
return arr[n - 3];
}
}
public class Main {
public static void main(String[] args) {
ThirdLargest tl=new ThirdLargest();
int[] arr = {1, 14, 2, 16, 10, 20, 5};
int n = arr.length;
int thirdLargest = tl.findThirdLargest(arr, n);
System.out.println("Third largest element is " + thirdLargest);
}
}
**

The above program creates an array arr of integers and assigns it some values. It then defines a variable n that holds the length of the array.

The findThirdLargest method takes two arguments; the array, and the length of the array.

It then uses Arrays.sort(arr) method which sorts the array in ascending order, and returns the element at index n-3. Since array is sorted the 3rd last element is the 3rd largest element in the array.

Alternatively, you could use other sorting algorithms like Merge Sort, Quick Sort, Heap Sort to sort the array and then find the 3rd largest element. Also you could use the inbuilt Arrays.sort(arr, Comparator.reverseOrder()) to sort the array in descending order to get the 3rd largest element by getting the element at index 2.

If you want to find the 3rd largest number from an array with the least time complexity, you can consider using a Min-Heap with a fixed size of 3.
In each iteration, check the current element with the minimum element in the heap and if the current element is greater than the minimum, remove the minimum and insert the current element in the heap. This way, you will always have the 3 largest numbers in the heap, and the minimum will be the 3rd largest number.