Java Vs. C++

Since their inception, computers have played an increasingly important role in today’s society. Advancements in technology have enabled computers to become faster and cheaper. Today, the majority of families own a home computer that is vastly more powerful than giant mainframes of years gone by. Computer hardware has been evolving rapidly with no end in sight, and with all of the advancements in computer hardware come advancements in computer software; gone are the days when FORTRAN and COBOL were the languages of choice. Today,vvv two hot new object oriented programming languages have entered the computer programming arena, Java and C++, this paper will examine the similarities and differences between these new languages.
Both Java and C++ are object oriented programming languages, but what does that mean? Object oriented programming (OOP) emphasizes data, instead of algorithms for solving problems. Instead of trying to fit a problem to the procedural approach of a language, OOP attempts to fit the language to the problem, in other words, OOP is structured to produce an answer without changing the question. Object oriented programming involves two separate parts, class and objects. Class is a specification that describes a new data form, it is a template that defines how an object will look and behave.(Kaj 1996, 8) An object is that particular data structure constructed using the parameters defined by class.(Prata 1995, 5)
The object oriented programming approach to program design is to first design classes that accurately represent those things with which the program deals. A drawing program, for example, might define classes to represent rectangles, lines, circles, brushes, pens, and the like. The class definitions, recall, include a descriptions of permissible options for each class, such as moving a circle or rotating a line.(Prata 1995, 5)
The main advantages of OOP, besides being able to create more complex software, and develop answers without changing the questions, are numerous. OOP facilitates creating reusable code, which can save a lot of work. Information can be hidden to safeguard data from improper access. Polymorphism lets the programmer create multiple definitions for operators and functions, with the programming context determining which definition is used, also Inheritance lets the programmer derive new classes from older ones. When using OOP, the programmer can focus on representing concepts, instead of concentrating on tasks. (Prata 1995, 6)
Java, although in many respects similar to C++, is actually just a more simplified version of the latter. Java has a C++ like syntax, but it is more purely object oriented, also, memory management, which can be a problem with C++, is no longer a factor with Java, due to the fact that Java incorporates a built in garbage collector, which makes it unnecessary to explicitly free allocated memory.(Kaj 1996, 1) Another difference is that Java, unlike C++, does not contain pointers.(http://www.ftc.nrcs.usda.gov/devtools/java/java/noMoreC/index.html) (A pointer is a variable that tells a computer where data is placed.)(Prata 1995, 93) Java does not have an explicit pointer type, instead, it does passes all arrays (information entered into the program and stored in memory) and objects by reference,(http://www.ftc.nrcs.usda.gov/devtools/java/java/noMoreC/index.html) meaning that the objects or arrays in question have been defined elsewhere in the program, and the programmer does not have to keep pointing out wh
ere that information is stored. Since Java does not contain pointers, struct and union (two C++ favorites) are not part of the language because they rely on pointers to function.(http://www.ftc.nrcs.usda.gov/devtools/java/java/noMoreC/index.html)
Java differs from C++ in other ways too, command line arguments that are passed to a Java application are different in number and type than those passed to a C or C++ program. For example, when someone starts a C++ program, the system passes two parameters to it: argc- the number of arguments in the command line, and argv- a pointer to an array of strings that contain the arguments. When a Java application is started, the system passes only one parameter, args- an array of Strings (not a pointer to an array) that contain arguments.http://www.ftc.nrcs.usda.gov/devtools/java/java/noMoreC/index.html Speaking of strings, (A string is a series of characters, much like a sentence.)(Prata 1995, 8), they are different in Java. In C++, strings are stored in arrays, in Java strings are treated as their own objects, and do not have to be stored and recalled from a certain place.
Java and C++ each have their own