Java语言概述

一、Java的前世今生

20世纪90年代,硬件领域出现单片式计算机系统,这种系统 可以极大提高电子消费产品的智能化程度。sun公司为了抢占市场先机,在1991年成立Green的项目小组,专攻计算机在家电产品嵌入式上的应用,起初项目组人员选择C++来编写程序,但C++程序过于复杂和庞大以及不能支持跨平台应用,项目组成员决定对C++进行改造,开发了一种称为Oak的面向对象语言。
在开发Oak语言时,尚且不存在运行字节码的硬件平台,所以开发人员按照自己所指定的规范,用软件建立了一个运行平台,1992年当该语言开发成功后,研究者向硬件生产者介绍该产品并未对此产生兴趣,从而被搁置了下来。后来1994年团队决定改变努力目标,将该技术用于万维网(World Wide Web,缩写为WWW)。
1995年,互联网的蓬勃发展给Oak创造了机会。业界为了使死板、单调的静态网页能够“灵活”起来,急需开发一种程序可以通过网络传播并且可以跨平台运行,sun公司首先推出可以嵌入在网页并可以随同网页在网络上传输的Applet,并将Oak更名为Java(在申请注册商标时,Oak已被人使用,在一次提议者在喝一杯Java咖啡时无意提到的Java)。
1997年2月JDK1.1问世,先后相继发布1.2、1.3、1.4等系列,2009年甲骨文公司宣布收购sun公司,2011年发布JDK7,2014年发布JDK8,最新版截至目前已更新到JDK15。

现在主要有三个平台:

Java SE(Standard Edition)------标准版,主要为台式机和工作站桌面应用程序的版本;

Java EE(Enterprise Edition)------企业版,分布式系统和web应用程序的版本;

Java ME(Micro Edition)------微型版,消费类电子产品,手机等微型平台。

二、Java程序及调试步骤

1、编辑源程序

源程序说明:
①Java源程序必须以.java结尾。
②一个Java程序至少有一个类构成。
③main()方法是Java应用程序执行的入口。
④Java应用程序主类(包含主方法的类),类名通常与文件名一致。
⑤Java语言是大小写敏感的语言。
⑥源文件中最多只能有一个带public修饰的类,要求源程序文件名必须与带public修饰的类名一致,其主函数存在于带public修饰的类中。

2、编译生成字节码文件(.class文件)

编译需要用到JDK软件包的Java编译器程序(javac.exe),将Java源程序文件编译后产生对应的字节码文件,源文件中有几个类就会生成几个字节码文件。在DOS命令行下,命令格式为:javac 文件名.java。(现在大多数开发运行环境都为图形化界面,只需点相应的按钮即可)。

3、字节码文件的解释与执行

在JDK软件包中用来解释字节码文件的程序是java.exe,在DOS命令行下,命令格式为:java 字节码文件名(含有主函数的字节码文件)。(现在大多数开发运行环境都为图形化界面,只需点相应的按钮即可)。

三、Java语言的特点

1、简单的面向对象的语言(摈弃了C++中容易引发错误的地方,如指针和内存管理)。
2、 跨平台运行,一次编译到处执行(已编译的Java程序可以在任何带有JVM的平台上运行)。JVM体系结构如下图:

3、健壮安全的(异常处理机制、垃圾自动收集为Java程序健壮性提供重要保障)。
4、支持多线程(也就是可以同时作多件事,例如:我们边听音乐边吃饭)。
5、面向网络。
6、具有动态性能(在运行时所有的类都是动态加载的)。
7、Java是一门静态语言,静态语言指的是在编译初期就能知道数据类型,在运行前就能够检查数据类型的正确性,一旦确定就不能更改;与之对应的动态语言没有任何特定的情况需要指定变量的类型,在运行时确定数据类型。
*

静态语言主要有:C\C++、Java、C#等。
动态语言主要有:JavaScript、Python、Ruby等。

四、面向对象程序设计特性

1、封装性

把数据和对该数据的操作都封装在一个类中,即类的属性和方法。

2、继承性

字类继承父类的方法和属性,可以提高软件开发的效率。

3、多态性

1、方法的重载:即在同一个类中的方法,方法名相同,但参数不同。

2、方法的覆盖:对父类的某个方法,在子类中重新定义一个相同形态的方法,即方法名和参数都一致。

4、抽象性

1、类的层次设计中:高层类是底层类的抽象,父类是子类的抽象。

2、类与对象关系上:类是抽象的,对象是具体的。例如:我们需要造一个汽车,先给造出一个汽车模型(类),然后根据模型来制作具体的零件并组装(对象)。

五、面向对象与面向过程

1、何为面向对象和面向过程?

百度是这样定义的:面向过程是一种以过程为中心的编程思想;面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

简单来说:面向过程以过程为中心,一般严格按照事物发展顺序来编写程序;面向对象以对象为中心,可以不按照事物的顺序来编写程序。(面向过程编程我们该考虑 “我该怎么做?”然后一步步实现过程,而面向对象编程我们只需考虑“我该让谁做?”谁就是“对象”,它该如何完成这个这件事是它自己的事。)

例如:当我们设计一个五子棋游戏时,面向过程的设计思路就是首先分析问题的步骤:

1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现。

面向对象的设计整个五子棋可以分为:

1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。

第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

2、面向过程和面向对象的优缺点

面向过程:性能比面向对象高,由于面向对象在类调用时需要实例化,比较消耗资源;但与面向对象相比,其不宜维护,不易扩展,代码重复利用率低。
面向对象:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护;但其性能较低。
面向对象更适合于需求不断变化的应用软件,而面向过程更适合需求稳定但要求质量和效率的底层软件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值