Features of Java:

As per as software industry is consent following are the important features about java language
  1. Simple
  2. Platform Independent
  3. Architecture neutral
  4. Portable
  5. Multi thread
  6. Dynamic
  7. Distributed
  8. Robust
  9. High performance
  10. Secure
  11. Object oriented

Simple:

Java is very simple because of following reasons
  • Every java program can be written using simple English so that it is very easy to develop and understand, because of this reason java become very simple.
  • Java supports huge library, library is collection of predefined properties can be used to reduce the length of the program and burden of the developer can be reduced.
  • Platform Independent:

  • A language said to be platform independent that program is executed in any Irrespective of its development and compilation.

  • Example: java
  • A language set to be platform dependent whenever that program is executed in the same OS where it was developed & compiled but in other OS.
  • Architecture neutral:

  • A language is said to be architecture neutral or independent whenever that programming is executed by any processor irrespective of its development and compilation.

  • Example: java.
  • A language is set to be architecture dependent whenever that program is executed by the same processor where it was developed & compiled but not in other processor.

  • Example: C, C++.

    Portable:

  • If any language supports both platform independent & architecture neutral then that language is set to be portable.

  • Example: Java.

    Multithread:

    Flow of execution or flow of control is known as thread, based on execution of thread programming languages are classified into two types
  • Single thread programming language(STPL):
  • If any language supports single flow of execution known as single thread programming language.
    Example: C Language.
    The major disadvantages in single thread programming are
    Time consuming process to execute program more.
    Problem occur at one location will be reflection other location of program.
    The above Disadvantages can be overcome using multithreaded programming language.
  • Multithreaded programming language (MTPL):
  • If any language supports multiple flow of execution is known as multithreaded programming language
    . Example: Java.
    Because of multithreaded programming language time consuming process to execute the program will be reduced so that performance will be increased.

    Dynamic:

    Java is dynamic because of two reasons
  • Which supports dynamic only memory.
  • Which can be used to develop dynamic applications?
  • Dynamic memory: Whenever memory is allocated for the input values of a program at compile time known as Compile time memory or static memory, if the memory is allocated at runtime known as Runtime memory or Dynamic memory. The disadvantage of compile time memory is wastage of memory space, this disadvantage can be overcome by dynamic memory Note: Java supports only dynamic memory but not compile time memory so that there no much wastage of memory space.
    Dynamic application:
    If any application and content of application is common for every user known as Static application. If the content and output of application is different from different user then these application can be called as dynamic application.

    Note:
    Java language can be used to develop both static & dynamic applications but it is highly recommended to develop dynamic applications in the software industry. (Every internet based application dynamic application).

    Distributed:

    Network based applications mainly classified into two types
  • Client server architecture applications
  • Distributed applications
  • Client server architecture applications: In this scenario multiple client system for sharing of data. The main disadvantage of the client server architecture is when ever problem occur in the server system will be reflected on every client system. Distributed applications:
    In this scenario multiple client systems depends on multiple server systems so that even problem occur in one server will never be reflected on any client system. Java is a powerful language used to develop both client sever architecture applications & distributed applications (internet based applications)
    What is a difference between client server architecture & distributed applications ?

    In client server architecture multiple clients depends on a single server. Whereas distributed architecture multiple clients are depends on multiple server.
    architecture multiple clients are depends on multiple server.
    Technical Definition:
    Java is a programming language used to develop distributed application it’ self a wide range of platform

    Robust:

    Java is a very strong because of it’s capability to handle runtime errors or exceptions. If any error is generated a compile time known as compile time error or syntax error ,if any error is generated at runtime is known as runtime error or exception If any programming language it is vary easy to handle compile errors ,but it is difficult to handle run time errors .but in java language a special concept was introduced. here it used to handle the runtime error very efficiently, so that java is very strong compare to other languages

    High performance:

    Java is high performance language because of following reasons
  • Multithreaded:
  • java is multithread programming language so that time consuming process is reduced to execute the program
  • Garbage collection:
  • which can be used to deallocate unused memory spaces automatically. In java program because of this wastage of memory space is reducing. If any thread is executing in the background of java program known as back ground thread daemon thread.
    Example: garbage collector
  • Magic of byte code:
  • after compilation of java program byte code introduction are generated there are having capability to convent those instructions into any processor understandable instructions, because of this reason time consuming process will be reduced while converting byte code instructions in to processor understandable instructions.
  • Pre from the pointers:
  • java does not support explicit pointers so that there is no security problem .there is no difficulty to handle the program and explicit of program is reduced ,because of this performance of program is increased.

    Secure:

    Java supports or provides high level security in two different ways
  • Internal security (Programming level security).
  • External Security.
  • In java language programming level security can be given using a special concept called OOPS (Object oriented programming structure).
    Whenever we are providing security for the data outside the program are at a time of sending request or receive a response is known as external security External security can be achieved using encryption and decryption techniques.
    Encryption:
    Converting a normal text into a cyber text (unreadable format) is known as encryption.
    Decryption:
    Converting a cyber text into a normal text is known as decryption.
    Java provide a more security both at programming level and external level by supporting oops concept and encryption , decryption techniques.

    Definition of OOPS:

    OOPS is a concept which is collection of principle used to provide a security for data and also improve performance of program.