Java is a revolutionary language. The properties that make Java so attractive are present in other programming languages. Many languages are ideal for certain types of applications, even more than Java. But Java brings all these properties together in a single language. It is a revolutionary leap forward for the software industry.
Let’s look at some of the properties in more detail:
Many older languages, like C and Pascal, were procedural languages. Procedures (also called functions) were blocks of code that were part of a module or application. Procedures passed parameters (primitive data types such as integers, characters, strings and floating point numbers). Code was treated separately to data. You had to pass around data structures and procedures could easily modify its content. This was a source of problems, as parts of a program can have unintended effects on other parts. The location of which procedure was at fault wasted a lot of time and effort, especially large programs.
In a procedural language, you might even get the memory of a data structure. Armed with this location, you can read and write data at a later time, or accidentally overwrite the contents.
Java is an object-oriented language. An object-oriented language refers to objects. Objects contain both data (member variables) and code (methods). Each object belongs to a particularclass, a model describing the variables and methods of an object member offers. In Java, almost every variable is an object of some kind or another – even strings. Object-oriented programming requires a different way of thinking, but is a better way to design the software programming procedure.
Most programming languages are designed for a specific operating system and processor architecture . When the source code ( the instructions that make up a program) , which is converted into machine code that can be executed only on one type of machine is compiled. This process produces native code , which is extremely fast.
Another type of language is one that is interpreted. Interpreted code is read by a software application ( the interpreter ), which performs the specified actions . Often interpreted code need not be compiled – translated as running. For this reason, the interpreted code is quite slow , but often portable across different operating systems and processor architectures.
Java takes the best of both techniques. Java code is compiled into machine code independent of the platform , which is called Java bytecode. A special type of performer , known as a Java (JVM ) virtual machine reads the byte code , and processes. Figure One shows the disassembly of a small Java application. Bytecode , indicated by the arrow , shown in text form here, but when compiled is represented as bytes to conserve space.
If ever complex applications written in C or Perl have, you’ve probably come across the concept of multiple processes before. An application can split itself into separate copies running simultaneously. Each copy replicates code and data, resulting in increased memory consumption. Get copies to talk together can be complex and frustrating. Creating each process involves a call to the operating system, which consumes extra CPU time.
Also Read: Messaging Apps for iPhone
A better model is to use multiple threads, referred to as threads for short. Themes can share data and code, making it easier to share data between instances of thread. They also use less memory and CPU overhead. Some languages, such as C + +, with support for themes, but are difficult to use. Java supports multithreaded embedded in language. Issues require a different way of thinking, but to understand pretty quickly. Thread support in Java is very simple to use, and the use of wireless applications and applets is quite common.
Automatic garbage collection
No, we’re not talking about taking out the trash (although a team that could literally do that would be kind of neat). Garbage collection refers to the claim unused memory space. When applications create objects, the JVM allocates memory space for storage. When the object is no longer needed (without reference to the object exists), the memory space can be recovered for further use.
Also Read: Top 10 PHP Tips for Developers
Languages like C + + programmers force to allocate and free memory for data and objects manually. This adds additional complexity, but it also causes another problem – memory leaks. When programmers forget to deallocate memory, the amount of free memory available. Programs that frequently create and destroy objects may come to find that there is no memory left. In Java, the programmer is free of such concerns, as the JVM perform automatic garbage collection of objects.
Security is a big issue with Java. Since Java applets are downloaded remotely, and run in a browser , security is a big concern. We do not want applets to read our personal documents, delete files, or cause damage. A level API , there are strong security restrictions on file and network access for applets , as well as support for digital signatures to verify the integrity of downloaded code . A bytecode level , inspection for obvious hacks such as stack manipulation or valid bytecode . Strong security mechanisms in Java help protect against accidental or intentional security violations , but it is important to remember that no system is perfect . The weakest link in the chain is the Java virtual machine running on – A JVM with known security flaws can be prone to attacks. It’s also worth noting that, while there has been some weaknesses identified in JVM , are rare, and usually fixed quickly.
Network and “Internet” aware
Java was designed to be “Internet” aware, and to support network programming. The Java API provides extensive support network, from sockets and IP addresses, URLs and HTTP. It is very easy to write network applications in Java, and the code is completely portable across platforms. In languages like C / C + +, the network code should be re-written for different operating systems, and is often more complex. The Java support network saves time and effort.
Java also includes support for the programming of the more exotic and remote-method invocation (RMI), CORBA and Jini network. These technologies of distributed systems make Java an attractive choice for large distributed systems.