Stop being so selfish and giving those retarded answers..why does any one have to use only google in order to learn?
Isn't the forum's purpose to help everybody learn? Nothing constructive is considered as spam as far as i am concerned.
By the way, C++ is way better than java.
EDIT: After taking into consideration this answer..i decided to re-post my point of view again.
Both C++ and Java are object-oriented languages which means that they both work the same in the inside. The main difference is that Java is actually most used in Internet, and you may say that its an "easier" language to learn.
In the contrary, C++ has much more capabilities, as you are able to program even your own system(like windows)...the language itself has many characteristics of the so called "low-level languages" like assembly.
It's hard to learn and use C++ properly but its worth it.
I am studying those languages latety...(i'm a programer) so i would really like to hear your opinion about this.
Well, I myself am studying informatics in the university at the moment, being in my fourth half-year/ semester.
The main differences I know between Java and C++ go here:
C++:
-Procedural language, not object oriented. "Objects" you can create are "structs" that do not basically implement inheritation. Simulated inheritation allows one object to inherit from multiple other objects.
-Registry and memory calculations: You can do almost everything with adresses in your memory and jump to any memory you want to, though this may be risky. This is very similar to assembler programming.
-Compiles to optimize the usage on the running computer. Transfering a compiled program to another PC and/or system may cause problems.
-Very few basic data types, no booleans. You have to use some other ways.
-Less dynamic memory reservation. If you use a 2D array, it's being reserved in the memory as if it was a "square".
Java:
-Objectoriented, everything bases on objects, their methods and attributes and the methods and attributes of their classes. Classes can inherit from one other class only, but also implement multiple static interfaces.
-No adress calculation in the memory, that's why it is called sort of "cleaner" and "safer".
-Generally compiles into bytecode to feed the Java Virtual Machine with it's information. Some of the bytecode is being compiled upon program execution. You can also get compilers that compile in C++'s compiler's ways.
-The JVM allows the usage of Java on every single system and PC with the basic Java utilities and does not really slow down any progress.
-8 basic data types (void does
not count, says my prof xD ).
-Dynamic reservation of arrays: Each array is an object. If you create a 2D array, it's an array of objects on first rank. Each of these objects has to be intialized again, reserving another space of memory, but not automatically reserving a "square", which may fail if the memory has no place for a "square".
There are far more differences, but those are the main ones I supposed to be important.