Архитектурная нейтральность

Основной задачей, которую ставили перед собой разработчики Java, было обеспечение долговечности и переносимости кода. Одна из главных проблем, стоящих перед программистами — отсутствие гарантий того, что код, созданный сегодня, будет успешно выполняться завтра, даже на том же самом компьютере. Операционные системы и процессоры модернизируются, а все изменения в основных системных ресурсах могут приводить к неработоспособности программ. Пытаясь изменить эту ситуацию, проектировщики приняли ряд жестких решений в языке Java и виртуальной машине Java. Они поставили перед собой цель, чтобы "программы создавались лишь однажды, в любой среде, в любое время и навсегда". В значительной степени эта цель была достигнута.