Java面向对象:简答题

C++为何难以满足嵌入式编程需求,为何说嵌入式编程与网络编程有相似需求?

  • C++编写的程序存在2个根本性的问题:
  1. 编译后文件规模较大,而当时嵌入式芯片存储空间很小。
  2. C++编写的程序难以跨平台运行。
  • 网络编程与嵌入式编程有着类似的需求:追求程序规模小、能跨平台。
  1. 当时网速很低,几兆的程序要花费十多分钟才能下载到本地,小程序更具有优势。
  2. 网络环境中多种软硬件平台共存,如CPU有Intel的x86、IBM的PowerPC等不同架构,操作系统有WIndows、Unix等。显然,跨平台程序有天然的优势。

为何说 java 特别适用于嵌入式领域和网络领域的编程?

  • Java的最初设计,就是为了应对嵌入式编程,因此语言设计中充分考虑了嵌入式编程的需求和特点,比如跨平台运行、程序小、注重可靠性等。
  • 之后的崛起和流行,一方面在于满足网络编程的需求和特色,另一方面,Java进一步拓展了对网络编程的支持,比如选用Unicode字符、增加applet机制和网络编程类库等。
  • 因此,Java特别适用于嵌入式领域和网络领域的编程。

Unicode 字符集有哪些编码方式,各有何特色?

  • Unicode字符集有UTF-8、UTF-16、UTF-32等多种编码方式。
  • 其中UTF-8是变长编码,即不同的字符采用的编码字节数不同,比如对于英文,采用单字节编码,对于其他字符,则可能采用2~4字节编码。
  • UTF-8是定长编码,每个字符占用4个字节。
  • UTF-16采用半定长的方式,即采用2或4个字节编码。为何如此呢?假设有1024个英文字符,用UTF-8编码只需要1kb空间,用 UTF-16 则需要 2kb,用 UTF-32 需要 4kb。
  • UTF-8虽然更省空间,但是编码和解码算法复杂。

Java 为何选用 Unicode 字符集?该字符集有何特色?Java 采用何种 Unicode 编码方式?

  • Unicode 是一种大字符集,其最大特色就是包含世界各国文字。这样,可实现在同一程序(或者同一屏幕)中,支持不同文字的显示。之所以这样,是因为 Java 面向网络编程,而网络程序(如网页填写的信息) 可能面临各国文字。为让程序支持各国文字,Java 使用 Unicode 字符集。注:C/C++等采用 ASCII 码作为字符集。
  • Java 的虚拟机采用 UTF-16 格式,即对基本字符集(约 6 万多字符)用双字节编码,每个字符占 2 个字节;对增补字符集(约一百多万字符)用双字符编码,即每个字符占 4 个字节。(注意:有些资料称 java 有2^16(即 65536)个字符是不准确的,java 的基本字符集占两个字节,是指有 216 个码位,并非每个码位都刻画了字符。有些码位起特殊作用。)
  • Java 字节码(即.class 文件)采用 UTF-8 编码格式,不同字符使用不同长度(分别是 1~4 个字节)的编码,常用字符编码更短,更省空间。

java 最初设计时,为何十分重视可靠性和安全性,并为此实施了哪些举措?

  • Java重视程序的可靠性,首先源于java面向的是嵌入式开发。普通程序交付使用后如果发现错误,修改更新即可。嵌入式程序要烧制到芯片中,若烧制后发现错误,只有回收产品,更换芯片,代价极高。
  • 其次,90年代忠厚其,计算机应用迅速渗透到生活中的各领域,程序中微小的错误可能产生很大影响,如火箭发射失败、银行停止服务、股票交易失常等等。
  • Java也非常重视程序的安全性,这是因为Java初期很重视网络程序开发。网络程序的运行,需要用户现将文件下载到本地,之后才能运行。这需要让用户首先线性,即使是不安全的网络程序,下载和运行也不会对用户的本机安全造成影响。
  • 可靠性方面的举措:语言本身要求强类型、语言简单规范、内存自动管理、垃圾自动回收机制等。
  • 安全性方面举措:禁止指针的偏移(即引用型只能按名引用)、沙箱机制等。
posted @ 2020-12-24 20:40  Zeker62  阅读(95)  评论(0编辑  收藏  举报