写点什么

Java 之 Java 特点

  • 2022 年 4 月 19 日
  • 本文字数:2139 字

    阅读完需:约 7 分钟

而在 Java 语言中, Java 自带的虚拟机很好地实现了跨平台性。 Java 源程序代码经过编译后生成二进制的字节码是与平台无关的,但是可被 Java 虚拟机识别的一种机器码指令。 Java 虚拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使得 Java 语言具备跨平台性。


[](()4.分布式


===================================================================


Java 包括一个支持 HTTP 和 FTP 等基于 TCP/IP 协议的子库。因此,Java 应用程序可凭借 URL 打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。为分布环境尤其是 Internet 提供的动态内容无疑是一项非常宏伟的任务,但 Java 的语法特性却使我们很容易地实现这项目标。


[](()5.健壮


==================================================================


Java 致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java 自已操纵内存减少了内存出错的可能性。Java 还实现了真数组,避免了覆盖数据的可能。这些功能特征大大缩短了开发 Java 应用程序的周期。Java 提供 Null 指针检测数组边界检测异常出口字节代码校验。


[](()6.结构中立


====================================================================


另外,为了建立 Java 作为网络的一个整体,Java 将它的程序编译成一种结构中立的中间文件格式。只要有 Java 运行系统的机器都能执行这种中间代码。现在,Java 运行系统有 Solaris2.4(SPARC),Win32 系统(Windows95 和 WindowsNT)等.Java 源程序被编译成一种高层次的与机器无关的 byte-code 格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。


[](()7.安全


=========================== 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 =======================================


Java 的安全性可从两个方面得到保证。一方面,在 Java 语言里,象指针和释放内存等 C++功能被删除,避免了非法内存操作。另一方面,当 Java 用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。Java 语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。


[](()8.可移植的


====================================================================


这句话一直是 Java 程序设计师们的精神指标,也是 Java 之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是 JVM 的技术。大多数编译器产生的目标代码只能运行在一 种 CPU 上(如 Intel 的 x86 系列),即使那些能支持多种 CPU 的编译器也不能同时产生适合多 种 CPU 的目标代码。如果你需要在三种 CPU( 如 x86、SPARC 和 MIPS)上运行同一程序, 就必须编译三次。


但 JAVA 编译器就不同了。JAVA 编译器产生的目标代码(J-Code) 是针对一种并不 存在的 CPU–JAVA 虚拟机(JAVA Virtual Machine),而不是某一实际的 CPU。JAVA 虚拟机能掩盖不同 CPU 之间的差别,使 J-Code 能运行于任何具有 JAVA 虚拟机的机器上。


虚拟机的概念并不 AVA 所 特 有 的:加州大学几年前就提出了 PASCAL 虚拟机的概念;广泛用于 Unix 服务器的 Perl 脚本也是产生与机器无关的中间代码用于执行。但针对 Internet 应用而设计的 JAVA 虚拟机的特别之处在于它能产生安全的不受病毒威胁的目标代码。正是由于 Internet 对安全特性的特别要求才使得 JVM 能够迅速被人们接受。 当今主 流的操作系统如 OS/2、MacOS、Windows95/NT 都已经或很快提供对 J-Code 的支持。


作为一种虚拟的 CPU,JAVA 虚拟机对于源代码(Source Code) 来说是独立的。我们不仅可以用 JAVA 语言来生成 J-Code,也可以用 Ada95 来生成。事实上,已经有了针对若干种源代码的 J-Code 编译器,包括 Basic、Lisp 和 Forth。源代码一经转换成 J-Code 以后,JAVA 虚拟机就能够执行而不区分它是由哪种源代码生成的。这样做的结果就是 CPU 可移植性。 将源程序编译为 J-Code 的好处在于可运行于各种机器上,而缺点是它不如本机代码运行的速度快。


同体系结构无关的特性使得 Java 应用程序可以在配备了 Java 解释器和运行环境的任何计算机系统上运行,这成为 Java 应用软件便于移植的良好基础。但仅仅如此还不够。如果基本数据类型设计依赖于具体实现,也将为程序的移植带来很大不便。例如在 Windows3.1 中整数(Integer)为 16bits,在 Windows95 中整数为 32bits,在 DECAlpha 中整数为 64bits,在 Intel486 中为 32bits。通过定义独立于平台的基本数据类型及其运算,Java 数据得以在任何硬件平台上保持一致。Java 语言的基本数据类型及其表示方式如下:byte8 Java 开源项目【ali1024.coding.net/public/P7/Java/git】 -bit 二进制补码 short16-bit 二进制补码 int32-bit 二进制补码 long64-bit 二进制补码 float32-bitIEEE754 浮点数 double32-bitIEEE754 浮点数 char16-bitUnicode 字符在任何 Java 解释器中,数据类型都是依据以上标准具体实现的。因为几乎目前使用的所有 CPU 都能支持以上数据类型、8~64 位整数格式的补码运算和单/双精度浮点运算。Java 编译器本身就是用 Java 语言编写的。Java 运算系统的编制依据 POSIX 方便移植的限制,用 ANSIC 语言写成。Java 语言规范中也没有任何"同具体实现相关"的内容。


[](()9.解释的


===================================================================

本次面试答案,以及收集到的大厂必问面试题分享:


用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
Java之Java特点_Java_爱好编程进阶_InfoQ写作平台