Read more about »
  • Java 9 features
  • Read about Hadoop
  • Read about Storm
  • Read about Storm


There are number of java features. They are also known as java buzzwords.

  • Simple, Object Oriented, and Familiar :

    Java is a simple language that can be programmed without extensive programmer training. The fundamental concepts of Java technology are grasped quickly; programmers can be productive from the very beginning.

    The Java programming language is designed to be object oriented from the ground up. Java technology provides a clean and efficient object-based development platform.

    Keeping the Java programming language looking like C++ as far as possible results in it being a familiar language, while removing the unnecessary complexities of C++. Having the Java programming language retain many of the object-oriented features and the "look and feel" of C++ means that programmers can migrate easily to the Java platform and be productive quickly.

    Programmers using the Java programming language can access existing libraries of tested objects that provide functionality ranging from basic data types through I/O and network interfaces to graphical user interface toolkits. These libraries can be extended to provide new behavior.

  • Robust and Secure:

    The Java programming language is designed for creating highly reliable software. It provides extensive compile-time checking, followed by a second level of run-time checking.

    The memory management model is extremely simple: objects are created with a new operator. There are no explicit programmer-defined pointer data types, no pointer arithmetic, and automatic garbage collection. This simple memory management model eliminates entire classes of programming errors that bedevil C and C++ programmers. You can develop Java code with confidence that the system will find many errors quickly and that major problems won't lay dormant until after your production code has shipped.

    Java technology is designed to operate in distributed environments, which means that security is of paramount importance. With security features designed into the language and run-time system, Java technology lets you construct applications that can't be invaded from outside.

  • Architecture Neutral and Portable :

    Java technology is designed to support applications that will be deployed into heterogeneous network environments. In such environments, applications must be capable of executing on a variety of hardware architectures. Within this variety of hardware platforms, applications must execute atop a variety of operating systems and interoperate with multiple programming language interfaces. To accommodate the diversity of operating environments, the Java Compiler TM product generates bytecodes--an architecture neutral intermediate format designed to transport code efficiently to multiple hardware and software platforms. The interpreted nature of Java technology solves both the binary distribution problem and the version problem; the same Java programming language byte codes will run on any platform.


    Architecture neutrality is just one part of a truly portable system. Java technology takes portability a stage further by being strict in its definition of the basic language. Java technology puts a stake in the ground and specifies the sizes of its basic data types and the behavior of its arithmetic operators. Your programs are the same on every platform--there are no data type incompatibilities across hardware and software architectures.

    The architecture-neutral and portable language platform of Java technology is known as the Java virtual machine. It's the specification of an abstract machine for which Java programming language compilers can generate code. Specific implementations of the Java virtual machine for specific hardware and software platforms then provide the concrete realization of the virtual machine.

  • High Performance :

    Performance is always a consideration. The Java platform achieves superior performance by adopting a scheme by which the interpreter can run at full speed without needing to check the run-time environment.

    Applications requiring large amounts of compute power can be designed such that compute-intensive sections can be rewritten in native machine code as required and interfaced with the Java platform. In general, users perceive that interactive applications respond quickly even though they're interpreted.

    Java is faster than traditional interpretation since byte code is "close" to native code still somewhat slower than a compiled language (e.g., C++).In fact, it is about 20 times as slow as C. However, this speed is more than enough to run interactive, GUI and network-based applications, where the application is often idle, waiting for the user to do something, or waiting for data from the network.

  • Interpreted, Threaded, and Dynamic :

    The Java interpreter can execute Java bytecodes directly on any machine to which the interpreter and run-time system have been ported. In an interpreted platform such as Java technology-based system, the link phase of a program is simple, incremental, and lightweight. You benefit from much faster development cycles.

    The Java platform supports multithreading at the language level with the addition of sophisticated synchronization primitives.We can write Java programs that deal with many tasks at once by defining multiple threads. The main advantage of multi-threading is that it shares the same memory. Threads are important for multi-media, Web applications etc.

    While the Java Compiler is strict in its compile-time static checking, the language and run-time system are dynamic in their linking stages. Classes are linked only as needed. New code modules can be linked in on demand from a variety of sources, even from sources across a network.


Java is one of the world's most widely used computer language. Java is a simple, general-purpose, object-oriented, interpreted, robust, secure, architecture-neutral, portable, high-performance, multithreaded computer language. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another.

  • Slow performance: while bytecodes make Java a portable language to a great extent, they cause the performance to slow down to a certain extent as well. If you use Java Interpreter while running the bytecodes on a certain JVM, then it's considerably slower than the usual native code execution on that platform as the process adds an extra phase of translation of the bytecode instruction into the corresponding native code instruction.
  • Automatic memory management: Java uses the automatic garbage collector to handle all the memory management and the programmer has no control on it. Even, the execution of the garbage collection can not be controlled by the programmer.
  • Different JVM for different platform: Most of the JVM implementations usually follow all the specifications, but they add certain implementation-specific flavors as well. If you somehow use any of those features then you compromise with the portability of your code. But then, this is what makes Java a portable language, which is undoubtedly one of the major reasons for the popularity of Java
  • No support for low-level programming: With Java, low-level programming cannot be done as it is intended to be portable across platforms with the help of JVM.
  • Poor features in GUI: the look and feel of the Graphical User Interfaces written in Java using Swing may not be the same as the widget look and feel of the underlying operating system. Also Java supports less features when it comes to GUI controls.