Содержание
- About the Java Technology
- The Java Programming Language
- The Java Platform
- The Java Language Environment
- Java: что это и для чего нужен
- Java — что это такое?
- About java что это

Java also wins points with strategic planners for its ability to adapt to new use cases. For example, Java is widely considered to be an ideal platform for the Internet of Things (IoT). The typical IoT application interconnects a large number of disparate devices, a task that is greatly simplified by the fact that billions of devices run Java. Furthermore, Java’s extensive ecosystem of developers is constantly developing and sharing new libraries with functionality specifically targeted at IoT application development.
About the Java Technology
Java technology is both a programming language and a platform.
The Java Programming Language
The Java programming language is a high-level language that can be characterized by all of the following buzzwords:
Each of the preceding buzzwords is explained in The Java Language Environment , a white paper written by James Gosling and Henry McGilton.
In the Java programming language, all source code is first written in plain text files ending with the .java extension. Those source files are then compiled into .class files by the javac compiler. A .class file does not contain code that is native to your processor; it instead contains bytecodes — the machine language of the Java Virtual Machine 1 (Java VM). The java launcher tool then runs your application with an instance of the Java Virtual Machine.
An overview of the software development process.
Because the Java VM is available on many different operating systems, the same .class files are capable of running on Microsoft Windows, the Solaris™ Operating System (Solaris OS), Linux, or Mac OS. Some virtual machines, such as the Java SE HotSpot at a Glance, perform additional steps at runtime to give your application a performance boost. This includes various tasks such as finding performance bottlenecks and recompiling (to native code) frequently used sections of code.
Through the Java VM, the same application is capable of running on multiple platforms.
The Java Platform
A platform is the hardware or software environment in which a program runs. We’ve already mentioned some of the most popular platforms like Microsoft Windows, Linux, Solaris OS, and Mac OS. Most platforms can be described as a combination of the operating system and underlying hardware. The Java platform differs from most other platforms in that it’s a software-only platform that runs on top of other hardware-based platforms.
The Java platform has two components:
- The Java Virtual Machine
- The Java Application Programming Interface (API)
You’ve already been introduced to the Java Virtual Machine; it’s the base for the Java platform and is ported onto various hardware-based platforms.
The API is a large collection of ready-made software components that provide many useful capabilities. It is grouped into libraries of related classes and interfaces; these libraries are known as packages. The next section, What Can Java Technology Do? highlights some of the functionality provided by the API.
The API and Java Virtual Machine insulate the program from the underlying hardware.
As a platform-independent environment, the Java platform can be a bit slower than native code. However, advances in compiler and virtual machine technologies are bringing performance close to that of native code without threatening portability.
The Java Language Environment
The Next Stage of the Known, Or a Completely New Paradigm?
Taiichi Sakaiya— The Knowledge-Value Revolution
The Software Developer’s Burden
Imagine you’re a software application developer. Your programming language of choice (or the language that’s been foisted on you) is C or C++. You’ve been at this for quite a while and your job doesn’t seem to be getting any easier. These past few years you’ve seen the growth of multiple incompatible hardware architectures, each supporting multiple incompatible operating systems, with each platform operating with one or more incompatible graphical user interfaces. Now you’re supposed to cope with all this and make your applications work in a distributed client-server environment.
The growth of the Internet, the World-Wide Web, and «electronic commerce» have introduced new dimensions of complexity into the development process.
The tools you use to develop applications don’t seem to help you much. You’re still coping with the same old problems; the fashionable new object-oriented techniques seem to have added new problems without solving the old ones. You say to yourself and your friends, «There has to be a better way»!
The Better Way is Here Now
Now there is a better way — the Java TM programming language platform from Sun Microsystems. Imagine, if you will, this development world.
- Your programming language is object oriented, yet it’s still dead simple.
- Your development cycle is much faster because Java technology is interpreted. The compile-link-load-test-crash-debug cycle is obsolete—now you just compile and run.
- Your applications are portable across multiple platforms. Write your applications once, and you never need to port them—they will run without modification on multiple operating systems and hardware architectures.
- Your applications are robust because the Java runtime environment manages memory for you.
- Your interactive graphical applications have high performance because multiple concurrent threads of activity in your application are supported by the multithreading built into the Java programming language and runtime platform.
- Your applications are adaptable to changing environments because you can dynamically download code modules from anywhere on the network.
- Your end users can trust that your applications are secure, even though they’re downloading code from all over the Internet; the Java runtime environment has built-in protection against viruses and tampering.
You don’t need to dream about these features. They’re here now. The Java programming language platform provides a portable, interpreted, high-performance, simple, object-oriented programming language and supporting run-time environment. This introductory chapter provides you with a brief look at the main design goals of the Java system; the remainder of this paper examines the features of Java in more detail.
The last chapter of this paper describes the HotJava TM Browser . The HotJava Browser is an innovative World-Wide Web browser, and the first major applications written using the Java platform. It is the first browser to dynamically download and execute Java code fragments from anywhere on the Internet, and can do so in a secure manner.
1.1 Beginnings of the Java TM Programming Language Project
The Java TM programming language is designed to meet the challenges of application development in the context of heterogeneous, network-wide distributed environments. Paramount among these challenges is secure delivery of applications that consume the minimum of system resources, can run on any hardware and software platform, and can be extended dynamically.
The Java programming language originated as part of a research project to develop advanced software for a wide variety of network devices and embedded systems. The goal was to develop a small, reliable, portable, distributed, real-time operating platform. When the project started, C++ was the language of choice. But over time the difficulties encountered with C++ grew to the point where the problems could best be addressed by creating an entirely new language platform.
Design and architecture decisions drew from a variety of languages such as Eiffel, SmallTalk, Objective C, and Cedar/Mesa. The result is a language platform that has proven ideal for developing secure, distributed, network-based end-user applications in environments ranging from network-embedded devices to the World-Wide Web and the desktop.
1.2 Design Goals of the Java TM Programming Language
The design requirements of the Java TM programming language are driven by the nature of the computing environments in which software must be deployed.
The massive growth of the Internet and the World-Wide Web leads us to a completely new way of looking at development and distribution of software. To live in the world of electronic commerce and distribution, Java technology must enable the development of secure, high performance, and highly robust applications on multiple platforms in heterogeneous, distributed networks.
Operating on multiple platforms in heterogeneous networks invalidates the traditional schemes of binary distribution, release, upgrade, patch, and so on. To survive in this jungle, the Java programming language must be architecture neutral, portable, and dynamically adaptable.
The system that emerged to meet these needs is simple, so it can be easily programmed by most developers; familiar, so that current developers can easily learn the Java programming language; object oriented, to take advantage of modern software development methodologies and to fit into distributed client-server applications; multithreaded, for high performance in applications that need to perform multiple concurrent activities, such as multimedia; and interpreted, for maximum portability and dynamic capabilities.
Java: что это и для чего нужен
Together, the above requirements comprise quite a collection of buzzwords, so let’s examine some of them and their respective benefits before going on.
1.2.1 Simple, Object Oriented, and Familiar
Primary characteristics of the Java programming language include a simple language that can be programmed without extensive programmer training while being attuned to current software practices. The fundamental concepts of Java technology are grasped quickly; programmers can be productive from the very beginning.
The Java programming language is designed to be object oriented from the ground up. Object technology has finally found its way into the programming mainstream after a gestation period of thirty years. The needs of distributed, client-server based systems coincide with the encapsulated, message-passing paradigms of object-based software. To function within increasingly complex, network-based environments, programming systems must adopt object-oriented concepts.
Java technology provides a clean and efficient object-based development platform.
Programmers using the Java programming language can access existing libraries of tested objects that provide functionality ranging from basic data types through I/O and network interfaces to graphical user interface toolkits. These libraries can be extended to provide new behavior.
Even though C++ was rejected as an implementation language, keeping the Java programming language looking like C++ as far as possible results in it being a familiar language, while removing the unnecessary complexities of C++. Having the Java programming language retain many of the object-oriented features and the «look and feel» of C++ means that programmers can migrate easily to the Java platform and be productive quickly.
1.2.2 Robust and Secure
The Java programming language is designed for creating highly reliable software. It provides extensive compile-time checking, followed by a second level of run-time checking. Language features guide programmers towards reliable programming habits.

