Similar solution to answer by oleg.cherednik, but without the need for slow % remainder operator.
public static int[] alternate(int[] a1, int[] a2) {
    int[] a3 = new int[a1.length + a2.length];
    for (int i1 = 0, i2 = 0, i3 = 0; i3 < a3.length; ) {
        if (i1 < a1.length)
            a3[i3++] = a1[i1++];
        if (i2 < a2.length)
            a3[i3++] = a2[i2++];
    }
    return a3;
}
Tests
System.out.println(Arrays.toString(alternate(
        new int[] { 1, 2, 3 },
        new int[] { 44, 55, 66, 77, 88 })));
System.out.println(Arrays.toString(alternate(
        new int[] { 44, 55, 66, 77, 88 },
        new int[] { 1, 2, 3 })));
Output
[1, 44, 2, 55, 3, 66, 77, 88]
[44, 1, 55, 2, 66, 3, 77, 88]
UPDATE
This algorithm can easily be enhanced to merge many arrays:
public static int[] alternate(int[]... arrays) {
    int[] result = new int[Stream.of(arrays).mapToInt(a -> a.length).sum()];
    int[] ai = new int[arrays.length];
    for (int j = 0; j < result.length; )
        for (int i = 0; i < arrays.length; i++)
            if (ai[i] < arrays[i].length)
                result[j++] = arrays[i][ai[i]++];
    return result;
}
Test
System.out.println(Arrays.toString(alternate(
        new int[] { 1, 2, 3 },
        new int[] { 44, 55, 66, 77, 88 },
        new int[] { 12, 34 },
        new int[] { 5, 6, 7, 8 })));
Output
[1, 44, 12, 5, 2, 55, 34, 6, 3, 66, 7, 77, 8, 88]
UPDATE 2
It can also be done for collections:
@SafeVarargs
public static <T> List<T> alternate(Iterable<? extends T>... inputs) {
    List<T> result = new ArrayList<>();
    @SuppressWarnings("unchecked")
    Iterator<? extends T>[] iter = new Iterator[inputs.length];
    for (int i = 0; i < inputs.length; i++)
        iter[i] = inputs[i].iterator();
    for (int prevSize = -1; prevSize < result.size(); ) {
        prevSize = result.size();
        for (int i = 0; i < inputs.length; i++)
            if (iter[i].hasNext())
                result.add(iter[i].next());
    }
    return result;
}
public static <T> List<T> alternate(Collection<? extends Iterable<? extends T>> inputs) {
    @SuppressWarnings("unchecked")
    Iterable<? extends T>[] iterables = inputs.toArray(new Iterable[0]);
    return alternate(iterables);
}
Tests
System.out.println(alternate(
        Arrays.asList(1, 2, 3),
        Arrays.asList(44, 55, 66, 77, 88),
        Arrays.asList(12, 34),
        Arrays.asList(5, 6, 7, 8)));
System.out.println(alternate(Arrays.asList(
        Arrays.asList(1, 2, 3),
        Arrays.asList(44, 55, 66, 77, 88),
        Arrays.asList(12, 34),
        Arrays.asList(5, 6, 7, 8))));
Output
[1, 44, 12, 5, 2, 55, 34, 6, 3, 66, 7, 77, 8, 88]
[1, 44, 12, 5, 2, 55, 34, 6, 3, 66, 7, 77, 8, 88]