您的位置:网站首页 > Java教程 > 正文

Java大学实用教程(完整版)

类别:Java教程 日期:2020-7-28 2:47:30 人气: 来源:

  Java本章导读 3.java的特点 4.java与C/C++之关系 7.SDK1.6编译器的新1.1 Java语言的诞生 Java诞生于1995年,是Sun公司组织开发的一编程语 言,主要贡献者是James Gosling。1990年Sun公司成 立了由James Gosling领导的开发小组,开始致力于开 发一种可移植的、跨平台的语言,该语言能生成正确 运行于各种操作系统、各种CPU芯片上的代码。他们的 钻研和努力促成了Java语言的诞生。Java的发展得利 于Internet和Web的出现,Internet上有各种不同的计 算机,它们可能使用完全不同的操作系统和CPU芯片, 但仍希望运行相同的程序,Java的出现标志着真正的 分布式系统的到来。 返回 1.2 学习Java的必要性 Java不仅可以用来开发大型的桌面应用程序,而且特 别适合于Internet的应用开发。目前,Java语言不仅是 一门正在被广泛使用的编程语言,而且已成为软件设 计开发者应当掌握的一门基础语言。Java语言是面向 对象编程,并涉及到网络、多线程等重要的基础知识, 而且很多新的技术领域都涉及到了Java语言,因此, 学习和掌握Java已成为共识,国内外许多大学已将 Java语言列入了本科教学计划,IT行业对Java人才的 需求正在不断的增长,一些软件公司对其开发人员周 期地进行Java的基础培训工作。在IT行业发达的 洲,有将近60%的软件开发人员在使用Java完成他们 的工作,Evans Data公司在2002年做的一项调查中发 现,在洲,Java的使用率已经接近 返回1.3 java 的特点 1.平台无关性 Java语言和其他语言相比,最大的优势就是能够在所 有的计算机上运行,这也是Java风靡全球的主要原因。 2.面向对象 面向对象编程是一种先进的编程思想,更加容易解决 复杂的问题。 3.多线程 Java的特点之一就是内置对多线程的支持。多线程允 许同时完成多个任务。 4.安全 5.动态 返回 1.4 java 与C/C++之关系 如果你学习过C++语言,你会感觉Java很眼熟,因为 Java中许多基本语句的语法和C++一样,像常用的循 环语句、控制语句等和C++几乎一样,但不要为 Java是C++的增强版,Java和C++是两种完全不同的 语言,他们各有各的优势,将会长期并存下去,Java 语言和C++语言已成为软件开发者应当掌握的语言。 返回 1.5 Java运行平台 三种平台简介目前Java运行平台主要分为下列3个版本: (JavaSE(曾称作J2SE)——Java标准版或Java标准平台。Java SE提供了标准的JDK开发平台,利用该平台可以开发Java桌面应 用程序和低端的服务器应用程序,也可以开发Java Applet。 JavaEE(曾称作J2EE)——Java企业版或Java企业平台,可以构 建企业级的服务应用。Java EE平台包含了Java SE平台,并增加 了附加类库,以便支持目录管理、交易管理和企业级消息处理等 功能。 JavaME(曾称作J2ME)——Java微型版或Java小型平台。Java ME是一种很小的Java运行,用于嵌入式的消费产品中,如移 动电话、掌上电脑或其他无线设备等 安装JavaSE平台 学习Java必须从Java SE开始,因此,本书 基于Java SE来学习Java。目前Sun公司已发布 了JDK的1.6版本。 如果安装JDK选择安装到E:\Jdk1.6目录 下,则会生成如图1.1的目录结构。 图1.1 JDK目录结构 3)系统Path 值的设置 JDK平台提供的Java编译器(javac.exe)和Java解 释器(java.exe)位于Java安装目录的bin文件夹中,为 了能在任何目录中使用编译器和解释器,应在系统特 性中设置Path。对于Windows2000、Windows2003、 Windows XP,用鼠标右键点击“我的电脑”,弹出菜 单,然后选择“属性”,弹出“系统属性”对话框, 再单击该对话框中的“高级”选项,然后点击按钮 “变量”,添加如下的系统变量(如图1.2所 图1.2设置变量path 4)系统ClassPath 值的设置 编辑系统变量ClassPath的值。对于Windows 2000、Windows 2003、Windows XP,用鼠标右 键点击“我的电脑”,弹出菜单,然后选择属性,弹 出“系统特性”对话框,再单击该对话框中的高级选 项,然后点击按钮“变量”,添加如下的系统环 境变量(如图1.3所示): 如果曾经设置过变量: ClassPath,可点击该变量进行编辑操作,将需要的值 加入即可。 对于Win9x,用记事本编辑Autoexec.bat文件, setclasspth=E:\jdk1.6\jre\lib\rt.jar;.; 也可以在命令行窗口,如MS-DOS窗口键入命令: set classpth=E:\jdk1.6\jre\lib\rt.jar;.; 图1.3 设置变量classpath 5)仅仅安装JRE 如果你只想运行别人的Java程序可以只安 装Java运行JRE,JRE由Java虚拟机、Java 的核心类以及一些支持文件组成。可以登录 Sun的网站免费下载Java的JRE。 返回 1.6 Java程序开发 Java应用程序的开发开发一个Java应用程序的步骤: 编写源文件 编译源文件生成字节码 加载运行字节码 FileName.java FileName.class 源文件的组成使用一个文字编辑器,如Edit或记事 本,来编写源文件。不可使用Word编辑 器,因它含有不可见字符。 Java是面向 对象编程,Java应用程序的源文件是由 若干个书写形式互相的类组成。见 例子1 应用程序的主类一个Java应用程序必须有一个类含有public static void main(String args[ ])方法,称这个 类是应用程序的主类。args[]是main方法的一个 参数,是一个字符串类型的数组(注意String 的第一个字母是大写的),以后会学习怎样使 用这个参数。 源文件的命名规则源文件有几个类? 源文件名= 该类类名 一个 两个以上 有public类? 没有 源文件名= 类名之一 有几个public类?一个 两个以上 源文件名= 该Public类名 这是不允许的! 良好的编程习惯在编写程序时,一行最好只写一 条语句,类体的以方法的大括号最好也 独占一行,并有明显的缩进。本书在编 写代码时,尽量遵守良好的编程习惯。 良好的编程习惯对一个优秀的程序 员是至关重要的! 2)编译Java源程序 当创建了Hello.java这个源文件后,就要使 用编译器(javac.exe)对其进行编译: 需要打开MS-DOS命令行窗口,进入C盘, 然后进入到1000 目录中,如图1.4所示。 3)运行Java程序 Java应用程序必须通过Java虚拟机中的 Java解释器(java.exe)来解释执行其字节码 文件。Java应用程序总是从主类的main方法开 始执行。因此,必须如下运行Java应用程序: C:\1000\

  java Hello 运行效果如图1.5所示。 当Java应用程序中有多个类时,java 命令执行 的类名必须是主类的名字(没有扩展名)。 (1)编译源文件c:\1000\

  javac Tom.java 如果编译成功,你的目录1000 下就会有 Tom.class和Example.class这两个字节码文件了。 (2)执行 c:\1000\

  java Example java 命令后的名字必须是主类的名字,运行效 果如图1.6。 返回 JavaApplet程序的开发 开发一个Java Applet程序需经过三个步骤:编 写源文件、编译源文件生成字节码、通过浏览 器加载运行字节码。 (1)编写源文件 一个Java Applet源文件也是由若干个类组成的, 一个Java Applet源文件不再需要main方法,但 必须有且只有一个类扩展了Applet类,即它是 Applet类的子类(Applet类是系统提供的类), 我们把这个类称作Java Applet源文件的主类。 下面的例子2是一个简单的JavaApplet源文件。 2)编译 c:\1000\

  javac Boy.java 编译成功后,文件夹C:\1000下会生成一个 Boy.class文件。如果源文件有多个类,将生成 多个class文件,都和源文件在同一文件夹里。 如果你对源文件进行了修改,那么你必须重新 编译,再生成新的字节码文件。 3)运行 Java Applet由浏览器来运行,因此我们必须编写一个 超文本文件(含有applet标记的web页)通知浏览器来 运行这个Java Applet。 下面是一个最简单的一个html文件,通知浏览器运行 Java Applet。我们使用记事本编辑如下:

  现在可以使用浏览器打开文件Boy.html运行JavaApplet, 效果如图1.7所示。 返回 如果你的浏览器不能运行你的Applet (如没有安装浏览器,或浏览器没有内 嵌的java实时运行等),你也可以使 用J2SE提供的appletviewer(小程序查看 器)来运行你的Applet: C:\temp

  appletviewerBoy.html 1.7 JDK1.6编译器的新 和以前版本的编译器有了一个很大的不同, JDK1.6的编译器javac.exe不再向下兼容,也就是说, 如果在编译源文件时没有特别约定的线的 编译器生成的字节码只能在安装了JDK1.6或JRE1.6的 Java平台中运行。 可用“-source‖参数约定字节码适合的Java平台。 javac–source 1.2

  返回 本章导读 数组2.1 标识符和关键字 1.标识符 用来标识类名、变量名、方法名、类型名、数组名 、文件名的有效字符序列称为标识符。简单地说,标识 符就是一个名字。Java语言标识符由字母、下划线 、美元符号和数字组成,并且第一个字符不能是数字。 标识符中的字母是区分大小写的,Beijing 和beijing 是不同的标识符。 .关键字关键字就是Java语言中已经被赋予特定意义的一些 单词,它们在程序中有着不同的用途,不可以把关键字 作为标识符来用。 Java语言中的关键字 abstract boolean break byte case class continue do double else extends lse find finally float implementsimport instanceof int intece long native null package private public return short Static super switch synchronized throwtrue try void while new 在大多数的JAVA IDE中,关键字用蓝色字体显示. 返回 2.2 基本数据类型 基本数据类型也称作简单数据类型。Java语言有8 种简单数据类型,分别是: boolean、byte 、short、int、long、 float、double、char。 这8种数据类型习惯上可分为4大类型: 浮点类型:float、double2.2 基本数据类型 1.逻辑类型 常量:true ,lse。 变量的定义: 使用关键字boolean来定义逻辑变量,定义时也可 以赋给初值。 booleanx,ok=true,关闭=lse; 2.整数类型 常量:123,6000(十进制),077(八进制), 0x3ABC(十六进制)。 整型变量的定义分为4种 2.2 基本数据类型 (1)int 使用关键字int来定义int型整型变量,定义时也 可以赋给初值,例如:int x,平均=9898;对于int型 变量,内存分配给4个字节(byte)。int型变量的取值 范围是: -2 31 31-1。 (2)byte 使用关键字byte来定义byte 型整型变量。对于 byte型变量,内存分配给1个字节,占8位,byte型变量 的取值范围是-2 -1。2.2 基本数据类型 (3)short 使用关键字short来定义short型整型变量。对于short型变量,内存分配给2个字节,short型变量的取 值范围是-2 15 15-1。 (4)long 使用关键字long来定义long型整型变量,对于long型变量,内存分配给8个字节,long型变量的取值范围 -263 63-1。 2.2 基本数据类型 3.字符类型 常量: Unicode表中的字符就是一个字符常 量,例如‘A’,‘‘?’,‘9’,‘好’,‘ き’,等。Java还使用转意字符常量,如: :换行‘\b’:退格 \”’:双引号变量的定义: 使用关键字char来定义字符变量,例如: char ‘A’,漂亮=‘假’,jiafei;2.2 基本数据类型 char型变量,内存分配给2个字节,占16位,最高位 不是符号位,没有负数的char。char型变量的取值范围是 0~65536。要观察一个字符在unicode表中的顺序,必 须使用int类型显示转换,不可以使用short型转换,因为 char的最高位不是符号位。同样,要得到一个0~65536之 间的数所代表的Unicode表中相应上的字符也必须使 用char型显示转换。 下面的例子1中,分别用显示转换来显示一些字符在 Unicode表中的,以及某些上的字符。 2.2 基本数据类型 4.浮点类型 浮点型分两种 (1)float 常量:453.5439f,21379.987F,2e40f(2乘10的40次方,科学计数法) 变量的定义:使用关键字float来定义float型变量。 对于float型变量,内存分配给4个字节,其取值范围是 10 -38 ~10 38 和-10 38 ~-10 -38 2.2基本数据类型 (2)double 常量:21389.5439d(d可以省略),23189908.987, 123.0,6e-140(6乘10的-140次方,科学计数法)。 变量的定义: 使用关键字double来定义double型变量。double型 变量,内存分配给8个字节,double型变量的取值范围 大约是10 -308 ~10 308 和-10 308 ~-10 -308 返回2.3 基本数据类型的转换 基本数据类型的转换就是把一种基本数据类型变量转 变成另一种基本类型变量。下列基本类型会涉及数据转换 ,不包括逻辑类型和字符类型。我们将这些类型按精度从 “低”到“高”排列了顺序: byte short int long float double 当把级别低的变量的值赋给级别高的变量时,系统自 动完成数据类型的转换,如int型转换成long型。当把级 别高的变量的值赋给级别低的变量时,必须使用显示类型 转换运算。显示转换的格式: (类型名)要转换的值; 2.3 基本数据类型的转换 例如 int x=(int)34.89; 输出x将是34,强制转换运 算可能导致精度的损失。当把 一个整数赋值给一个byte、 short、int或long型变量时, 不可以超出这些变量的取值范 围,否则必须进行类型转换运 下面我们看一个例子:程序运行结果见右图: 返回 2.4 数据的输入与输出 由于C语言出现的比较早,那个时候还没有图形用户 界面的概念(Graphics User Intece),因此,C语 言提供了许多用来输入、输出数据的函数,例如printf 、scanf等。 Java不象C,提供在命令行进行数据输入、 输出的功能不多。 关于输入、输出我们将在第九章详细 介绍,现在只需知道它的作用是在命令行窗口(例如, MS-DOS窗口)输出数据即可。Sun公司新推出的JDK1.5又 新增了一些在命令行进行数据输入、输出的功能。 2.4 数据的输入与输出 1.数据输出: System.out.printf System.out.printf的功能完全类似C语言中的 printf函数。pringf的一般格式: printf(格式控制部分,表达式1,表达式2,„表达式 例如:System.out.printf(“点P的坐标为(%d,%d)”,x,y); 输出: 点P的坐标为(200,300) 下面我们看一个例子,来进一步了解System.out.printf数据输出。 Printf()的格式控制部分 格式控制部分由格式控制符和普通字符组成。格式控制符用来输出表达式的值,普通字符原样输出。 %n——表示回车换行。2.4 数据的输入与输出 2.数据的输入:Scanner Scanner是SDK1.5新增的一个类,可以使用该类创建一 个对象:; 然后reader对象调用下列方法(函数),读取用户在命 令行输入的各种数据类型, nextByte(), nextDouble(), nextFloat(), nextInt(), nextLine(),nextLong(), nextShort()。 2.4 数据的输入与输出 上述方法执行时都会堵塞,等待你在命令行输入数据 回车确认。 下面让我们来看一个例子,来更好的了解Scanner语句 ,在这个例子中,用户在键盘依次输入若干个数字,每输 入一个数字都需要按回车键确认,最后在键盘输入一个非 数字字符结束整个的输入操作过程。程序将计算出这些数 的和及平均值。 返回 2.5 数组 数组是相同类型的数据按顺序组成的一种复合数据类 型。通过数组名加数组下标来使用数组中的数据。下标从 0开始。 1.声明数组 声明数组包括数组的名字、数组包含的元素的数据类 声明一维数组有下列两种格式:数组元素类型 数组名字[]; 数组元素类型[] 数组名字; 2.5 数组 声明二维数组有下列两种格式: 数组元素类型 数组名字[][]; 数组元素类型[][] 数组名字; 2.创建数组 声明数组仅仅是给出了数组名和元素的数据类型,要想 使用数组还必须为它分配内存空间,即创建数组。在为数组 分配内存空间时必须指明数组的长度。格式如下: 数组名字 new数组元素的类型[数组元素的个数]; 例如: boy newfloat[4]; 2.5 数组 0x785BA Boy[0] Boy[1] boy[2] boy[3] 数组的内存模式 36.50 12.87 68.78 96.67 2.5 数组 3.数组元素的使用 一维数组通过下标符访问自己的元素,如boy[0], boy[1]等。需要注意的是下标从0开始,因此,数组若 是7个元素,下标到6为止,如果你将来使用下标超过6 将会发生异常(数组下标越界)。 二维数组也通过下标符访问自己的元素,如 。下标也是从0开始。4.数组的初始化 创建数组后,系统会给每个数组元素一个默 认的值,如,float型是0.0。 我们在声明数组时同时也还可以给数组的元 素一个初始值,如: float boy[]={ 21.3f,23.89f,2.0f,23f,778.98f}; 数组属于引用型变量,因此两个相同类型的数组如 果具有相同的引用,它们就有完全相同的元素。例如, 对于 int a={1,2,3},b={4,5};数组变量a和b分别存放着不同的引用。但是,如果 使用了赋值语句:a=b;那么,a中存放的引用就和b的 相同,这时系统将最初分配给数组a的元素,使得 a的元素和b的元素相同,即a[0],a[1]就是b[0],b[1], 而最初分配给数组a的三个元素已不复存在 下面让我们结合这个例子来看怎样使用数组。返回 0xB96710xB8321 0xB9671 返回第3章运算符、表达式与语句 本章导读 instanceof运算符 一般表达式10. 语句概述 11. 分支语句 12. 循环语句 13. 跳转语句 3.1 (1)加减运算符 加减运算的结合性是从左到右。加减运算的操作元是 整型或浮点型数据,加减运算符的优先级是4级。 (2)乘、除和求余运算符 乘、除和求余运算的运算符号为*、/、%,都是双目 运算符。*、/、%运算符的结合性是从左到右,例如: 2*3/8,先计算2*3,然后再将得到的结果除以8。乘、除 和求余运算的操作元是整型或浮点型数据。*、/、%运 算符的优先级是3级。 (3)自增、自减运算符 自增、自减运算的运算符号为:++、--,都是单目运 算符,运算符的优先级是2级。运算符可以放在操作元之 前,也可以放在操作元之后,但操作元必须是一个整型或 浮点型变量(不能是常量或表达式)。运算符的作用是使 ++x,--x表示在使用x之前,先使x的值加(减)1。x++,x--表示在使用x之后,使x的值加(减)1。 粗略地看,++x和x++的作用相当于x=x+1。但++x和 x++的不同之处在于,++x是先执行x=x+1再使用x的值,而 x++是先使用x的值再执行x=x+1。如果 对于y=x++;y的值为5,然后x的值变为6。(4)算术表达式 用算术符号和操作元连接起来的符合Java语法规则的 式子,称为算术表达式。如 x+2*y-30+3*(y+5) -12+n+(--n)。 (5)算术混合运算的精度 精度从“低”到“高”排列的顺序是: byte short int long float double Java将按运算符两边的操作元的最高精度保留结果的精度 ,例如:5/2的结果是2,要想得到2.5,必须写成5.0/2或 5.0f/2。 char型数据和整型数据运算结果的精度是int。例如: byte k=18; 那么 的结果是int型,因此下列写法是不正确的,char ch=’H’+k; 应当写成: char ch=(char)(’H’+k); 返回 3.2 关系运算符用来比较两个值的关系,关系运算符的运 算结果是boolean型数据,当运算符对应的关系成立时, 运算结果是true,否则是lse。 (1)大小关系运算符 大小关系运算的符号分别是:

  20-17的结果为true,因为算术运算符的级别高于关系 运算符,10

  20-17相当于10

  (20-17)。 (2)等与不等关系 等与不等关系运算的符号分别是:“==”、 “!=”,都是双目运算符。运算符的级别是7级。 “==”和“!=”都是由2个字符组成的一个完整的符号 ,书写时不要含有空格。注意不要将后面讲述的赋值 运算符“=”与等号运算符“==”混淆。 (3)关系表达式 结果为数值型的变量或表达式可以通过关系运算 符形成关系表达式。例如,24

  18,(x+y+z)

  30+x等。 返回 3.3 逻辑运算用来实现boolean型数据的逻辑“与”、“或”和 “非”运算,运算结果是boolean型数据。 (1)逻辑“与”和逻辑“或” 逻辑“与”和逻辑“或”运算的符号是:&&、,是双目运 算符,操作元是boolean型的变量或求值结果是boolean型数 据的表达式。“&&”的运算是:当2个操作元的值都是 true时,运算结果是true,否则是lse。“”的运算 是:当2个操作元的值都是flase时,运算结果是lse,否则 是true。“&&”和“”的级别分别是11和12级,结合性是 左到右。例如,1

  8&&9

  2的结果为lse,1

  86

  2的结果为 true。由于关系运算符的级别高于&&和的级别,所以, 1

  8&&9

  2相当于(1

  8)&&(9

  2)。 逻辑运算符“&&”和“”也称做短逻辑运算符。进行 op1&&op2运算时,如果op1的值是lse,“&&”运算符在运 时不再去计算op2的值,直接就得出op1&&op2的结果是lse。当op1的值是true时,“”运算符在运算时不再去 计算op2的值,直接就得出op1op2的结果是true。 (2)逻辑“非” 逻辑“非”运算的符号是:!,是单目运算符,操作元在左 面。当操作元的值是TURE时,运算结果是FALSE;反之为TURE 。“!”的运算级别是2级,结合性从右到左。例如,!!X 相当于!(!X)。 (3)逻辑表达式 结果为boolean型的变量或表达式可以通过逻辑运算符形成 逻辑表达式。例如,24

  ,是双目运算符。假设a是 一个被移位的整型数据,n是位移量。 a

  n运算的结果是通过将a的所有位都右移n位,每右 移一个位,右边的低阶位被移出丢弃,并用0或1填充 左边的高位,a是正数用0填充,负数时用1填充。因此 ,a每右移一次,如果该数的每一计算有效位都没有从 低位移出时,就相当于将a除以2并了余数。正数 不断右移位的最后结果一定是0,而负数不断右移位的 最后结果是-1。 对于byte或short型数据,a

  n的运算结果是int 型精度。 在进行a

  n运算时,如果a是byte、short或int型 数据,系统总是先计算出n%32的结果m,然后进行a

  m 运算,例如,a

  33的计算结果与a

  1相同。 对于long型数据,系统总是先计算出n%64的结果m ,然后进行a

  m运算。 在下面的例子1中,用户输入移位运算的两个操作元 ,程序给出右移和左移后的结果。 返回 3.6 (1)“按位与”运算符 “&”是双目运算符,对两个整型数据a、b按位进行运算, 运算结果是一个整型数据c。运算是:如果a、b两个数据 对应位都是1,则c的该位是1,否则是0。如果b的精度高于a ,那么结果c的精度和b相同。 (2)“按位或”运算符 “”是双目运算符。对两个整型数据a、b按位进行运算, 运算结果是一个整型数据c。运算是:如果a、b两个数据 对应位都是0,则c的该位是0,否则是1。如果b的精度高于a ,那么结果c的精度和b相同。 (3)“按位非”运算符 “~”是单目运算符。对一个整型数据a按位进行运算,运算 结果是一个整型数据c。运算是:如果a对应位是0,则c 的该位是1,否则是0。 (4)“按位异或”运算符 “^”是双目运算符。对两个整型数据a、b按位进行运 算,运算结果是一个整型数据c。运算是:如果a、b 两个数据对应位相同,则c的该位是0,否则是1。如果b 的精度高于a,那么结果c的精度和b相同。 位运算符在操作逻辑型数据时,与逻辑运算符&&、、 !不同的是:位运算要计算完a和b之后再给出运算的结 在下面的例子2中,利用“异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。运行结果见图 3-2。 图3-2 返回 3.7 条件运算符是一个3目运算符,它的符号是:“? :”,需要连接3个操作元,用法如下: op1?op2:op3 运算是:当op1的值是true时,op1?op2:op3 运算的结果是op2的值;当op1的值是lse时, op1?op2:op3运算的结果是op3的值。 例如,12季建业 周冰

  

关键词:java实用教程
0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

郑重声明:本站资源来源网络 如果侵犯了你的利益请联系站长删除

CopyRight 2010-2012 技术支持 FXT All Rights Reserved