| Feature |
In
C? |
In
C++? |
Comments |
| Local variable
declarations |
No |
Yes |
Java supports C++-style local
variable declarations.
(C only supports local declarations are the start
of a block.)
|
| Forward references |
Yes |
Yes |
Java supports flexible forward
references.
It does not have the concept of
declarations and definitions as in C/C++.
|
| Method overloading |
No |
Yes |
Java uses overloading similar to
C++.
Java does not support global
functions.
|
| The void return type |
Yes |
Yes |
Java uses void for a return type, but does not support
(void) casts
|
| The void argument list |
Yes |
Optional |
Java does not use void to indicate no parameters
|
| The void
* type |
Yes |
Yes |
Java has no pointer types
|
| Old modifiers |
Yes |
Yes |
Java does not
support long, short, signed, unsigned, or const as modifiers.
Java does support the volatile modifier.
|
| New modifiers |
No |
No |
Java supports modifiers: final,
native, synchronized, and transient
|
No structs or
unions |
Yes |
Yes |
Java does not support structs or
unions
|
| Enumerations (enums) |
Yes |
Yes |
Java did not support enums
prior to JDK 1.5 (Java 5). As of Java 5, it now does.
|
| No method types |
Yes |
Yes |
Java does not support
function/method addresses
|
| No bitfields |
Yes |
Yes |
Java does not support bitfields
|
| Variable-length
argument lists |
Yes |
Yes |
Java did not support
variable-length argument lists. However, in JDK 1.5 (Java
5), it does support variable-length argument lists.
|