Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why the Java language need bytecode? Why java design in this way? [closed]

Tags:

java

bytecode

As I know a java developer, need to let their .java file to become .class, and the .class requires the JVM to convert to native code to execute. Why the Java design in this way? Why don't just as a scripting language, using a interpreter, to interpreter .java file? or why don't just convert it to executable like C? Why need to convert to bytecode? What is the design philosophy behind the java language?

like image 225
DNB5brims Avatar asked Nov 16 '11 15:11

DNB5brims


People also ask

Why Java bytecode is needed?

Bytecode in Java is the reason java is platform-independent, as soon as a Java program is compiled bytecode is generated. To be more precise a Java bytecode is the machine code in the form of a . class file. A bytecode in Java is the instruction set for Java Virtual Machine and acts similar to an assembler.

What is Java bytecode and how is it used?

In computing, Java bytecode is the bytecode-structured instruction set of the Java virtual machine (JVM), a virtual machine that enables a computer to run programs written in the Java programming language and several other programming languages, see List of JVM languages.

What happens to Java bytecode?

Bytecode is the compiled format for Java programs. Once a Java program has been converted to bytecode, it can be transferred across a network and executed by Java Virtual Machine (JVM). Bytecode files generally have a .

What is Java bytecode answer?

Byte Code can be defined as an intermediate code generated by the compiler after the compilation of source code(JAVA Program). This intermediate code makes Java a platform-independent language.


1 Answers

It is for sake of speed and portability at the same time.

All of what I am going to say is to be adapted and moderated depending on the case, but roughly:

  • If you merely interpret the java file with an interpreter you would have portability but not speed.

  • If you have to compile the code for a given processor architecture you would have speed but not portability.

  • With the bytecode, you compile the code (into bytecode) for a common machine that will execute it (the JVM) it is a compromise between speed and portability.

like image 111
lc2817 Avatar answered Sep 21 '22 10:09

lc2817