is that Java programs are generally compiled into Java virtual machine code. This code is then stored on the computer that the program is executed on and can cause issues with different computer architectures if two programs try to use the same code at the same time. Java programs that are compiled into the Java virtual machine also have to share a single Shared library, which causes the library to be dependent on the version of Java that’s being used. The Java virtual machine also limits the number of Java classes that can be used at the same time. This makes Java harder to reuse because multiple instances of the same class will create conflicts.