The memory management model is extremely simple: objects are created with a new operator. There are no explicit programmer-defined pointer data types, no pointer arithmetic, and automatic garbage collection. This simple memory management model eliminates entire classes of programming errors that bedevil C and C++ programmers. You can develop Java code with confidence that the system will find many errors quickly and that major problems won’t lay dormant until after your production code has shipped.
Java technology is designed to operate in distributed environments, which means that security is of paramount importance. With security features designed into the language and run-time system, Java technology lets you construct applications that can’t be invaded from outside. In the network environment, applications written in the Java programming language are secure from intrusion by unauthorized code attempting to get behind the scenes and create viruses or invade file systems.
1.2.3 Architecture Neutral and Portable
Java technology is designed to support applications that will be deployed into heterogeneous network environments. In such environments, applications must be capable of executing on a variety of hardware architectures. Within this variety of hardware platforms, applications must execute atop a variety of operating systems and interoperate with multiple programming language interfaces. To accommodate the diversity of operating environments, the Java Compiler TM product generates bytecodes—an architecture neutral intermediate format designed to transport code efficiently to multiple hardware and software platforms.
The interpreted nature of Java technology solves both the binary distribution problem and the version problem; the same Java programming language byte codes will run on any platform.
Java — что это такое?
Architecture neutrality is just one part of a truly portable system. Java technology takes portability a stage further by being strict in its definition of the basic language. Java technology puts a stake in the ground and specifies the sizes of its basic data types and the behavior of its arithmetic operators. Your programs are the same on every platform—there are no data type incompatibilities across hardware and software architectures.
The architecture-neutral and portable language platform of Java technology is known as the Java virtual machine. It’s the specification of an abstract machine for which Java programming language compilers can generate code. Specific implementations of the Java virtual machine for specific hardware and software platforms then provide the concrete realization of the virtual machine. The Java virtual machine is based primarily on the POSIX interface specification—an industry-standard definition of a portable system interface.
Implementing the Java virtual machine on new architectures is a relatively straightforward task as long as the target platform meets basic requirements such as support for multithreading.
1.2.4 High Performance
Performance is always a consideration. The Java platform achieves superior performance by adopting a scheme by which the interpreter can run at full speed without needing to check the run-time environment. The automatic garbage collector runs as a low-priority background thread, ensuring a high probability that memory is available when required, leading to better performance. Applications requiring large amounts of compute power can be designed such that compute-intensive sections can be rewritten in native machine code as required and interfaced with the Java platform.
In general, users perceive that interactive applications respond quickly even though they’re interpreted.
1.2.5 Interpreted, Threaded, and Dynamic
The Java interpreter can execute Java bytecodes directly on any machine to which the interpreter and run-time system have been ported. In an interpreted platform such as Java technology-based system, the link phase of a program is simple, incremental, and lightweight. You benefit from much faster development cycles—prototyping, experimentation, and rapid development are the normal case, versus the traditional heavyweight compile, link, and test cycles.
Modern network-based applications, such as the HotJava TM Browser for the World Wide Web, typically need to do several things at the same time. A user working with HotJava Browser can run several animations concurrently while downloading an image and scrolling the page. Java technology’s multithreading capability provides the means to build applications with many concurrent threads of activity. Multithreading thus results in a high degree of interactivity for the end user.
The Java platform supports multithreading at the language level with the addition of sophisticated synchronization primitives: the language library provides the Thread class, and the run-time system provides monitor and condition lock primitives. At the library level, moreover, Java technology’s high-level system libraries have been written to be thread safe: the functionality provided by the libraries is available without conflict to multiple concurrent threads of execution.
While the Java Compiler is strict in its compile-time static checking, the language and run-time system are dynamic in their linking stages. Classes are linked only as needed. New code modules can be linked in on demand from a variety of sources, even from sources across a network. In the case of the HotJava Browser and similar applications, interactive executable code can be loaded from anywhere, which enables transparent updating of applications.
The result is on-line services that constantly evolve; they can remain innovative and fresh, draw more customers, and spur the growth of electronic commerce on the Internet.
1.3 The Java Platform—a New Approach to Distributed Computing
Taken individually, the characteristics discussed above can be found in a variety of software development platforms. What’s completely new is the manner in which Java technology and its runtime environment have combined them to produce a flexible and powerful programming system.
Developing your applications using the Java programming language results in software that is portable across multiple machine architectures, operating systems, and graphical user interfaces, secure, and high performance. With Java technology, your job as a software developer is much easier—you фокус your full attention on the end goal of shipping innovative products on time, based on the solid foundation of the Java platform. The better way to develop software is here, now, brought to you by the Java platform.
About java что это
Learn why Java remains such a popular development platform and how it accelerates projects and supports a wide range of emerging technologies.

