IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【核心系列】Java程序设计概述 -> 正文阅读

[Java知识库]【核心系列】Java程序设计概述

目录

一、Java程序设计平台

二、Java“白皮书”的关键语术

1.简单性

2.面向对象

3.分布式

4.健壮性

5.安全性

6.体系结构中立

7.可移植性

8.解释型

9.高性能

10.多线程

11.动态性

三、Java applet 与 Internet

四、关于Java的常见误解

1.Java?是?HTML?的扩展。

2.使用?XML?,所以不需要?Java。

3.?Java?是一种非常容易学习的程序设计语言。

4.?Java?将成为适用于所有平台的通用性编程语言。

5.Java是解释型的,因此对于关键的应用程序速度太慢了。

6.Java程序存在重大安全风险。

7.JavaScript是Java的简易版。


一、Java程序设计平台

Java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码,以及一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。

二、Java“白皮书”的关键语术

1.简单性

我们希望构建一个无须深奥的专业训练就可以进行编程的系统,并且复要符合当今的标准惯例。在设计Java时还是尽可能的接近C++,以便于系统更容易理解。Java剔除了C++中许多很少使用、难以理解、容易混淆的特性。在我们看来,这些特性带来的麻烦远大于它们的好处。如果你了解C++,就会发现可以轻而易举的转换到Java语法。

“简单”的另一个方面是小。Java的目标之一是支持开发能够在小型机器上独立运行的软件。基本的解释器以及类支持大约仅为40KB,再加上基础的标准类库和对线程的支持,大约需要增加175KB。在当时,这是一个很了不起的成就。当然,由于不断地扩展,类库已经相当庞大了。现在有一个独立的具有较小类库的Java微型版(Java Micro Edition),这个版本适用于嵌入式设备。

2.面向对象

简单的讲,面向对象设计是一种程序设计技术。他将重点放在数据(即对象)和对象的接口上。在本质上,Java的面向对象能力与C++是一致的。主要的不同点在于多重继承,在Java中,取而代之的是更简单的接口概念。

3.分布式

Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。

4.健壮性

Java的设计目标之一在于使得Java编写的程序具有多方面的可靠性。Java非常强调进行早期的问题检测、后期动态的(运行时)检测,以及消除容易出错的情况。

5.安全性

?Java要适用于网络/分布式环境。为了实现这个目标,安全性颇受重视。使用Java可以构建防病毒、防篡改的系统。

不过,Java安全模型很复杂。遭遇多次高调攻击后,Java浏览器插件不在信任远程代码,除非代码有数字签名而且用户同意执行这个代码。

6.体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。Java编译器通过生成特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态的转换成本地机器代码。

解释型虚拟机指令肯定会比全速运行机器指令慢很多。不过,虚拟机有一个选项,可以将执行最频繁的字节码序列转换成机器码,这一过程称为即时编译。

Java虚拟机还有一些其他优点。它可以检查指令序列的行为,从而增强其安全性。

7.可移植性

与C和C++不同,Java规范中没有“依赖具体实现”的地方。基本数据类型的大小以及有关运算的行为都有明确的说明。

在Java中,数值类型有固定的字节数,这消除了代码移植时一个令人头疼的主要问题。二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。字符串则采用标准的Unicode格式存储。

8.解释型

Java解释器可以在任何移植了解释器的机器上直接执行Java字节码。

9.高性能

尽管对解释后的字节码性能已经比较满意,但在有些场合下还需要更高的性能。字节码可以(在运行时)动态地转换成对应运行这个应用的特定CPU的机器码。

10.多线程

多线程可以带来更快的交互响应和实时行为。

11.动态性

从很多方面来看,Java与C或C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由地添加新方法和实例变量,而对客户端却没有任何影响。

三、Java applet 与 Internet

这里的想法很简单:用户从Internet下载Java字节码,并在自己的机器上运行。在网页中运行的Java程序称为applet。要使用applet,只需要一个启用Java的Web浏览器。

在网页中插入一个applet就如同在网页中嵌入衣服图片。applet会成为页面的一部分。关键的一点是,这个图片是活动的。他可以对用户命令做出响应,改变外观,在运行他的计算机与提供他的计算机之间交换数据。

后来,Java遭遇了严重的安全问题,浏览器和Java浏览器插件变得限制越来越多。如今,要在浏览器中使用applet,这不仅需要一定的水平,而且要付出很大的努力。? ? ? ? ? ??

四、关于Java的常见误解

1.Java?是?HTML?的扩展。

Java?是一种程序设计语言;?HTML?是一种描述网页结构的方式。除了用于在网页上放置Java?applet?的?HTML?扩展之外,两者没有任何共同之处。

2.使用?XML?,所以不需要?Java。

Java?是一种程序设计语言;?XML?是一种描述数据的方式。可以便用任何一种程序设计语言处理?XML?数据,而?Java?API?对?XML?处理提供了很好的支持。此外,许多重要的?XML 工具都采用?Java?编写。

3.?Java?是一种非常容易学习的程序设计语言。

像?Java?这种功能强大的语言大都不太容易学习。必须将编写玩具式程序的轻松与开发实际项目的艰难区分开来。

4.?Java?将成为适用于所有平台的通用性编程语言。

从理论上讲,这是完全有可能的。但在实际中,某些领域其他语言有更出色的表现,比如,Objective?C?和后来的?Swift?在?iOS?设备上就有着无可取代的地位。浏览器中的处理几乎完全由?JavaScript?掌控。?Windows?程序通常都用?C++ 或?C#编写。Java?在服务器端编程和
平台客户端应用领域则很有优势。

5.Java是解释型的,因此对于关键的应用程序速度太慢了。

早期的Java是解释型的。现在Java虚拟机使用了即时编译器,因此采用Java编写的“热点”代码运行速度与C++相差无几,有些情况下甚至更快。


6.Java程序存在重大安全风险。

对于早期的Java,有过关于Java安全系统失效的报道,曾经引起过公众关注。研究人员努力找出?Java的漏洞,并质疑?applet安全模型的强度和复杂度,将这视为一种挑战。人们很快就解决了引发问题的所有技术因素。后来又发现了更严重的漏洞,而Sun公司以及后来的?Oracle公司反应却过于迟缓。浏览器制造商则有些反应过度,他们甚至默认禁用了Java。客观地讲,针对?Windows?可执行文件存在更大量的病毒攻击,并造成了巨大的损害,不过奇怪的是却很少有人批评被攻击平台的脆弱性。尽管距离?Java诞生已经20年之久,与其他常用的执行平台相比,Java还是安全得多。

7.JavaScript是Java的简易版。

JavaScript是一种可以在网页中使用的脚本语言,JavaScript?的语法让人想到Java,另外名字也有些相像,但除此之外,两者并无任何关系。尤其是,Java是强类型的,编译器能捕获类型滥用导致的很多错误。而在?JavaScript中,只有当程序运行时才能发现这些错误,所以消除错误会更费劲。

(来自不会敲代码的卑微贝贝~)

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:00:55  更:2022-02-19 01:01:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:42:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码