As for prior knowledge, that argument doesn’t fly. A lot of the verboseness of Java could be addressed VERY easily with clear syntax that doesn’t require a lot more prior knowledge. An example is getters and setters, which are very easy to understand in languages that have built-in support for concise syntax but Java has somehow ignored the advantage of concise syntax for 25 years.
Besides, if your argument is that Java doesn’t require “prior knowledge,” I beg to differ. E.g., correct usage of arrays vs. ArrayList.
Arrays vs lists is a thing in all languages, not Java. They just have different names (list, vector, sequence...)
The difference between arrays and ArrayList is simple: an array has a constant size known at the time of allocation.
Kotlin isn't terse.