What is Java?
Java is a multi-purpose, object-oriented programming language that is very similar to C and C ++. However, it is easier to use and it is possible to build powerful programs with it. Of course, the definition given by Sun Microsystems in 2000 may be more clear than the above definition:
“Java is a simple, object-oriented, network-friendly, interpretable, robust, secure, architecture-free, portable, high-performance, multi-threaded, and dynamic computer language.” In the following, we will examine each of the above characteristics separately.
Java is a simple language
This amazing programming language was originally modeled based on the C and C ++ languages by removing some confusing features. These features include pointers, multiple inheritance implementations, and overload operators that were removed in Java. For instance, one of the features not found in C ++ / C; But one of the basic features of Java is the ability to recycle memory (garbage-collection), which automatically removes useless objects and arrays.
Java is an object-oriented language
The focus on Java objectivism has led developers who use this language to use it to solve a problem, rather than relying on it to overcome the limitations of the problem. This state distinguishes between Java and C. For example, if you want to write a plan for a bank account, in Java you only have to save the bank account object. On the other hand, in C, you have to program the account balance and behaviors like deposit or withdrawal independently.
Java is a network-based language
A large number of network libraries in Java makes it easier to work with Transfer Control Protocol / Internet Protocol (TCP / IP) and network protocols such as HTTP (Hypertext Transfer Protocol) and FTP (File Transfer Protocol). In addition, Java applications can access objects through TCP / IP networks, through URLs, and this access is as simple as accessing the local file system.
Java is an interpreted language
A Java runtime program runs indirectly through a virtual machine and its associated runtime environment on an infrastructure platform (such as Windows or Linux). Interpretation refers to the act of identifying the meaning of instructions and then selecting platform-specific instructions to execute.
Java Interpretability also makes it possible to delay the link between different parts of the Java program until execution. And this increases the speed of program development.
A solid language
These programming language applications must be trusted. Because they are used in both general applications and critical missions. Features of the Java language that make it strong include:
- Re-checking the data type
- Prevent version mismatch
- Real arrays with automatic ending checking
- Setting aside pointers
A secure language
Java applications are used in networked / distributed environments. Because Java applications can run on a variety of network platforms, it is important to secure these platforms against malicious code that could spread viruses, steal bank card information, or perform malicious activities. Java is theoretically secure; But in practice, various security vulnerabilities have been identified and exploited. As a result, in the past, Sun Microsystems and now Oracle has been releasing security updates for Java.
Java is a portable language
Independence from architecture has made This programming language portable. However, the portability of Java is more than just the independence of bytecode instructions from the platform.
The interpretive nature of Java has led to high performance. Java uses just-in-time compilation for high-performance applications. That is, it analyzes the interpreted bytecode instructions and compiles the high-frequency interpreted instructions into platform-specific instructions.
Multi-threaded programming language
This programming language supports the concept of running multiple threads to improve the performance of programs that run multiple tasks at once.
For example, a program that manages the graphical user interface (GUI) while waiting for input from a network connection uses another thread instead of the GUI thread for this wait. Thus, the graphical interface of the program is still responsive.
Interactions between application code and libraries are dynamic. Therefore, there is no need to create an explicit link between them. As a result, when an application or one of its libraries evolves, the developer will only have to publish the updated application or library. However, the dynamic behavior of Java means that less code is needed when changing the code But this method of dissemination can also cause interference.
The origins of Java
This programming language was developed by a team at Sun Microsystems under James Gosling and released in 1995. The main goal of the Java creators was to create a language that they could run on consumer applications. These designers could have imagined a world in which code is executed on a refrigerator or toaster, what we know today as the Internet of Things. We have only developed devices with such capabilities in recent years, so it must be said that these early designers were far ahead of their time.