版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南天金融软件定制班教材
第一部分Java基础
培训资源部
2010年7月
目录
1概述1
2第一章小语言概述2
2.1第一节程序设计语言2
2.2第二节了解JAA8
3第二章JMA语言基础16
3.1第一节标识符与关键字16
3.2第二节基本数据类型16
3.3第三节变量与常量18
3.4第四节运算符与表达式19
3.5第五节流程控制21
3.6第六节数组30
4第三章面向对象技术36
4.1第一节类与对象36
4.2第二节类的创建36
4.3第三节对象的创建38
4.4第四节类的封装42
4.5第五节类的继承44
4.6第六节类的多态性49
47第七节接口52
48第八节内部类53
49第九节包56
5第四章以购高级特性60
5.1第一节JEK1.5高级特性60
5.2第二节JIK1.6高级特性62
5.3第三节J栈常用类62
6第五章异常处理79
6.1第一节万⑪异常处理的基础知识79
6.2第二节异常的分类83
6.3第三节抛出异常85
6.4第四节自定义异常类85
6.5第五节J瓜碍常处理的原则和技巧87
7第六章流和文件处理89
7.1第一节数据流的基本概念89
7.2第二节文件操作96
7.3第三节字节流98
7.4第四节字符流101
7.5第五节流的高级操作104
8第七章网络编程107
a1第一节网络编程基础107
a2第二节程112
&3第三节UW程116
1概述
JAVA语言是近年得到迅速推广应用的一种计算机语言。JAVA语言功能丰富,表达能力强,
使用灵活方便,应用广,目标程序可移植性强,具有高级语言的优点,同时还具备跨平台的优点.
本课程是计算机类工科各专业学习的一门高级语言程序设计课程,具有一般较强的计算机编程知
识即可学习本课程。通过木课程的学习,学生应掌握JAVA语言的基本语法,还应掌握面向对象
程序设计的基本思想,基本概念和基本方法,并能运用所学的知识和技能对一般问题进行分析和
程序设计,编制出高效的JAVA语言应用程序。
第1页共125页
2第一章java语言概述
21第一节程序设计语言
机器语言
计算机所能识别的语言只有机器语言,即由o和1构成的代码。但通常人们编程时,不采用
机器语言,因为它非常难于记忆和识别。
汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的
标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编
程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程
中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而
且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编
语言所能完成的操作不是•般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比
较小,而且执行速度很快。
高级语言
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有
关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
解释类
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器
“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执
行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
编译类
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其
目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,
必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,修改
第2页共125页
很不方便。现在大多数的编程语言都是编译型的,例如VisualC++、VisualFoxpro.Delphi等。
2.1.Uava历史
从JDK诞生到现在已经有16年了。到目前为止,JDK已经发布了6个版本。在这14年里,
诞生了无数和Java相关的技术和标准。现在,让我们从1995年开始,回顾一下Java的产生和发
展过程。
Java产生背景
1991年4月,Sun公司的JamesGosling领导的绿色计划(GreenProject)开始着力发展一种
分布式系统结构,使其能够在各种消费性电子产品上运行。Green项目组的成员一开始使用C++
语言来完成这个项目。山于Green项目组的成员都具有C++背景,所以他们首先把目光锁定在
C++编译器上。Gosling首先改写了C++编译器。但是,很快他发现C++存在很多不足,需要研发
一种新的语言来替代它。
这种语言最初被命名为Oak,目标设定为家用电器等小型系统的编程语言,用来解决诸如电
视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。17个月之后,整个系统完成,这个
系统是更类似机顶盒式的操作系统。不过,在当时市场不成熟的情况下,他们的项目没有获得成
功。但Oak语言却得到了Sun公司总裁的赏识。
Java产生
直至1994年下半年,由于Internet的迅猛发展和环球信息网WWW的快速增长,第一个全
球信息网络浏览器Mosaic诞生了。此时,工业界对适合在网络异构环境下使用的语言有一种非
常急迫的需求。JamesGosling决定改变绿色计划的发展方向,对Oak进行了小规模的改造。就这
样,Java在1995年3月23日诞生了。Java的诞生标志着互联网时代的开始。Java能够被应用在
全球信息网络平台上编写互动性极强的Applet程序。1995年的Applet给人们无穷的视觉和脑力
震荡。其实,Java的诞生颇有一股“有心栽花花不开,无心插柳柳成荫”的味道。就像Unix和
它的前身MULTICS系统一样。
Sun在1995年5月23日的SunWorld'95会议上正式发布Java和HotJava浏览器。同年,有
很多公司先后获得了Java许可证。如Netscape在1995年8月,Oracle在1995年10月分别获得
了Java许可证。Sun在1995年发布第一个Java版本后,于1996年1月宣布成立新的业务部门
一JavaSoft部。这个部分主要负责开发、销售并支持基于Java技术的产品。
Sun虽然在1995年推出了Java,但这只是一种语言,要想开发复杂的应用程序,必须要有
一个强大的开发库支持才行。Sun在1996年1月23日发布了JDK1.0。这个版本包括运行环境(即
JRE)和开发环境(即JDK)两部分。运行环境包括了核心API、集成API,用户界面APL发布
技术,Java虚拟机(JVM)5个部分。而开发环境还包括编译Java程序的编译器(BPjavac),在
JDK1.0版本中,除了AWT(一种用于开发图形用户界面的API)外,其他的库并不完整。
在推出JDK1.0后,紧跟着,Sun在1997年2月18日发布了JDK1.1,JDK1.1相对于JDK1.0
最大的改进就是为JVM增加了JIT(即时编译)编译器。JIT和传统的编译器不同。传统的编译
器是编译一条,运行完后再将其扔掉,而JIT会将经常用到的指令保存在内容中,在下次调用时
第3页共125页
就不需要再编译。这样,JDK在效率上有了非常大的提升。
21.Java的特点
Sun的"Java白皮书”对Java做了如下定义。"Java:Asimple,object-oriented,distributed,
interpreted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,and
dynamiclanguageJava是•种简单的、面向对象的、分布式的、解释执行的、健壮的、安全的、
结构中立的、可移植的、高效率的、多线程的和动态的语言。Sun公司对Java的定义充分展示了
Java的如下几个特点:
简单
Java是一种简单的语言。Java在C、C++的基础上开发,继承了C和C++的许多特性,同时
也取消C和C++语言中繁琐的、难以理解的、不安全的内容,如指针、多重继承等。JDK还提供
了丰富的基础类库,具有C或C++编程经验的程序员都会对这些基础类库很熟悉,无需经过长时
间训练即可掌握它。
面向对象
Java是一种纯面向对象的语言。Java程序面向对象的设计思路不同于C语言基于过程的程序
设计思路。面向对象程序设计,具备更好地模拟现实世界环境的能力和可重用性。它将待解决的
现实问题转换成一组分离的程序对象,这些对象彼此之间可以进行交互。一个对象包含了对应实
体应有的信息以及访问和改变这些信息的方法。通过这种设计方式,所设计出来的程序更易于改
进、扩展、维护和重用。Java语言提供类、接口和继承等原语。Java语言只支持类之间的单继承,
但支持接口之间的多继承,并支持类与接口间的实现机制。Java语言全面支持动态绑定,而C++
语言只对虚函数使用动态绑定。
分布式
Java是一种分布式的语言。传统的基于C/S(客户端/服务器)架构的程序,均采用客户端向
服务器提出服务请求,服务器再根据要求执行适当的程序并将结果返回的方式,所以,服务器负
荷较重。Java采用Java虚拟机架构,可将许多工作直接交由终端处理,因此,数据可以被分布式
处理。止匕外,Java类库的运用,大大减轻了网络传输的负荷。Java类库包含了支持HTTP和FTP
等基于TCP/IP协议的子库。Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与
访问本地文件系统几乎完全相同。分布式网络环境是Java进一步发展的地方。
高效解释执行
Java是高效解释执行的语言。高级语言程序必须转换为机器语言程序才能在计算机上执行。
但是,不同的计算机系统所使用的机器语言不同。为了实现“一次编译,随处运行”的目标,Java
程序在编译时并不直接编译成特定的机器语言程序,而是编译成与系统无关的“字节码
(bytecode)由Java虚拟机(JavaVirtualMachine,JVM)来执行。JVM使得Java程序可以“一
第4页共125页
次编译,随处运行"。任何系统只有安装了Java虚拟机后,才可以执行Java程序。
JVM能直接在任何机器上执行,为字节码提供运行环境。当JVM解释执行Java程序时,Java
实时编译器(Just-In-Time,JIT)会将字节码译成目标平台对应的机器语言的指令代码。
早先的许多尝试解决跨平台问题的方案对性能要求都很高。其他解释执行的语言系统,如
BASIC、TCL、PERL都有无法克服的性能缺陷。但是,Java却可以在非常低档的CPU上顺畅运
行。这是因为JVM能够直接使用JIT编译技术将经过精心设计的字节码转换成高性能的本机代码。
事实上,随着JIT编译器技术的发展,Java程序的运行速度已接近于C++。因而,“高效且跨平
台”对Java来说已不再矛盾。
健壮性
Java是健壮的语言。为了更好地理解Java的健壮性,先讨论一下传统编程环境下程序设计失
败的主要原因:内存管理错误和误操作引起的异常或运行时异常。
在传统的编程环境下,内存管理是一项困难、乏味的工作。例如,在C或C++中,必须手工
分配、释放所有的动态内存。如果忘记释放原来分配的内存,或是释放了其他程序正在使用的内
存时,系统就会出错。同时,在传统的编程环境下,异常情况可能经常由“被零除”、“Null指针
操作”、“文件未找到”等原因引起,必须用既繁琐又难理解的一大堆指令来进行处理。
Java通过自行管理内存分配和释放的方法,从根本上消除了有关内存的问题。Java提供垃圾
收集器,可自动收集闲置对象占用的内存。Java提供面向对象的异常处理机制来解决异常处理的
问题。通过类型检查、Null指针检测、数组边界检测等方法,在程序开发早期就发现程序的错误。
安全
Java是安全的网络编程语言。因为Java常被用于网络环境中,为此,Java提供了-一系列的
安全机制以防恶意代码攻击,确保系统安全。Java的安全机制分为多级,包括Java语言本身的安
全性设计以及严格的编译检查、运行检查和网络接口级的安全检查。
Java语言是强类型语言,每种类型都要求严格定义。首先,每个变量、表达式都有类型。其
次,所有的数值传递,不管是直接的、还是通过方法调用经由参数传递,都要进行类型相容性检
查。有些语言没有自动进行数据类型相容性检查,或对冲突的类型进行转换的机制。Java编译器
对所有的表达式和参数都要进行类型相容性的检查,以确保类型是兼容的。任何类型的不匹配都
是错误的,在编译完成之前,错误必须全部被纠正。此外,Java摒弃指针类型和数据类型的隐式
转换,对内存访问进行了严格的限制。Java编译器在编辑期间并不分配内存,而是推迟到运行时
山解释器决定。这样,编程人员就无法通过指针来非法访问内存。在运行期间,Java的运行环境
提供了4级安全保障机制:字节码校验器、类装载器、运行时内存布局和文件访问限制。在网络
接口级,用户可按自己的需要来设置网络访问权限。
此外,Java的未来版本将采用公开密钥法以及其他加密技术,来核实从网络上传输过来的代
码的源主机及该代码的完整性。
结构中立
Java是结构中立的语言。Java的设计目标是要支持网络应用。一般而言,网络是由许多不同
的系统构成,包括各种不同的CPU与操作系统。为了让Java应用程序能够在网络上任何地方执
行,其编译器会产生一种具备结构中立性的对象文件格式,即Java字节码文件。Java字节码可在
第5页共125页
任何安装了Java虚拟机的平台上运行。
可移植
Java开发的程序具有可移植性。结构中立是确保程序可移植的必要条件,此外,还需要很多
其他条件的配合。Java在可移植性方面做了许多工作。Java语言规范中没有任何“同具体实现相
关”的内容,解决了所有可能会影响到Java可移植性方面的问题。例如,在Windows3.1中整数
(Integer)为16位,在Windows95中整数为32位,在DECAlpha中整数为64位,在Intel486
中为32位,不同的操作系统和CPU对数据类型及长度都作了不同的定义,给程序的可移植性带
来了•定的难度。Java通过定义独立于平台的基本数据类型及其运算,使数据得以在任何硬件平
台上保持一致。事实上,几乎所有的CPU都能支持以上数据类型,都支持8〜64位整数格式的
补码运算和单/双精度浮点运算。
高效率
Java是高效率的语言。每一次的版本更新,Java在性能上均做出了改进。在历经数个版本变
更后,Java已经拥有与C/C++同样甚至更好的运行性能。如果解释器速度不慢,Java可以在运行
时直接将目标代码翻译成机器指令。使用JVM1秒钟内可调用300000个过程,与C/C++不相上
下。
多线程
Java是支持多线程的语言。多线程是一种应用程序设计方法。线程是从大进程里分出来的、
小的、独立的进程,使得在一个程序里可同时执行多个小任务。多线程带来的好处是具有更好的
交互性能和实时控制性能。但采用传统的程序设计语言(如C/C++)实现多线程非常困难。Java
实现了多线程技术,提供了一些简便地实现多线程的方法,并拥有•套高复杂性的同步机制。
动态
Java语言具有动态特性。Java动态特性是其面向对象设计方法的扩展,允许程序动态地装入
运行过程中所需的类,这是C++进行面向对象程序设计所无法实现的。C++程序设计过程中,每
当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导
致程序出错。Java采取如下措施来解决此类问题:
(1)Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信
息在字节码中保存后传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数
据偏移量。存储器生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定。这样,对
类中变量和方法进行更新时就不至于影响现存的代码。解释执行字节码时,这种符号信息的查找
和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。
(2)在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。
如果程序连接了网络中另一系统的某一类,该类的所有者也可以自由地对该类进行更新,而不会
使任何引用该类的程序崩溃。
(3)Java还简化了使用一个升级的或全新的程序的方法。如果系统运行Java程序时遇到了
不知如何处理的程序,Java能自动下载所需要的功能程序。
第6页共125页
Java是一种比C/C++更具动态特性的语言,在设计上强调为运行中的运算环境提供动态支持。
Java在运行时为模块与模块之间建立连接,并能够更直接地运用面向对象设计体系。程序库可以
自由地增加新方法和实例变量,而不会对它们的用户产生任何影响。
2.1.3Java的核心技术与实现机制
JavaVirtualMachine(Java虚拟机),它是,-个虚构出来的计算机,是通过在实际的计算机上仿
真模拟各种计算机功能来实现的,。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器
等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成
在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执
行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。
JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编
译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组
寄存器、一个栈、一个垃圾回收堆和一个存储方法域。
Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植
到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己
想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
2.1.机种语言的对比
Java和C++对比:
Java程序中的每个变量要么是基本数据类型(boolean,char,byte,short,int,long,float,
double),要么是对对象的引用。
C++有许多种基本类型,额外还有struct,union,enum,数组和指针,C++指针可以指向对象,
也可以不指向对象。
Java没有枚举、联合类型,因为Java认为没有必要。将可有可无的语言元素去掉是Java对
C/C++做出的一大改变,因此,普遍认为Java较C++更轻便,更精简。
Java采用Unicode字符集,C++通常用ASCH字符集。但ASCII是Unicode的子集,对于习
惯于ASCH的程序员感觉不到区别。
Java中的boolean类型不能转换成其他类型,反之亦然。C++最近引进了bool类型,代表布
尔类型,整型也作为逻辑判断。
Java和C#的对比:
二者都编译成跨平台的、跨语言的代码,并且代码只能在一个受控制的环境中运行,自动回
收垃圾内存,并且消除了指针(在C#中可以使用指针,不过必须注明unsafe关键字)。
都不需要头文件,所有的代码都被“包(package)”限制在某个范围内,并且因为没有头文件,
所以消除了类定义的循环依赖所有的类都是从对象派生并且必须使用New关键字分配内存。用
第7页共125页
对象加锁的方式来支持多线程,都具有接口(interface)的概念。
22第二节了解java
2.2IJava开发环境的安装与配置
JDK(JavaDevelopmentKit)是整个Java的核心,包括了Java运行环境JRE(Java
RuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都
是内置了某个版本的JDK。最主流的JDK是Sun公司发布的JDK,我们可以在网上卜.载到JDK
程序:hllp:〃/zh_CN/基本的环境配置如下:
茎统厘性L22*'环境变量
计算机名:硬件高级系统保护|远程
zmpmqq的用户变里也)
要进行大多数更改,您必须作为管理员登录。
变里值
性能
TEMP%USERPROFILE%\AppData\Local\Temp
视觉效果,处理器计划,内存使用,以及虚拟内存IMP%USERPROFILE%\AppData\Local\Temp
用户配置文件|耐如…|刖®…]IH>余一|
与您登录有关的桌面设置
系统兖里(S)
SS值*
NUNBER_OF_PR...2
启动和故障恢复
OSWindows_NT
系统启动、系统失败和调试信息
〔PathD\PrografliFiles\Jave\jdkl6。1
PATwm___________rnM-m-RAT-CMTIVRS-VRF-
环填艾里幽二.J
|碓]|取消]应用3]
2.22Java程序的编辑、编译与运行
1、编写源程序2、编译源程序3、运行
MyProgram.javaMyProgram.classJava运行平台
第8页共125页
工作流程
编写Java应用程序非常简单,一般可以分为下面3个步骤。
(1)创建Java源程序
Java源程序•般用.java作为扩展名,是一个文本文件,用Java语言编写,可以用任何文本
编辑器创建与编辑。常用的有记事本、纯文本编辑器UltraEdit、Eclipse和NetBeans等开发工具。
(2)编译源程序
源文件创建完成之后,就可以使用Java编译器,即“javac”读取Java源程序,并将其翻译
成Java虚拟机能够明白的指令集合,以字节码的形式保存在文件中。通常,该字节码文件以.class
作为扩展名。
(3)运行class(字节码)文件
字节码文件生成之后,利用Java解释器,即“java”读取字节码,取出指令并将其翻译成计
算机能执行的代码,完成运行过程。
编写实例
下面通过一个实例,演示Java程序的开发流程。打开记事本,输入下列内容。
/♦*
*这个类用于在屏幕上显示消息
*/
publicclassHello{
/**
*类和应用程序的唯一入口点
*©paramargs字符串参数的数组
*/
publicstaticvoidmain(String[]args){
/*输出消息*/
System.out.printin("这是我的第•个Java程序");
)
)
保存上述代码为Hello.java。该案例使用了注释。注释有3种:文档注释,多行注释,单行
注释。“/***/”为文档注释,主要是对整个程序的功能做一个说明的作用。"/**/”
为多行注释,主要对某一个功能模块进行说明。“〃”为单行注释,可以对某一个语句注解说明。
关键字class声明类的定义,可以理解它是一个类的声明。整个类及其所有成员都是在一对
大括号,即在“{”和“}”之间定义。这对大括号标志类定义块的开始和结束。程序从main()方
法开始执行,关键字public是一个访问控制符,限制类成员的可见度和作用域。关键字static允
许调用main。方法,而无须创建类的实例。关键字void表明main。方法在执行时不返回任何值。
main。方法是所有Java应用程序的起始点,args[]是String类型的数组。println()方法通过System.out
显示作为参数传递给它的字符串。
第9页共125页
实例分析和运行
将Hello.java文件保存在F:\Java\l文件夹下。初学者需要注意下面几个方面。
1.源文件的名称一定要和类的名称保持一致。
2.源文件的扩展名必须为java。
3.Java语言区分大小写。在Java程序中,System和system是两个不一样的名称。
4.空格只能是半角空格符或是Tab字符。
源程序编写好后,需要打开一个命令提示符窗口。可以通过单击【开始】I【所有程序】I【附
件】I【命令提示符】命令打开。也可以通过单击【开始】I【运行】命令,在弹出的对话框中输
入“cmd”命令打开。打开命令提示符窗口之后,进入到Hello.java文件所保存的目录下,然后
使用“javac”编译生成Hello.class字节码文件。字节码文件生成后,可以使用“java”解释执行
该文件。其情形如图所示。
图编译和执行Hello.java
在该窗口中,使用“cd”命令进入保存Hello.java源代码文件的文件夹内.
在使用“javac”编译器编译源代码文件时,可能会出现下面几个常见问题。
Error:cannotread:Heilo.java
javac工具程序找不到指定的.java文件。需要检查文件是否存储在当前目录中,或是文件名
是否错误。
Hello.java:l:classHelloispublic,shoudbedeclaredinafilenamedHello.java
源文件中类的名称和源文件名称不符。需要确定源文件名称和类名称是否相同。
Hello.java:3:cannotfindsymbol
源程序文件中某些代码部分输入错了,原因可能是没有注意到字母的大小写。
Javac不是内部或外部命令、可执行程序或批量文件
pa山设置有误或没有在path中加入JDK的bin目录。
如果没有出现上述所列问题,表明成功编译了该Java文件。在解释执行.class文件时,可能
会出现下面几个常见问题。
Exceptioninthread"main"java.lang.NoClassDefFoundError
Java工具程序找不到所指定的.class文件,需要确定指定的类是否存储在当前目录中,名称
是否正确。
Exceptioninthread"main"java.lang.NoSuchMethodError:main
没有指定Java程序的入口。Java工具程序指定的类必须有一个程序入口,即必须包括main
(Stringargs[])这个方法。
2.2.3JavaIDE的简单运用
如何选择一个workspace启动
第10页共125页
SelectVorkspaceDirectory0®
Selecttheworkspacedirectorytouse.
日一TOOLS8:)
|±)iQdownload
国0HZGW
l±)।二)Java
JavaProject
囹广)MicrosoftVisualStudio8
ffiProgram
田1^1ProgramFiles
Z-^.AIL4T71v
文件夹:JavaProject
新建文件夹勉)确定取消
如何创建一个新工程
第11页共125页
如何创建类
第12页共125页
如何编辑、运行、调试
运行Java应用程序:RunfRunAsfJavaApplication
若用外面参数传入main方法的args参数,则Run->Run...
若要调试,则RunfDebug…具体见调试方法
调试技巧:
单步调试按F6,按F8结束运行
鼠标移至某一变量,则会显示该变量当前的值
在Variables的显示框(若没出现,则选windowfshowviewfVariables)查看各变量的变化情
况
在window^showviewfExpressions输入表达式查看计算结果
如何设置断点调试:双击需设置断点的行的左边框
第13页共125页
HelloWorld.java-u
pul)XlcclassHelloUorId{
inti;
*@paramargs
*/
Hpublicstaticvoidmain(String[]args){
F//TODOAuto-generatedmethodstubCZ3
inti=l;
—HelloWorldh=newHelloWorld();
Lh・i=2;
i=Integer-p^rseTnt(args[0]);
System,out.print-ln(i);
System.out.printIn(h.i);
如何添加外部的类库
Java-HelloWorld.java-EclipseSDK
FileEditSourceRefactorNavigateSearchProjectRun.YindowKelp
o□
*B««ov・fro*BuildPath
$AddExtern*!Archiv«s
_AAddLibraries
身Refresh
ClozeProject
pareBuildPath.
RunAs
n«bu(As
Tl-
CompareYxth
R«stor«froeLocalMiitorx
PDETog
JavadocDeclaration
第14页共125页
如何改变工作目录
第15页共125页
3第二章java语言基础
3.1第一节标识符与关键字
标识符
是用户编程时使用的名字。我们指定某个东西、人,都要用到它,他或她的名字;
在数学中解方程时,我们也常常用到这样或那样的变量名或函数名。同样的道理,在
电脑语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为标识符。
关键字
关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字。Java
中的常用关键字如下:
数据类型:byteshortintlongcharfloatdoublebooleanstring
修饰符:publicprotectedprivateclassextendsinterfaceinportpackage
irrplementssuperthistruefalsestaticfinalnul1
流程控制:forforeachifelseswitchcasebreakcontinue
returntrycatchthrowthrowsfinally
注:以上并非java全部关键字,以后可在学习和工作中慢慢体会新的关键字及
其用法。
3.2第二节基本数据类型
整数型:byteshort、int>long
浮点型:floatdouble
字符型:char
布尔型:boolean
第16页共125页
int:int为整数类型,在存储的时候,用4个字节存储,范围为-2,147,483,648
至1」2,147,483,647,在变量初始化的时候,int类型的默认值为0。
short:short也属于整数类型,在存储的时候,用2个字节存储,范围为
-32,768到32,767,在变量初始化的时候,short类型的默认值为0,一般情况
下,因为Java本身转型的原因,可以直接写为0。
long:long也属于整数类型,在存储的时候,用8个字节存储,范围为
-9,223,372,036,854,775,808至I」9,223,372,036,854,775,807,在变
量初始化的时候,long类型的默认值为0L或0I,也可直接写为0。
byte:byte同样属于整数类型,在存储的时候,用1个字节来存储,范围为-128
到127,在变量初始化的时候,byte类型的默认值也为0。
float:float属于实数类型,在存储的时候,用4个字节来存储,范围为32
位IEEEE754单精度范围,在变量初始化的时候,float的默认值为0.Of或0.0F,
在初始化的时候可以写0.0。
double:double同样属于实数类型,在存储的时候,用8个字节来存储,范
围为64位IEEE754双精度范围,在变量初始化的时候,double的默认值为0.0。
char:char属于字符类型,在存储的时候用2个字节来存储,因为Java本身
的字符集不是用ASCII码来进行存储,是使用的16位Lhicode字符集,它的字符范
围即是Unicode的字符范围,在变量初始化的时候,char类型的默认值为
'uOOOO'o
boolean:boolean属于布尔类型,在存储的时候不使用字节,仅仅使用1位
来存储,范围仅仅为0和1,其字面量为true和false,而boolean变量在初始化
的时候变量的默认值为false。
Java中基本数据类型的转型:
Java中的简单数据类型的转换分为两种:自动转换和强制转换
1)自动转换:
当一个较“小”的数据和较“大”的数据一起运算的时候,系统将自动将较“小”
的数据转换为较“大”的数据,再进行运算。
在方法调用过程,如果实际参数较“小”,而函数的形参比较“大”的时候,除
第17页共125页
非有匹配的方法,否则会直接使用较“大”的形参函数进行调用。
2)强制转换:
将“大”数据转换为“小”数据时,可以使用强制类型转换,在强制类型转换的
时候必须使用下边这种语句:
inta=(int)3.14;
只是在上边这种类型转换的时候,有可能会出现精度损失。
关于类型的自动提升,遵循下边的规则:
所有的byte、short,char类型的值将提升为int类型;
如果有一个操作数是long类型,计算结果是long类型;
如果有一个操作数是float类型,计算结果是float类型;
如果有一个操作数是double类型,计算结果是double类型;
自动类型转换图如下:
byte->short(char)->int->long->float->double
如果是强制转换的时候,就将上边的图反过来。
3.3第三节变量与常量
变量
变量是程序中数据的临时存放场所。在代码中可以只使用一个变量,也可以使用
多个变量,变量中可以存放单词、数值、日期以及属性。声明并赋值变量的方法如下:
intx=
常量
在一个变化过程中,此量的数值始终是不变的,我们称它为常量。它们可以是不
随时间变化的某些量和信息,也可以是表示某一数值的字符或字符串,常被用来标识、
测量和比较。在java中我们用final关键字来定义常量如:finaldoublePI=
3.1415;
第18页共125页
例题:使用变量存储以下信息,并打印输出
品牌(branQ:爱国者F928
重量(weight):124
电池类型(type):内置锂电池
价格(pricq):499
publicclassMP3{
publicstaticvoidmain(String[]args){
Stringbrand="爱国者F928";//品牌
doubleweight=12.4;//币;量
Stringtype=”内置锂电池”;//型号
intprice=499;//价格
System.out.printIn("MP3:");
System.out.printIn(n\t•'+brand);
System,out.printIn("fiM:\t'*+weight);
System,out.printIn("\t"+type);
System,out.printIn("价格:\tn+price);
)
)
3.4第四节运算符与表达式
3.41赋值
赋值
将某一数值赋给某个变量的过程,称为赋值。在计算机程序设计语言中,由一定
的赋值语句去实现变量的赋值。
例如:
inti;
i=4;〃把4赋值给变量1
3.4运算符
运算符
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:
2B,其操作数是2和3,而运算符则是‘+'。
赋值运算符
第19页共125页
赋值运算符用的是美算符。它的意思是“算出书•右边的值,然后拷贝到胄的
左边”。值可以使任何常量、变量或者是能产生值的表达式。例如,你可以将常量赋
值给变量:a工但是你不能将值赋给常量(上到)。
数学运算符
在绝大数编程语言里边,基本的数学运算符都是相同的:加(夕、减(7、乘(*)、
除(/、取模(沱会返回整数相除后余数)。整数相除会把运算结果的小数点后边全
部截掉,而不是四舍五入。Java也有可以同时进行运算与赋值的简写符号。它用运
算符加一个等号来表示,在java中,这种表示方法能一致地用于所有运算符(只要
是有意义就行了)。比如,你要为变量a加4,然后再赋给a,就写al
作是变量在参与其他运算之前先将自己加1后,再用新的值参与其他运算,而
a4H是先用原来的值参与其他运算后,再将自己加lo如:是a先自增,a自己
变了后才赋值给b,而先赋值给b,a后自增。
关系运算符
关系运算符会产生boolean类型的结果。它们会判断操作数的值的大小关系。如
果这种关系为真,则关系表达式返回true,如果这个关系为假,则返回false,关系
运算符有小于Q、大于⑶、小于等于④、大于等于2、相等㈡及不等(今。
所有的内置数据类型都能比较相等或不等,但是对于boolean类型,除了相等和不等
之外,其它的比较式没有意义的。
例题:
1、根据天数(40计算周数和剩余的天数
publicclassCalcDays{
publicstaticvoidmain(String[]args){
intdays=46;//天数
intweek=days/7;//星期
intleftDay=days%7;//剩余的天数
System.out.printIn(days+“天等于”+week+“周零"+leftDay+“天”);
)
)
2,已知圆的半径radium1.5,求其面积
publicclassArea(
publicstaticvoidmain(String[]args){
第20页共125页
doublepi=3.14159;//圆周率
doubleradius=1.5;//半径
doub1earea=pi*radius*radius;//计算圆面积
System.out.printin("圆的半径是:"+radius);
System.out:.printin("圆的面积是:”+area);
3.4达式
表达式
将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来
的、有意义的式子称为表达式。
3.5第五节流程控制
3.5.1流程控制结构
if-else
也许是最基本的程序流程控制语句。else是可选的,所以if实际上有两种用法:
if(Boolean-expression)
Statement
或者:
if(Boolean-expression)
statement
else
statment
第21页共125页
条件判断必须要产生一个boolean结果。“"statement”即可以使以分号标识结
束的简单语句,也可以是花括号括起来的复合语句。只要用到“statement”,就表示
它既可以是简单语句,也可以是复合语句。
If语句例题:
1、张三买了一筐鸡蛋,如果坏蛋少于5个,他就吃掉,否则他就去退货
publicclassEgg{
publicstaticvoidmain(String[]args){
intbadEgg=10;//坏蛋数目
if(badEgg<5){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年无障碍环境建设法楼栋改造相关规定在适老化中应用
- 2026年养老社区服务质量评价指标体系构建指南
- 2026年区块链技术在碳排放数据存证与溯源中的应用
- 2026年现房项目融资主办银行制与购房者权益保障
- 湖北省黄冈市季黄梅县2026年初三下学期联考生物试题含解析
- 2026年湖北省武汉市江岸区重点名校初三一模考试生物试题含解析
- 2026年保险资金长期投资改革试点优先投资科技型企业操作指南
- 嘉兴市重点中学2026届初三下学期第一次质检生物试题含解析
- 2026届山东省聊城市临清市初三下学期期中测试化学试题含解析
- 湖南广益中学2026年初三下学期二轮质量检测试题化学试题含解析
- 小学二年级下册《人与社会》教案
- 第一单元 一方水土一方情跟着课文探民风 整体公开课一等奖创新教学设计
- 租赁合同(2025年写字楼转租)
- 2025-2030中国对叔丁基苯甲酸市场竞争格局展望与营销创新发展趋势研究报告
- 设计公司钉钉考勤制度
- 2026年春季人教版小学数学三年级下册教学计划(含进度表)
- 群众工作方面存在问题及整改措施
- 保密方案(档案数字化)
- 玻璃体视网膜术后护理
- 结核病的知识讲座
- 园林植物主要食叶害虫及防治
评论
0/150
提交评论