Here we list some of the major benefits that Java can provide for general science and engineering applications:
Platform Independence
Scientists use more types of computers and OS's that most other groups. Code that can be exchanged without requiring rewrites and recompilation saves time and effort.
Object Oriented
Besides the usual benefits from OOP, many scientific programs can benefit from thinking in terms of objects. For example, particles in a scattering simulation are naturally self-contained objects.
Threading
Multi-processing is very useful for many scientific tasks, such as, for example, simulations of phenomena where many processes occur simultaneously.
Networking
Java comes with many networking capabilities that allow one to build distributed systems. Such capabilities can be applied, for example, to remote data taking from sensors.