What is Java?
Java is:
- A computer programming language
- A software development platform
- A software running platform
A software deployment environment What do you mean, explain it separately?
Java is a computer programming language
1.1: Language
It is not necessary for us to define the language accurately, but we all know that Chinese, English and so on are languages. What is language used for? It is clear that language is used to communicate, for example, we are now looking at these words, in fact, we communicate through these words.
1.2: Computer Programming
The so-called computer programming is: to our requirements and ideas, according to the computer can understand the rules and conventions, written out of the process is programming. The result of programming is something that a computer can read and execute and process, and we call it software or programs. In fact, the program is the set of commands (instruction set) that we send to the computer.
1.3:java is a computer programming language
We say that Java is a computer programming language, first of all: Java is a language, that is, Java is used to communicate, then who and whom to communicate? It is obvious that people and computers communicate, in other words, our requirements and ideas in Java expression, then the computer can understand, we can run according to our requirements, and this process is what we said to use Java programming, so we speak Java is a computer programming language.
In order for the computer to understand, Java will have a series of rules and conventions, these are the Java syntax.
Java is a software development platform
2.1: What is software development
Can be simply understood as: The result of programming is software or programs, and programming process is software development. The basic steps of software development include: Requirement analysis, summary design, detailed design, coding, testing, maintenance and other stages.
2.2: What is the development platform
In the process of software development, we need a lot of tools to assist our work, it is impossible to do everything from scratch. We refer to the programming environment and the corresponding auxiliary tools collectively as the development environment, and the development platform is used to provide this development environment.
2.3:java is a development platform
Java is not simply a programming language, it itself provides a series of Java development needs of the environment and tools for compiling, interpreting, document generation, packaging, etc., such as: Javac.exe, Java.exe, and so on, which we will talk about later, now do not understand and no relationship. So we're talking about Java as a development platform
Java is a software running platform
3.1: What is the running platform of software
Just as we need sunlight, air, water and food to survive, the software ultimately needs to be able to run, and a range of external environments are needed to support the operation of the software, which is the platform for running it.
3.2:java is a running platform
Java itself provides the operating environment required for Java software, and Java applications can run on machines with the JRE (Java Runtime Environment) installed, so we say Java is a running platform.
Jre:java Runtime Environment,java operating environment.
Java is a software deployment environment
4.1: What is the deployment of software
Simply put, the deployment is the installation, the software is placed in the appropriate place, and the corresponding configuration (commonly referred to as the deployment description), so that the software can work properly.
4.2:java is a software deployment environment
Java itself is a development platform, the development of Java programs are also running on the Java platform. In other words, the development of the Java program is also deployed on the Java platform, this is especially in the later learning Jee (Java Enterprise Edition), the embodiment is more obvious.
What Java can do
Java can do a lot of things, involving all aspects of the field of programming.
1: Desktop-level apps: Especially desktop-level applications that require cross-platform.
First explain the desktop application: The simple thing is that the main functions are running on our native programs, such as Word, Excel and other applications running on this computer belong to the desktop application.
2: Enterprise-class applications
First explain the enterprise application: The simple is the large-scale application, the general use of more people, the large amount of data, the stability of the system, security, scalability and the availability of high requirements.
This is one of the most widely used areas of Java, and almost a single show. Including a variety of industry applications, enterprise information, including e-government, etc., the field involves: Office automation OA, CRM, HR HR, ERP, knowledge management km, SCM, Enterprise Equipment Management system EAM, Product lifecycle management PLM, Service-oriented Architecture SOA, BI, project management PM, marketing management, process management workflow, financial management ... And so on almost all the applications you can think of.
3: Embedded devices and consumer electronics products
including wireless handheld devices, smart cards, communication terminals, medical equipment, information appliances (such as digital TV, set-top boxes, refrigerators), automotive electronics, etc. are popular in recent years, Java applications, especially mobile phone Java applications and Java games, is more popular.
4:java Other Features:
such as mathematical operations, display graphical interface, network operation, database operation, file operation and so on.
What does Java have?
Java 体系比较庞杂,功能繁多,这也导致很多人在自学Java 的时候总是感觉无法建立全面的知识体系,无法从整体上把握Java 的原因。在这里我们先简单了解一下Java 的版本。
Java is divided into three different versions:
- Column Java Standard Edition (JSE)
- Java Miniature Edition (JME)
- Java Enterprise Edition (JEE)
Each version has its own function and application direction.
1:java Standard Edition: JSE (Java standards Edition)
JSE (Javastandardedition) is a version developed by Sun for desktop development and low-end business computing solutions, such as the application desktop application we are familiar with. This version is the foundation, it is also the most common development and use of the technology, Java, the main technology will be reflected in this version.
2:java Miniature Version: JME (Java Micro Edition)
JME (Java, Micro Edition) is a reduced-functionality version of the standard version of JSE, which was first pushed to the Java community by Sun Microsystems in June 1999. It is part of a broad initiative to better meet the diverse needs of Java developers. Sun Microsystems defines JME as "a highly optimized Java runtime environment that targets a wide range of consumer products, including pagers, mobile phones, videophone, digital set-top boxes, and car navigation systems." ”
JME is the best choice for developers who are committed to consumer products and embedded devices. Although early people were optimistic about it and a lot of enthusiasts in the Java developer community, however, JME recently began to get out of its non-ripening period from the shadow of its more influential co-products Jee and JSE.
JME is particularly useful when developing applications for memory-constrained mobile devices such as pagers and mobile phones. Because it is built on the operating system, the development of the application does not need to consider too many special hardware configuration types or operating systems. As a result, developers do not need to set up special applications for different terminals, and manufacturers simply need to make their platforms available to support JME.
3:java Enterprise Edition: JEE (Java Enterprise Edition)
JEE (Java Enterprise Edition) is an architecture that leverages the Java platform to simplify the development, deployment, and management of enterprise solutions related to complex issues. The foundation of JEE Technology is the standard version of the core Java platform or Java platform, and Jee consolidates many of the benefits of the Standard Edition, such as "write once, run Anywhere" features, JDBC API for easy access to databases, CORBA technology, and the ability to The secure mode of data protection in the application, and so on, also provides full support for EJB (Enterprise JavaBeans), Javaservletsapi, JSP (JavaServer Pages), and XML technology. The ultimate goal is to be an architecture that enables enterprise developers to dramatically reduce time-to-market.
The JEE architecture provides a middle-tier integration framework to meet the needs of applications that require high availability, high reliability, and scalability without too much expense. By providing a unified development platform, JEE reduces the cost and complexity of developing multi-tiered applications, provides strong support for existing application integration, fully supports Enterprise Java Beans, has good wizards to support packaging and deployment applications, adds directory support, enhances security, Improved performance.
JEE is a functional extension of the Standard Edition that provides a range of capabilities to address the complex issues that are faced in the development of enterprise applications.
4: Relationship between three versions
JEE almost completely includes the functionality of JSE, and then adds a lot of new features to the JSE base. JME is primarily a subset of the functions of JSE, followed by a portion of the additional functionality added.
Java 的API 类库之中有一组所谓的核心类(CoreClass,即java.*) 在核心类之外还有所谓的扩充类(ExtendedClass,即javax.*) 。根据对这两种类的支持程度,进而区分出几种不同的Java 版本。
We have to use Java Standard Edition (JSE) as the benchmark, which makes all the core classes defined in all Java standards and supports all Java basic classes.
The JSE is positioned on the application of the client program.
Extended from JSE, outside of Java Enterprise Edition (JEE), this version supports all the standard core classes, but also adds many extension classes that support internal use of the enterprise, supporting servlet/jsp javax.servlet.* classes, The javax.ejb.* class that supports enterprise Java beans. Of course, JEE must support all Java basic classes.
JEE positioning is applied on the server-side (server-side) program.
From JSE to the inside, is Javamicro Edition (JME), which supports only the subset of the core class, in the JME CLDC specification, only supports java.lang.*, java.io.*, and java.util.* these classes. This version also adds some extension classes that support "tiny devices", such as the Javax.microedition.io.* class. However, this version does not support all Java basic classes, and it does not support Java basic classes belonging to floating-point numbers (float, double) for standard JMECLDC, which is the KVM (kvirtualmachine) that can be executed on PalmOS.
JME positioning in the application of embedded systems.
In the innermost layer, there is a Java version of smartcard, originally in the Java file is not defined, but it is very reasonable to draw inside the JME. Because the smartcard version only supports java.lang.*, this core class is less than the core class supported by JME, but it also has its own extension classes, such as javacard.*, javacardx.*. The SmartCard version supports only the two Java basic classes, Boolean and Byte, which are located on SmartCard applications.
Three major features of Java technology
1: Virtual machine
The Java Virtual machine JVM is a very important part of Java programming, which is roughly equivalent to the Java Runtime environment that you learned earlier, and the basic functions of the virtual machine are as follows:
- Finding and Loading class files
- The runtime environment of the class file
- Garbage collection during a run
- Provides a platform for interacting with hardware
The virtual machine is the Java platform-independent guarantee, it is because of the virtual machine this middle layer, Java can not be achieved platform-independent. A virtual machine is like a basic platform for Java to run, and all Java programs run on a virtual machine.
2: Garbage Collection
In the process of running the program, there are allocated memory blocks are no longer required, then these memory blocks are garbage to the program. produce garbage, naturally need to clean up the rubbish, more importantly, the need to use these garbage in the memory resources, recycling, reuse, thereby saving resources and improve system performance.
在C,C++ 或其它语言中,程序员负责释放内存。有时,这是一件很困难的事情。因为你并不总是事先知道内存应在何时被释放。当在系统中没有能够被分配的内存时,可导致程序瘫痪,这种程序被称作具有**内存漏洞。**
The Java programming language relieves the programmer of the responsibility to release memory. It provides a system-level thread to track the allocation of memory each time. In the idle period of the Java Virtual machine, the garbage collection thread checks for and frees the memory that can be freed. Garbage collection automates the life cycle of the Java Technology program, freeing up memory requirements, which effectively avoids memory exploits and memory leaks
3: Code Security
How does Java ensure that the code you write is safe and reliable?
(1): The first level: The code is written first to be compiled into a class file, if the code is written in a problem, during compilation will be found, and then prompted a compilation error, can not be compiled through.
(2): The second Level: through the compilation, when the class load, the class load check, the class and network resources on this computer class separation, in the class when the check, and thus can limit any "Trojan horse" application.
(3): Third level: After the class is loaded, the bytecode check is also performed before running to determine that your program is safe.
(4): Fourth: If your program is running on the network, and the Sandbox (Sand box) is protected, what is a sandbox? That is, if your program is not authorized, it can only run within the scope of the sandbox, and it is not able to access local resources, thus guaranteeing security.
Java features
Simply put, Java has the following characteristics: Simple, object-oriented, platform-independent, multi-threading, distributed, secure, high performance, reliable, interpreted, automatic garbage collection and so on.
Explain the platform-agnostic and distributed
3.1: Platform Independent
The so-called platform-independent refers to: The program is written in Java without modification can be run on different hardware and software platforms. This enables the same program to run under Windows, and the UNIX or Linux environment can be run without modification. Java primarily relies on the Java Virtual Machine (JVM) for platform independence.
Platform agnostic is written once, running everywhere: Write Once, run Anywhere
3.2: Distributed
Distributed refers to: The software is composed of many modules that can be executed independently, these modules are distributed on multiple computers, can be run concurrently, the external look is still a whole. Other words.
Distributed can bring multiple computers together just like a computer, providing better performance.
A general understanding of Java