É MULTIPLATAFORMA, não só por programar em MAC, Windows e Linux, mas também pela ideia de que você pode estar trabalhando com a mesma aplicação em diferentes Sistemas Operacionais. Hoje eu não vejo isso como um ganho, como um fator decisivo para usar JAVA, porque antigamente, há 10 anos, as aplicações Desktops eram "tops", sempre tinham que criar, tinham muita demanda. Então você podia programar uma aplicação de estoque e essa aplicação em Desktop, usando JSE, ela iria rodar tanto no Windows, MAC e Linux, sem alterar nenhuma linha de código.
Isso era uma grande vantagem do JAVA, diferente do VB e Delphi que eram exclusivos para Windows. Se você compila um código no JAVA, ele não gera o Assembly, não gera aquele código de máquina como o Delphi gera, o VB, o Cobol e Pascal. O Java gera um Código próprio também produzido pelo pessoal do JAVA, que é o Bytecode.
Os Bytecode são códigos compilados do JAVA. Quando você cria a Classe, define o código e compila, ele vai gerar um Bytecode, que vai ser interpretado por uma Máquina Virtual (JVM), e é só essa máquina virtual Java que consegue entender software JAVA. Por isso que quando você acessava um site de banco, vc tinha que instalar o JAVA na sua máquina. Porque os sites de banco eram feitos com aplicação Java, e máquina sozinha não conseguia identificar um Bytecode.