Java learning catalog - Technical Overview

Technical Overview

Java Programming Language

Java programming language is a high-level language, has the following characteristics:

  • Simple (Simple)
  • Object Oriented (Object oriented)
  • Distributed (Distributed)
  • Multithreading (Multithreaded)
  • Dynamic (Dynamic)
  • Platform-independent (Architecture neutral)
  • Portable (Portable)
  • High performance (High performance)
  • Robust (Robust)
  • Security (Secure)

Reference links:

Java 白皮书
Java Language and Virtual Machine Specifications
The Java® Language Specification Java SE 8 Edition

Java Platform

Platform is hardware or software environment running, such as Microsoft Windows, Linux, Solaris OS and Mac OS. Most platform may be described as a combination of operating system and the underlying hardware.
Java platform differs from most other platforms, because it is a pure software running on other platforms based on the hardware platform.

The Java platform has two components:

  • Java Virtual Machine (Java Virtual Machine - JVM)
    • Java Virtual Machine (JVM) is the foundation of the Java platform and is ported to various hardware-based platforms.
  • Java Application Programming Interface (Java Application Programming Interface - API)
    • Java Application Programming Interface (API) is a collection of features that are available provide a lot of ready-made components. It is grouped into libraries of related classes and interfaces, these libraries are referred to as packages.

Java Virtual Machine and the Java application programming interfaces and hardware isolate diagram is as follows:

+-------------------------+
|     JavaProgram.java    |
+---------+---------------+
|   API   |               |     +---------------+
+---------+               +---->+ Java Platform |
|  Java Virtual Machine   |     +---------------+
+-------------------------+
| Hardware-Based Platform |
+-------------------------+

As a platform-independent environment, Java platform may be a little slower than native code. However, advances in compiler and virtual machine technology of its performance close to native code performance without affecting portability.

Java function

GM's advanced Java programming language is a powerful software platform. Each full Java platform will provide you with the following features:

  • Development Tools: Development tools provide everything you need to compiling, running, monitoring, debugging and logging applications. As a new developer, the main tools you will use the javac compiler, the Java launcher and javadoc documentation tool.
  • Application Programming Interface (API): API provides the core functionality of the Java programming language. It provides a lot of useful classes, you can use in your own applications. It covers everything from basic objects to networking and security, to XML generation and database access and so on. The core API is very large, for details please refer to the Java Platform Standard Edition 8 document .
  • Deployment technologies: JDK software provides standard mechanisms, such as for deploying the application to the end user's Java Web Start software and Java Plug-In software.
  • User Interface Toolkit: JavaFX, Swing and Java 2D toolkits make creating sophisticated graphical user interface (GUI) as possible.
  • Integrated Library: Integrated library supports database access and manipulate remote objects, such as Java IDL API, JDBC API, Java Naming and Directory Interface (JNDI) API, Java Remote Method Invocation over Internet Inter-ORB Protocol Technology (Java RMI-IIOP Technology), etc. .

Java Advantage

  • Quick start: Although the Java programming language is a powerful object-oriented language, but it is very easy to learn, especially for already familiar with C or C ++ programmers.
  • Fewer write code: program metrics (class count counting method, etc.) of the comparison shows that programs written in the Java programming language is four times smaller than the same program written in C ++.
  • Write better code: Java programming language to encourage good coding practice, automatic garbage collection helps you avoid memory leaks. It is object-oriented, JavaBeans ™ component architecture and a wide range of API and extensible so that you can reuse existing code and tested introducing fewer errors.
  • Faster development process: Java programming language is simpler than C ++, therefore, when writing it, development time may be twice as fast. Your program also requires less code.
  • Avoid platform dependencies: by avoiding the use of libraries written in other languages, can maintain portability program.
  • Write once, run anywhere: Because applications using the Java programming language compiler written for machine-independent byte code, so they can always run on any Java platform.
  • More easily distribute software: Java Web Start software, users simply click to launch the application. Automatic version check at startup ensures that users keep abreast of the latest version of the software. If updates are available, Java Web Start software will automatically update their installations.

Java technology system

Java Platform, Standard Edition (Java SE)

Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers.
Java provides the applications needed in today's rich user interface, performance, versatility, portability and security.

Java SE components:

OpenJDK releases:

Java Platform, Enterprise Edition (Java EE)

Java Platform, Enterprise Edition (Java EE) is a standard community-driven enterprise software.
Java EE using the Java Community Community Process (the JCP standards) developed the standard contributors have industry experts, commercial and open source, Java user groups and countless individuals. Each version incorporates new functionality in line with industry needs, improve application portability, and increased developer productivity.
Today, Java EE provides a wealth of enterprise software platform, and more than 20 of Java EE-compatible realize choose from.

Reference links:

Oracle Java™ EE 8 SDK
Java EE Resources

1. JVM 是什么?为什么 Java 是独立于平台的编程语言?

JVM 指 Java 虚拟机,是运行 Java 字节码的虚拟机。
每个 Java 源文件都被编译成 Java 虚拟机可以执行的字节码文件。
Java 虚拟机有针对各个平台的实现,从而实现相同的字节码执行可以得到相同的结果,最终实现一次编译,到处执行。 
字节码和 Java 虚拟机是 Java独立于平台的编程语言的根本原因。

2. JDK 和 JRE 有什么不同?

JRE = JVM + Java 核心类库与支持文件
JDK = JRE + Java 开发工具

3. Oracle JDK 和 OpenJDK 异同?

- Oracle JDK版本将每三年发布一次,而OpenJDK版本每三个月发布一次;
- OpenJDK 是一个参考模型并且是完全开源的,而Oracle JDK是OpenJDK的一个实现,并不是完全开源的;
- Oracle JDK 比 OpenJDK 更稳定。
  OpenJDK 和 Oracle JDK 的代码几乎相同,但 Oracle JDK 有更多的类和一些错误修复。
  因此,如果您想开发企业/商业软件,我建议您选择 Oracle JDK,因为它经过了彻底的测试和稳定。
  某些情况下,有些人提到在使用 OpenJDK 可能会遇到了许多应用程序崩溃的问题,但是,只需切换到Oracle JDK就可以解决问题;
- 在响应性和 JVM 性能方面,Oracle JDK 与 OpenJDK 相比提供了更好的性能;
- Oracle JDK 不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来获取最新版本;
- Oracle JDK 根据二进制代码许可协议获得许可,而 OpenJDK 根据GPL v2许可获得许可。

4.  Java 和 C++ 的区别?

- Java 和 C++ 都是面向对象的语言,都支持封装、继承和多态
- Java 不提供指针来直接访问内存,程序内存更加安全
- Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
- Java 有自动内存管理机制,不需要程序员手动释放无用内存 

Java Platform, Micro Edition (Java ME)

Java Platform, Micro Edition (Java ME) applications for the Internet of Things on embedded and mobile devices running provides a powerful and flexible environment: microcontrollers, sensors, gateways, mobile phone, personal digital assistant (PDA) set-top boxes, printer and so on.
Java ME includes flexible user interfaces, robust security, built-in support for network protocols and can be dynamically downloaded networking and offline applications. Java ME based applications can be ported on many devices, but you can take full advantage of the native capabilities of each device.

Guess you like

Origin www.cnblogs.com/acmeryblog/p/11115915.html
Recommended