Java features

This article was written for people who were programming in other languages and would like to program in Java. This time, I will describe the features of what Java is a programming language.

Notes

This article is based on the content of the Wiki. wiki link https://ja.wikipedia.org/wiki/Java

Java features

According to Oracle, a current Java developer, Java has six characteristics.

1. Object oriented

Java's main programming paradigm (which gives programmers a program perspective) is said to be class-based object-oriented.

2. Platform independent

What is a platform?

The underlying equipment, software, services, or combinations thereof (operating environment) required to operate the software

It refers to. (Http://e-words.jp/w/Platform.html) In other words, platform-independent is a programming language that can be run on any platform (= operating environment is Windows, Mac, or Linux). On the other hand, if it is platform-dependent, you need to compile it for each platform.

Detailed platform-independent description

How do you explain to new SEs that "Java is OS independent"? There was an easy-to-understand answer, so I will explain it in detail.

First, as a difference between Java and other languages

Basically, the compilation result of the compilation language is in an OS-specific format.

That is important. You can write and execute it in the same way on any platform in languages such as C and Ruby, but the compiled result will be for Windows for Windows and for mac for mac. So, if you bring the program written in Windows to mac, you need to recompile it. However, Java runs on a virtual machine called JVM (Java Virtual Machine), and this JVM handles the differences in OS. Thanks to this, even if you bring a program written in Windows to mac, it is a big feature of Java that you can do it without recompiling. Languages other than Java that run on this JVM are Scala, Kotlin, Groovy, etc.

3. Multithread

Multithreading is the ability to run multiple threads at the same time. A thread in this case is a task, which means that you can perform multiple tasks at the same time. I searched a lot, but couldn't find a language that couldn't be multithreaded.

4. Garbage collection

Garbage collection is the freeing of unnecessary data space. To put it more simply, it is a function that increases the number of places that can be used by emptying data that is no longer in use. C language / C ++ is implemented as a library, but Java is implemented as a standard function of the language (= it will always do it).

5. Distributed computing

Distributed computing is the use of multiple computers as a single computer by connecting them via a network. Java can do this distributed computing. It seems that any programming language that can access all the hardware in the system can be used, but the Java language can call programs between applications via the network called Java-RMI (Java Remote Method Invocation) without being aware of the network. I have an API that says With this Java-RMI, you can write all of your distributed computing in Java so you don't have to use another language. This is one of Java's strengths in distributed computing. (See What is Java-standard distributed object technology "Java-RMI")

6. Security

Java has been designed with security in mind from the beginning of development and is trusted in terms of security. Specifically, it is said to have a security mechanism based on the sandbox model. What is a sandbox?

A security mechanism that prevents unauthorized operation of the system by operating programs received from the outside in a protected area.

It refers to. (See https://ja.wikipedia.org/wiki/Sandbox_ (Security))


The above 6 points are the features.

--fin--

Recommended Posts

Java features
Java features
[Java] About Java 12 features
About Java features
java1.8 new features
Predicted Features of Java
Java
Java
[Java] Three features of Java
New features from Java7 to Java8
Java learning (0)
Studying Java ―― 3
[Java] array
Java protected
[Java] Annotation
Java array
Studying Java ―― 9
Java scratch scratch
java (constructor)
[Java] ArrayDeque
java (override)
java (method)
Java Day 2018
Java string
java (array)
Java static
java beginner 4
Studying Java ―― 4
Java (set)
java shellsort
[Java] compareTo
Studying Java -5
java reflexes
Java memorandum
☾ Java / Collection
Java array
Studying Java ―― 1
[Java] Array
[Java] Polymorphism
Studying Java # 0
Java review
java framework
[Java] Inheritance
FastScanner Java
java beginner 3
Java memo
java (encapsulation)
Java inheritance
[Java] Overload
Java basics
Decompile Java
Java 9 new features and sample code
[Java] Annotation
java notes
java beginner
Java (add2)
JAVA (Map)
[java] interface
Java9 collection
Java basics
Java methods