赞
踩
1996 年 Java 第一次发布就引起了人们的极大兴趣。关注 Java 的人士不仅限于计算机出版
界, 还有诸如《纽约时报》《华盛顿邮报》《商业周刊》这样的主流媒体。Java 是第一种也是唯一一种在 National Public Radio 上占用了 10 分钟时间来进行介绍的程序设计语言,并且还得到了 $100 000 000 的风险投资基金。这些基金全部用来支持用这种特别的计算机语言开发的产品。重温那些令人兴奋的日子是很有意思的。
Java 并不只是一种语言。在此之前出现的那么多种语言也没有能够引起那么大的轰动。Java 是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供诸如安全性、 跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
它具有令人赏心悦目的语法和易于理解的语义(C++ 不是这样的)。 与许多其他的优秀语言一样, Java 完全满足了这些要求。有些语言提供了可移植性、 垃圾收集等, 但是, 没有提供一个大型的库。 如果想要有奇特的绘图功能、 网络连接功能和数据库存取功能就必须自己动手编写代码。Java 具备所有这些特性,它是一种功能齐全的出色语言, 是一个高质量的执行环境, 还提供了一个庞大的库。正是因为它集多种优势于一身,所以对广大的程序设计人员有着不可抗拒的吸引力。
Java 语言源于 1991 年 4 月,Sun 公司 James Gosling博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡树),但由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1995年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布,并提出“Write once, Run anywhere"的口号。
Java 的设计者已经编写了颇有影响力的“ 白皮书”,用来解释设计的初衷以及完成的情
况,并且发布了一个简短的摘要, 这个摘要用下面 11 个关键术语进行组织:
1 ) 简单性
Java语法是C++语法的一个“纯净版本”,相当于对C++做了一个减法。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。
简单的另一个方面是小。 Java 的目标之一是支持开发能够在小型机器上独立运行的软件。 基本的解释器以及类支持大约仅为 40KB ; 再加上基础的标准类库和对线程的支持(基本上是一个自包含的微内核) 大约需要增加 175KB。
2 ) 面向对象
简单地讲, 面向对象设计是一种程序设计技术。 它将重点放在数据(即对象)和对象的接口上。 用木匠打一个比方, 一个“ 面向对象的” 木匠始终关注的是所制作的椅子, 第二位才是所使用的工具;一个“ 非面向对象的” 木匠首先考虑的是所用的工具。在本质上,Java 的面向对象能力与 C++ 是一样的。
3 ) 分布式
Java 有一个丰富的例程库, 用于处理像 HTTP 和 FIT 之类的 TCP/IP 协议。Java 应用程序能够通过 URL 打开和访问网络上的对象, 其便捷程度就好像访问本地文件一样。如今,这一点已经得到认可,不过在 1995 年, 主要还是从 C++ 或 Visual Basic 程序连接Web 服务器。
4 ) 健壮性
Java 编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。 至于第二点,对于曾经花费几个小时来检查由于指针 bug 而引起内存冲突的人来说, 一定很喜欢 Java的这一特性。
5 ) 安全性
Java 适用于网络 / 分布式环境。 为了达到这个目标, 在安全方面投入了很大精力。 使用 Java 可以构建防病毒、 防篡改的系统。从一开始,Java 就设计成能够防范各种攻击,其中包括:
•运行时堆栈溢出。 如蠕虫和病毒常用的攻击手段。
•破坏自己的进程空间之外的内存。
•未经授权读写文件。
6 ) 体系结构中立
编译器生成一个体系结构中立的目标文件格式,按照该中规范生成的文件,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。这就是为什么可以:“Wrice once,Run anywhere”。
7 ) 可移植性
与 C 和 C++ 不同,Java 规范中没有“ 依赖具体实现” 的地方基本教据类型的大小以及有关运算都做了明确的说明 u例如,Java 中的 int 永远为 32 位的整数,而在 C/C++ 中, int 可能是 16 位整数、 32 位整数, 也可能是编译器提供商指定的其他大小。唯一的限制只是 int 类型的大小不能低于 short、int, 并且不能高于 long int。在 Java 中, 数据类型具有固定的大小, 这消除了代码移植时令人头痛的主要问题。 二进制数据以固定的格式进行存储和传输, 消除了字节顺序的困扰。字符串是用标准的 Unicode 格式存储的。
8 ) 解释型
Java 解释器可以在任何移植了解释器的机器上执行 Java 字节码。 由于链接是一个增量式且轻量级的过程, 所以, 开发过程也变得更加快捷, 更加具有探索性。这看上去很不错。用过 Lisp、Smalltalk 、 Visual Basic、Python、R 或 Scala 的人都知道“ 快捷而且具有探索性” 的开发过程是怎样的。 你可以做些尝试, 然后就能立即看到结果。 Java开发环境并没有将重点放在这种体验上。
9 ) 高性能
尽管对解释后的字节码性能已经比较满意, 但在有些场合下还需要更加高效的性能。 字节码可以(在运行时刻 )动态地翻译成对应运行这个应用的特定 CPU 的机器码。
10 ) 多线程
多线程可以带来更好的交互响应和实时行为。如今,我们非常关注并发性, 因为摩尔定律行将完结。我们不再追求更快的处理器, 而是着眼于获得更多的处理器, 而且要让它们一直保持工作。不过,可以看到,大多数编程语言对于这个问题并没有显示出足够的重视。
Java 在当时很超前。 它是第一个支持并发程序设计的主流语言。从白皮书中可以看到,它的出发点稍有些不同。当时, 多核处理器还很神秘, 而 Web 编程才刚刚起步,处理器要花很长时间等待服务器响应, 需要并发程序设计来确保用户界面不会“ 冻住”。并发程序设计绝非易事,不过 Java 在这方面表现很出色, 可以很好地管理这个工作。
11 ) 动态性
从各种角度看, Java 与 C 或 C++ 相比更加具有动态性。 它能够适应不断发展的环境库中可以自由地添加新方法和实例变量, 而对客户端却没有任何影响。 在Java 中找出运行时类型信息十分简单。
public class HelloWord{
public static void main(String[] args){
System.out.println("Hello World");
}
}
如上展示的就是最简单的一个Java程序,打印 Hello Word 。可以说,Java的main方法应该是当前主流编程语言中最“长”的。下面这些名词在后续的学习中都是会接触到的,相信和之前学习过的C相比,还是有很多相似的地方的。
通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成:
1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。
2.类:类中带有一个或多个方法。方法必须在类的内部声明。
3.方法:在方法的花括号中编写方法应该执行的语句。
总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。
注意:在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。
Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成与平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。
在运行Java文件之前我们还要安装JDK和IDEA(集成开发环境),JDK里面就包含了javac和java工具,Java程序最终是在JVM(Java虚拟机)中运行的。
这边是 JDK安装视频 和 IDEA安装视频。大家可以根据视频来安装这两个学习Java必备软件。
注释是为了让代码更容易被读懂而附加的描述信息,不参与编译运行,但是却非常重要。
基本规则:
单行注释:// 注释内容(用的最多) ctr+/
多行注释:/* 注释内容 /(不推荐) ctr+shift+/
文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档。
注释规范:
在上述程序中,Test称为类名,main称为方法名,也可以将其称为标识符,即:在程序中由用户给类名、方法名或者变量所取的名字。
【硬性规则】(合法)
标识符中可以包含:字母、数字以及下划线和 $ 符号等等。
注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写。
【软性建议】(合理)
类名:每个单词的首字母大写(大驼峰)
方法名:首字母小写,后面每个单词的首字母大写(小驼峰)
变量名:与方法名规则相同
对于标识符的取名,我们不仅要做到合法也要做到合理,这样我们写出来的代码才更加规范美观。
通过观察上述程序可以发现,public、class以及static等颜色会发生变化,将这些具有特殊含义的标识符称为关键字。即:关键字是由Java语言提前定义好的,有特殊含义的标识符,或者保留字。
注意:用户不能使用关键字定义标识符。
下面是主要的一些Java关键字:
用于定义访问权限修饰符的关键字 | private | protected | public | ||
---|---|---|---|---|---|
用于定义类、函数、变量修饰符的关键字 | abstract | final | static | synchronized | |
用于定义类与类之间关系的关键字 | entends | implements | |||
用于定义建立实例及引用实例,判断实例的关键字 | new | this | super | instanceof | |
用于异常处理的关键字 | try | catch | finally | throw | throws |
用于包的关键字 | package | import | |||
其他修饰符关键字 | native | strictfp | transient | volatile | assert |
在初识了Java以后,Java是一门纯面向对象的语言,而C++是面向过程的语言。我们下来以后首先要安装好JDK和IDEA,试着编写最简单的 Hello World 程序,了解一个java 程序是怎么产生的。对于标识符,要一开始就养好良好的代码习惯,类名采用大驼峰的取名规则,方法名和变量名采用小驼峰的取名规则,注释也是一个好代码的重要评判标准。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。