You can explicitly import a class by name, or implicitly import classes on demand from a named package. Determining what files to read can be tricky, but the actual business of importing is much the same as file inclusion in C. A Java program, and a Java library, both become a hierarchy of directories containing many small files. Methods vs. Functions Essentially all executable Java code resides in methods, defined inside classes. No methods exist outside classes, or inside other methods. Not everything is easy in translating Java to C, however.
Portability is one of the first things to suffer.
Java byte codes , the executable form of a Java program, are designed to behave the same on any Java Virtual Machine . C set new standards in software portability, but Java sets even higher standards. Translating Java to C involves some compromises in this area. The integer types, byte , int, and long, are always twos complement, of a given size. The floating-point types, float and double, are always IEEE format.