Which of the following statements best describes the Java programming language?
A) Java is a procedural programming language that requires compilation into machine code.
B) Java is an object-oriented programming language that is designed to be platform-independent through the use of the Java Virtual Machine (JVM).
C) Java is a scripting language used primarily for web development and does not require a runtime environment.
D) Java is a functional programming language that emphasizes immutability and stateless functions.