本文主要根据Java的诞生,Java的特性 进行描述。有错误,欢迎指正。
一:Java的诞生
Java 是从1995年的7月开始在计算机业界就受到了高度关注,特别是在Internet和多媒体(Multimedia)相关产品类方面。
Java为何有如此这么大的魅力?
Java是一种软件技术
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
是一种为 Internet发展的计算机语言
是一种使网页(Web Page)产生生动活泼画面的语言
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
是一种语言,用以产生「小应用程序(Applet(s))」
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
是一种将安全性(Security)列为第一优先考虑的语言
是一种使用者不需花费很多时间学习的语言
是一种突破用户端机器环境和CPU结构的语言
是一种「写一次,即可在任何机器上执行(Write OnceRun Anywhere)」的语言是有史以来
,第一套允使用者将应用程序(Applications)通过Internet从远端的服务器(Remote Server)传输到本地端的机器上(LocalMachine)并执行
是一种应用程序提供者不需要知道使用者的计算机硬件(如:Sun, Intel, 或MAC等)与软件(如:SW- UNIX, MAC O/S, Windows, 或NT等)环境的语言(Kestenbaum, 1995)。
二:Java的特性
Java是一种简单,健壮,多态,安全,网络,面向对象,搞性能的程序语言。
简单的
(Simple)
C/C++学习复杂,程序运行需要在各个平台运行。而Java是一次编译到处运行的。
Java是在C/C++的基础上面产生的,且同时屏蔽了C/C++的一些
指针
(Pointer)
、运算符重载
(Operator Overloading)
和多重继承
(Multiple Inheritance)
的特性。
面向对象的
(Object-Oriented)
面向对象分析
(Object-Oriented
Analysis)
是分析问题的一种方式,面向对象设计
(Object-Oriented Design)
是使用面向对象的思考方式来设计问题的解决方案。但是,要了解什么是面向对象,以及学会使用面向对象的方式进行设计与解决问题,并不是一件简单
的事情,事实上让您了解面向对象正是这本书的目标之一。
网络的
(Network-Savvy)
Java本身是通过网络而产生的,且好多功能与网络有关,从Applet,(简化的)Socket,(交互式的)Jsp/Servlet网络程序到今天的Web Service等等,其实Java也正是网络使用非常的高。EJB现在使用的相对较少。
编译的
(Interpreted)
程序在一个平台上要能够运行,必须先编译为该平台所能理解的原始机器语言
(Native Machine Instructions)
,但最大的问题在于每个平台所认识的机器语言各不相同。例如
Windows
操作系统认识的机器语言就与
Linux
认识的不相同,专为
Windows
操作系统所编写并编译好的程
序,并无法直接拿来在
Linux
操作系统上运行。
为了解决在不同平台间运行程序的问题,
Java
的程序在进行编译时,并不直接编译为与平台相对应的原始机器语言,而是编译为与系统无关的“字节
码”
(Bytecodes)
。为了要运行
Java
程序,运行的平台上必须安装有
JVM(
Java
Virtual Machine)
,
JVM
等于是为
Java
程序所虚拟的环境。当运行
Java
程序时,
Java
实时编译器
(Just In Time Compiler
,
JIT)
会将字节码编译为目标平台所接受的原始机器语言,通过
JVM
使得
Java
程序在不同平台上都能运行的目的得以实现,如图
1-2
所示。
图
1-2 JVM
将
Java
字节码转换为与平
台相对应的机器语言
良葛格的话
匣子:
“平台”
(Platform)
一词并没有较严谨的定
义,在计算机的领域中,平台有时指的是硬件,有时指的是作用于硬件之上的软件系统,有时则指硬件加上软件,这里的平台指的是“操作系统”。由于不同的硬件
会运行不同的操作系统,所以这里对平台的定义也就是硬件加上软件。
您可以在
Google(http://www.google.com/)
上搜寻
define:platform
来查询网络上各种对平台的定义。
健壮的
(Robust)
Java
将
C/C++
中一些功能强大但不容易掌握的功能去除了。以指针
(Point)
功能为例,即使是有经验的开发
人员在使用指针功能时也得小心翼翼,避免编写出使程序崩溃
(Crash)
的错误,诸如此类的功能在
Java
中被去除,为的是让
Java
在使用时更为简单,编写出来的程序更为健壮。
舍弃了
C/C++
的一些特性曾使得许多开发人员质疑没有了
C/C++
的这些特性,
Java
还能开发什么软件?但从
Java
正式提出至今
10
年来已经证明,
Java
确实适用于开发各个领域的软件,而且拥有广大的网络资源。
安全的
(Secure)
Java
加入了垃圾回收
(Garbage
Collection)
机制,让开发人员无需担心对象资源的回收问题,异
常
(Exception)
处理架构让开发人员可以掌握程序中各种突发的异常状况。另外,像
synchronized
、
final
等存取关键词的使用,目的都在于加强
Java
程序的安全性。
可移植的
(Portable)
要让程序跨平台运行并不是一件容易的事,有相当多的因素必须考虑,例如数
据类型所占内存长度就是一个问题,
Java
在不同的平台上的数据类型长度是
统一的
(
而
C/C++
则不然
)
。这是
Java
在提高程序可移植性上最显而易见的一个例子。
高性能的
(High-Performance)
高性能是
Java
所宣称的,在某些条件的配合下,
Java
号称可以与
C/C++
拥有同样甚至更好的运行性能,但更多的人只是将这个
宣称视为一个商业宣传的口号。
Java
是在运行时期才将中间的字节码编译为原始机器语
言,这就花上了一段不短的启动时间,而早期的
Java
在运行性能上确实是一直被诟病的。
不过在历经数个版本的变更,
Java
一直尝试提高其运行的性能,像使用
Java
HotSpot
技术。在第一次加载
Java
字节码时,
JIT
会以编译模式开始加载,分析并尝试以
最佳化编译为目标平台的原始机器语言。每一次的版本更新,
Java
皆尝试在性能上做出改进。
分享到:
相关推荐
Java API文档是学习和开发Java程序的重要资源,它包含了Java平台标准版(J2SE)的所有公共类、接口和方法的详细说明。这份名为“j2se-doc-cn”的压缩包包含的是Java API的中文版,对于中国开发者来说,无疑极大地...
资源名称:Java-J2se、J2ee开发全程视频教程和源码(87集)资源目录:【】Java-J2se-J2ee全程教程(01-10)【】Java-J2se-J2ee全程教程(11-20)【】Java-J2se-J2ee全程教程(21-30)【】Java-J2se-J2ee全程教程(31...
jaxmpp-j2se-3.0.0.jar(XMPP/Tigase开发,java代码类型客户端使用的jar包) 需要的朋友自己下载,一个朋友让我帮他找的,就顺便发出来给更多需要的朋友吧
java初学者很好的学习指南...从J2SE到JAVA EE一系列的学习过程,有很好的引导作用...
这里提到的"core-2.3.0 + QRCode + zxing-1.6-core + zxing-j2se-1.7"组合,是与二维码处理相关的Java库集合。下面我们将详细探讨这些组件以及它们在实际开发中的应用。 首先,"core-2.3.0"可能指的是某个项目的...
中文译名是J2SE参考大全(第5版) 这份是自己制作的电子书,现在还没有制作完成,因为内容太多,关打字就打个半死.
结合MATLAB标签,我们可以推测ZXing的Java库可能被用在MATLAB环境中,通过Java-MATLAB接口来实现二维码的处理。这为MATLAB用户提供了在数值计算和数据分析之外,进行条码和二维码操作的能力。 总的来说,ZXing是一...
《J2SE-孙鑫授课总结的PPT》是一份深度总结Java标准版(Java 2 Platform, Standard Edition,简称J2SE)核心知识的教学资料,由知名IT教育专家孙鑫精心编撰。这份PPT涵盖了Java SE的各个方面,旨在帮助学习者系统地...
- **zxing-j2se-1.7**:这是ZXing针对Java标准版(Java SE)的实现,提供在桌面环境中生成和读取条码的功能。这个库使得开发者可以在Java应用中轻松集成二维码生成和扫描功能。 2. **iReport** iReport是一款流行...
标题“j2se-server.rar_connect”暗示我们关注的是Java SE(标准版)服务器端的连接技术,特别是与移动设备交互的代码。描述中提到的"connect mobile javacode"进一步明确了我们要探讨的是如何使用Java来实现移动...
在IT行业中,J2SE(Java 2 Platform, Standard Edition)是Java开发平台的一个标准版本,主要用于桌面应用的开发。本项目"j2se-Music"显然是基于J2SE实现的一个音乐管理系统的雏形,主要功能包括音乐信息的增加、...
Java中的IO流是Java平台标准版(J2SE)的核心特性之一,用于处理输入和输出操作。在Java中,流是一组数据的有序传输,可以是字节或字符。流的分类、节点流与处理流的概念,以及各种流类的使用方法是理解Java IO系统...
Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记
javase 的api文档 学习java最基本的东西 大家应该都懂得
Java J2SE中的多线程技术是编程中的重要概念,特别是在开发高效并发应用程序时。本篇内容主要围绕线程的基础知识、创建与启动、状态转换、控制方法、优先级以及线程组展开。 首先,线程被定义为程序内部的顺序控制...
J2SE(Java Standard Edition)6.0版本是Java平台的一个重要里程碑,为开发者带来了许多新特性、增强和优化。这个压缩包包含三个重要的资源:《J2SE6.0-API(中文)-冷冻大雪.chm》、《java api1.6中文文档.chm》...
jar包,官方版本,自测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用