The Java Language Environment
1.2 Design Goals of the JavaTM Programming Language
The design requirements of the JavaTM 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.
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 CompilerTM 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.
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 HotJavaTM 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 focus 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.
相关推荐
《Java1996》詹姆斯·高斯林简介
Java之父!
Oracle EBS:加载Java Runtime Environment报错问题解决
oracle EBS加载JRE运行环境错误问题解决
ABAP language server,SAP 开发工具正在从 IDE 走向能力内核
摘要: ABAP language server 是 VS Code 中 ABAP 开发工具的核心,负责代码智能功能(如补全、跳转、悬停提示),通过 LSP 协议与编辑器通信,其能力源自 SAP 多年积累的 Eclipse ADT 语义分析技术。与运行业务的 ABAP Application Server 不同,它专注于代码理解,尤其依赖后端元数据解析 ABAP Cloud、CDS、RAP 等复杂对象关系。该架构将语言服务与编辑器解耦,便于多 IDE 复用,提升开发效率,支持导航、影响分析等企业级场景,是
java概述
java语言的十一个特点
在 ABAP 中显式设置 Text Environment:让多语言排序真正符合业务语言习惯
全球化系统中的数据排序挑战 摘要:全球化企业系统中,数据排序面临语言环境差异的复杂问题。ABAP的Text Environment机制决定了字符处理规则,包括排序顺序和大小写转换等。通过SET LOCALE LANGUAGE可临时切换文本环境语言,配合SORT...AS TEXT实现符合特定语言文化的排序。典型案例如匈牙利语中"Cs"被视为独立字母单元,排序规则与英语不同。在SAP_GWFND、OData服务等场景中,需特别注意后端排序与前端期望的语言规则匹配问题。最佳实践是显式设置并恢
从 Eclipse 到 VS Code,ABAP Development Tools 架构六年重构背后的设计账
SAP ABAP开发者工具正经历重大转型,从单一的Eclipse ADT转向支持VS Code等多IDE环境。核心挑战在于如何将290万行成熟的ABAP开发工具代码(含88种对象编辑器)复用为Language Server,而非简单重写。通过采用LSP协议,SAP实现了Eclipse与VS Code共享同一套ABAP核心逻辑,确保功能一致性和维护效率。这种架构革新既保留了Eclipse ADT的丰富功能,又为未来AI工具等新型开发入口铺平道路,反映了企业级开发工具向模块化、服务化演进的重要趋势。
配置javaweb环境的问题
一.数据库会出现无法访问情况 解决办法:1.按照网上说的更改my.ini,有时候管用;2.直接重装mysql 二.下载下来的jsp会出现jdk编译版本不一致,可通过 build path 改为本地默认
The Java Language Environment
The Java Language Environment
CentOS7.0 安装JAVA环境
CentOS7.0 安装JAVA环境 安装JDK 把下载好的JDK(jdk-7u75-linux-x64.gz)文件上传到 Reg: /home/p2pweb/java/ 目录下(目录可自定义) [p2pweb@iZ94q6gk846Z ~]# tar -zxv -f jdk-7u75-linux-x64.gz // 解压压缩包 [p2pweb@iZ94q6gk846Z ~]
Java运行环境 Java SE Runtime Environment 8.0.172.x64官方多语言正式版
Java 允许您玩在线游戏,与世界各地的人聊天,计算您的按揭利息,并以 3D 形式查看图像。这些以 Java 编程语言编写的应用程序和可从浏览中访问的应用程序称为小程序。公司还将 Java 小程序用于内部网应用程序和其他电子商务的解决方案。所有主要行业的公司都在使用 Java。无论是部署在手机、嵌入式设备、游戏机、笔记本电脑还是数据中心,Java 都提供了当今网络应用所需要的丰富的用户界面、性能、多功能性、可移植性和安全性。Java 平台标准版软件是快速开发和部署安全、便携式应用程序的首选平台,可跨大多数操作系统的服务器和桌面系统。 Java 平台标准版(Java SE)可让您在台式机和服务器以及当今苛刻的嵌入式环境中开发和部署 Java 应用程序。Java 提供了当今应用程序所需的丰富的用户界面、性能、通用性、可移植性和安全性。 Java SE Runtime Environment(运行时环境)包含了运行以 Java 编程语言编写的程序所必需的 Java 虚拟机、运行时类库和 Java 应用程序启动器。 Java 平台的安全性 一个由角色提供的安全信息的描述。适用于开发人员,系统管理员,家庭用户和安全专业人士。 主要特点: - 在一个平台上编写软件,并可在几乎任何其它平台上运行 - 创建的程序可在 Web 浏览器和 Web 服务中运行 - 可开发用于在线论坛、商店、投票、HTML 表单处理等服务器端应用程序 - 结合基于 Java 技术的应用程序或服务来创建高度可定制的应用程序或服务 - 为手机、远程处理器、低成本消费产品和几乎任何具有数字内核的设备编写功能强大且高效的应用程序 Java SE 8 现在可用 Java 平台标准版 8(Java SE 8)是一个主要的功能版本。它包含了很多功能领域的新功能和增强功能。Java SE 8 通过减少样板代码,改进了集合和注释,简单的并行编程模型和更有效地利用现代多核处理器,提高了开发人员的工作效率和显着的增强了应用程序的性能。 Java SE 8u172 版本更新:2018年4月17日
Python连接StarRocks全流程实践: SQL文件调用与Pandas混合优化
通过这种分阶段混合计算, 既能发挥StarRocks处理海量数据的性能优势, 又能保留Pandas在内存计算中的灵活性, 实现效率与功能的完美平衡.结合SQL的高效聚合与Pandas的灵活计算, 实现查询和数据处理的深度融合.该库基于SQLAlchemy 2.x开发, 仅支持Python 3.x环境.对大批量数据的写入, 建议进行分块. 分块写入较单条插入速度会有显著提升.这样可以避免python代码的查询与SQL耦合, 支持版本化管理.将DDL, DML分离为独立文件, 例如。: 调整连接复用参数。
Java Language Compared 图片 --The Java Language Environment White Paper
下面是一张来自《The Java Language Environment White Paper 》的 The Java Language Compared一章的图片。CPP真的是如此失败吗?
D2D与C2C高速互联技术对比:从封装到性能的全面解析
本文全面解析了Die-to-Die(D2D)与Chip-to-Chip(C2C)高速互联技术的差异,从封装形式、传输距离到性能指标进行深度对比。D2D技术在带宽、延迟和能效方面具有显著优势,适用于高性能计算和AI加速;而C2C技术则更适合车载电子系统等长距离传输场景。文章还探讨了UCIe标准化趋势,并提供了技术选型的实用建议。
而今迈步从头越---读 《The Java Language Environment White Paper》
缥而缈之网上游荡,跑到java的本部找到了 1996年James Gosling &Henry McGilton 写的 《The Java Language Environment White Paper》。读来觉得受益匪浅,不敢独享,特此推荐给诸位朋友。(开心之果不独证)白皮书是java语言/platform的一种诠释,可以认为是java语言/platform作为一个项目的外部
细说STM32单片机SPI-Flash芯片的FatFS移植及其应用实例详解
本文以开发板上的SPI-Flash芯片W25Q16为媒介详细介绍CubeMX中FatFS各个参数的意义和设置,分析生成的代码中FatFS各个文件的作用和关联,完成针对W25Q16的硬件访问层的移植。继续使用旺宝红龙开发板STM32F407ZGT6 KITV1.0。
【Unity动画系统】详解Root Motion动画在Unity中的应用(一)
什么时候勾选Bake into pose,当不希望动画带动游戏对象旋转时。在旋转的动画中一般是不用勾选的,因为就需要用它来带动我们的角色对象旋转。但在比如前进、后退、待机等动画来说,我们就可以勾选这里,以避免因动画文件本身的瑕疵而给我们带来的旋转。loop match:代表了这个动画在角度上的吻合度。如果这个动画在播放中转角过大,那么就会显示红色,告诉我们如果勾选bake into pose,则会带来不好的效果。
The JAVA_HOME environment variable is not defined correctly should point to a JDK not a JRE
启动Tomcat的时候出现以下错误。 The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE 总之来说就是Tomcat没有找到JA...
【LaTeX PPT模板集】Beamer主题与配色使用教程
【LaTeX PPT模板集】Beamer主题与配色使用教程
在IntelliJ IDEA中如何设置Language level?
可覆盖模块级别的编译选项。
LabVIEW Modbus通讯实战:从安装库到读写寄存器的完整避坑指南
本文详细介绍了LabVIEW与Modbus通讯的完整实战指南,从安装库文件到读写寄存器的全流程操作,帮助开发者避开常见问题。通过虚拟串口配置、主机配置实战和高级调试技巧,提升工业自动化领域的通讯效率与可靠性。
【Tableau】解决订阅报表PDF中文显示为乱码(方框)问题
一、问题描述 在tableau server网页端报表中文字符能正常显示,但在订阅后发送到邮箱时,以图片格式呈现的内容中中文字符显示为方框。 网页端报表能正常显示中文字符: 邮件中的报表不能正常显示中文字符: 二、问题分析 网页端字符显示情况是由html编码决定的,而tableau生成图片时是通过所部署的服务器的字体文件显示字体。因此可能是由于Linux服务器缺失相关的字体文件导致网页端选择的中文字体在服务器上缺失对应的字体文件导致的。则考虑在服务器引入对应的字体文件。 三、问题解决 1、查看服务器现有
Spring Environment:从配置管理到自动化配置的核心机制解析
在Java应用开发中,配置管理是构建可维护、可扩展系统的基石。其核心原理在于将分散的配置信息进行统一抽象与管理,通过定义清晰的配置源优先级与解析规则,实现环境隔离与动态覆盖。这一机制的技术价值在于提升应用的可移植性、安全性与运维效率,是微服务架构与云原生实践的关键支撑。典型的应用场景包括多环境部署、配置中心集成以及自动化测试。本文聚焦Spring Framework的Environment接口,深入剖析其如何通过Profile与PropertySource两大支柱,结合占位符解析、宽松绑定等特性,优雅解决“
TC387 MCMCAN Message RAM配置详解:Tx Buffer与Rx FIFO地址布局
在嵌入式CAN/CAN FD通信系统中,缓冲区和FIFO是数据收发的核心机制,而AURIX TC3xx系列单片机将这一机制集成在了MCMCAN模块专用的Message RAM中。这是一块由CAN控制器独占的内存区域,开发人员需要按照寄存器规范手动划分Tx Buffer、Rx FIFO、过滤元素等子区间。合理的RAM布局能确保不同功能区域互不重叠、有序排列,避免数据覆盖与错帧。通过掌握TXBC、RXF0C等配置寄存器的字段含义,结合实用的地址布局表,可以显著降低多节点CAN通信的调试成本。本内容面向使用TC3
终极指南:如何快速编写Environment Modules模块文件 - Tcl语法与实例详解
**Environment Modules** 是一个强大的环境管理工具,它通过**模块文件(modulefile)** 让用户能够动态地修改和管理软件环境。无论您是系统管理员需要为多用户环境配置软件栈,还是开发者需要在不同项目间切换工具链,掌握**Tcl语法**编写模块文件都是提升工作效率的关键技能。本文将为您提供完整的**Environment Modules模块文件编写入门指南**,包含实用
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
(附源码)基于Java SpringBoot的电影院管理系统设计与实现-毕业设计 课程设计 011633
电影管理: (1)电影列表:展示所有电影,形成的列表样式。 (2)电影搜索:通过电影名、电影类目来搜索电影。 (3)图片上传:给电影添加电影图片。 (4)增加电影; (5)更新电影:更新电影的,如电影名称、电影分类、电影海报、导演、演员、上映日期、放映场次、放映时间、放映厅、影院名称、影院地址、价格、座位总数等。 (6)电影上下架; 资讯数据管理: (1)图片上传:给资讯添加资讯图片。 (2)增加资讯; (3)更新资讯:更新资讯的,如资讯标题、内容等。 (4)资讯数据删除销毁; 选座预订记录管理: ……
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
jmeter连接oracle数据库报错:Cannot access NLS data files or invalid environment specified
报错信息 java.sql.SQLException: Cannot create PoolableConnectionFactory (ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified 原因: Oracle数据库使用的中文环境,jmeter使用的语言是英文,语言环境不一致导致的问题。 确保NLS_LANG环境变
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
1421



被折叠的 条评论
为什么被折叠?



