At first I wasn't sure whether this code would compile correctly (but obviously it does). The reason it does is due to two independent features of Java.
The System.out.println() method has an overload that takes an Object parameter (and then calls String.valueOf() to get a string representation of the object). Every type of object in Java derives from the Object base class. So, the literal string values you are passing are actually instances of the String class, which is assignable to Object.
But what about that i at the end of the chain of conditionals? That's not a string, and an int is not an Object either (primitive types in Java are not subclasses of Object). However, Java has a feature called "boxing" where primitive values can be placed inside an object container, in this case the Integer class. The compiler automatically boxes primitive values that are passed to Object parameters.
If you were to explicitly construct and cast everything your code is roughly equivalent to:
System.out.println( (i % 15 == 0) ? (Object) new String("FizzBuzz") : (i % 3 == 0) ? (Object) new String("Fizz") : (i % 5 == 0) ? (Object) new String("Buzz") : (Object) new Integer(i) );
Because you are mixing different types in the conditional operator, you may find an unexpected behaviour here. For example, the following code does not compile:
String s = ( (i % 15 == 0) ? "FizzBuzz" : (i % 3 == 0) ? "Fizz" : (i % 5 == 0) ? "Buzz" : i );
The reason is that in a conditional expression a ? b : c, the types of b and c must match (or be subclasses of each other). In the above case, "Buzz" and i are different incompatible types. And in particular, i cannot be assigned to a String.
if/else, but I thought that would be redundant as well. But I can now see that this isn't too readable. \$\endgroup\$?:operator is the conditional operator; a "ternary operator" is any operator that takes three operands (there is only one ternary operator in most programming languages, so people often say "ternary operator" when they mean "conditional operator"). \$\endgroup\$