| At a glance, Java codes looks very similar to that 
              of C /C++, but as you start to compare them many differences soon 
              emerge.  Here we discuss here the differences at the syntax 
              level. In Chapter 3: Supplements 
              we discuss the differences between Java and C++ at the higher object-oriented 
              level, such as class descriptions, methods, etc. Unlike C/C++, standard Java has: 
              No preprocessor or header files 
                - all Java code occurs within the class structure. Java methods 
                can be invoked (i.e. called) before they are defined so 
                they are not declared as in C/C++. No global variables - all 
                variables belong to a particular class. Java static class variables 
                can serve the same purpose as global variables but without the 
                collisions in namespace that occur in C/C++.Automatic garbage collection 
                - the JVM manages memory allocation and removal. The programmer 
                does not need to allocate memory or delete data directly. Memory 
                leaks (loss of free memory space) can still occur in Java 
                but they are much less of a problem. No pointers - Java does 
                not allow direct access to memory addresses. This removes a huge 
                source of errors and security problems.Type safety - all data must 
                have an explicit type and you cannot arbitrarily cast one type 
                to another. For example, you cannot cast a reference to a primitive 
                type as can in C where a pointer can be cast to an integer to 
                obtain a memory address value.Strict lengths for primitive types 
                - all of the integer types have a fixed number of bits (in C/C++ 
                these can vary with platform) Floating point exponents, though, 
                can vary with the platform unless the strictfp 
                modifier is used.Unrestricted location of variable declarations 
                - you can define local variables in a method at the place where 
                you use them rather than only at the beginning. No goto 
                statement - though long discouraged by computer science 
                teachers, the infamous goto 
                spaghetti code maker is nevertheless available in C/C++.No typedef 
                - no way is provided in Java to give alias names to types or classes.No union 
                - memory can only have a single type. No overlapping types as 
                in a union.No struct 
                - replaced by class in Java.No bit fields - cannot specified 
                the number of bits spanned by a field.No enum 
                - can use object constants instead.No comma operator - while 
                Java allows a comma in the for 
                 statement,for( 
                i=0, j=2; i<5; i++, j++)...
 this is not the same as the comma operator in C that evaluates 
                two expressions and returns the value of the one to the right 
                of the comma.
 References 
              & Web Resources  Latest update: Dec.11.2003 |