What is Java?
Java is a widely used object-oriented programming language and software platform that runs on billions of devices, including notebook computers, mobile devices, gaming consoles, medical devices and many others. The rules and syntax of Java are based on the C and C++ languages.
One major advantage of developing software with Java is its portability. Once you have written code for a Java program on a notebook computer, it is very easy to move the code to a mobile device. When the language was invented in 1991 by James Gosling of Sun Microsystems (later acquired by Oracle), the primary goal was to be able to «write once, run anywhere.»
It’s also important to understand that Java is much different from JavaScript. Javascript does not need to be compiled, while Java code does need to be compiled. Also, Javascript only runs on web browsers while Java can be run anywhere.
New and improved software development tools are coming to market at a remarkable pace, displacing incumbent products once thought to be indispensable. In light of this continual turnover, Java’s longevity is impressive; more than two decades after its creation, Java is still the most popular language for application software development—developers continue to choose it over languages such as Python, Ruby, PHP, Swift, C++, and others. As a result, Java remains an important requirement for competing in the job market.
How Java works
Before exploring the reasons for Java’s enduring popularity, let’s review what Java is in more detail and its importance for enterprise application development.
Java is a technology consisting of both a programming language and a software platform. To create an application using Java, you need to download the Java Development Kit (JDK), which is available for Windows, macOS, and Linux. You write the program in the Java programming language, then a compiler turns the program into Java bytecode—the instruction set for the Java Virtual Machine (JVM) that is a part of the Java runtime environment (JRE). Java bytecode runs without modification on any system that supports JVMs, allowing your Java code to be run anywhere.
The Java software platform consists of the JVM, the Java API, and a complete development environment. The JVM parses and runs (interprets) the Java bytecode. The Java API consists of an extensive set of libraries including basic objects, networking and security functions; Extensible Markup Language (XML) generation; and web services. Taken together, the Java language and the Java software platform create a powerful, proven technology for enterprise software development.
Why Java matters
If you are an enterprise application developer, you already know what Java is, and it’s likely that your organization already has thousands, even millions, of lines of production code written in Java. You will likely need some level of Java expertise to allow you to troubleshoot, maintain, and upgrade your existing codebase.
However, it would be a mistake to view Java only in terms of legacy applications. The Java language forms the heart of the Android operating system, which powers by far the largest share of the world’s smartphones. Java is also among the most popular languages for machine learning and data science applications. Its robustness, ease of use, cross-platform capabilities and security make Java the language of choice for internet solutions in many enterprise shops.
In particular, Java technology is an ideal framework for developing web applications, the foundation for a digital business in any industry. Java application servers are web containers for Java components, XML, and web services, which interact with databases and provide dynamic web content. Java application servers form a stable deployment environment for enterprise applications with capabilities such as transaction management, security, clustering, performance, availability, connectivity, and scalability.
Technical benefits
When it comes to choosing a programming language and environment for your next enterprise application, there are solid technical reasons to consider Java, including interoperability, scalability, and adaptability.
The core philosophy behind its creation—interoperability across disparate devices—remains the strongest argument for favoring Java for new enterprise applications. Java’s object-oriented architecture allows you to create modular programs and reusable code, shortening development cycles and extending the longevity of enterprise applications.
Platform scalability is a key attribute of Java. With Java, you can use one single system across a broad range of use cases. Existing desktop applications can be easily adapted to run on smaller devices that have limited resources. You can also migrate applications from mobile to desktop, developing business apps for the Android platform and then integrating them into your current desktop software, bypassing lengthy and expensive development cycles.
Java also wins points with strategic planners for its ability to adapt to new use cases. For example, Java is widely considered to be an ideal platform for the Internet of Things (IoT). The typical IoT application interconnects a large number of disparate devices, a task that is greatly simplified by the fact that billions of devices run Java. Furthermore, Java’s extensive ecosystem of developers is constantly developing and sharing new libraries with functionality specifically targeted at IoT application development.
Business benefits
The technical arguments for Java are compelling, but the business reasons to choose Java are equally strong: a large talent pool, a short learning curve, and a wide range of integrated development environments (IDEs).
As more companies use connected devices, machine learning algorithms, and cloud solutions, the demand for skilled developers continues to grow. Many analysts foresee a scarcity of senior-level programmers in the near future, making it difficult to staff new software initiatives. Demand for mobile app developers could soon easily exceed the available supply.
The large talent pool of Java developers constitutes a compelling reason to base major software initiatives on Java. When staffing managers post job openings for Java developers, they can expect to receive many qualified resumes and fill those positions relatively quickly. Managers can also draw on contract resources to supplement in-house staff for specific tasks without adding headcount.
In addition to senior-level developers, major software initiatives also require large numbers of junior contributors. While Java remains a popular introductory programming language in university computer science curriculums, many graduates lack the proficiency to be productive on day one. Java is easier to learn and master than many other programming languages, leading to a shorter learning curve and faster ramp-up to productivity. Java’s extensive online community of developer forums, tutorials, and user groups helps beginners get up to speed rapidly and provides seasoned programmers with effective, proven problem-solving tools.
In the area of programming tools, Java offers a range of IDEs. Experienced Java developers can quickly ramp up on a new environment, which frees development managers to choose the IDE that best fits the type of project, budget, development methodology and programmer skill level. Many seasoned Java programmers think of NetBeans, Eclipse, and IntelliJ IDEA as the top three IDEs for enterprise application development. But there are cases where a more lightweight IDE such as DrJava, BlueJ, JCreator, or Eclipse Che is the best choice.