Jave培训.docx

上传人:b****3 文档编号:3884256 上传时间:2022-11-26 格式:DOCX 页数:59 大小:294.62KB
下载 相关 举报
Jave培训.docx_第1页
第1页 / 共59页
Jave培训.docx_第2页
第2页 / 共59页
Jave培训.docx_第3页
第3页 / 共59页
Jave培训.docx_第4页
第4页 / 共59页
Jave培训.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

Jave培训.docx

《Jave培训.docx》由会员分享,可在线阅读,更多相关《Jave培训.docx(59页珍藏版)》请在冰豆网上搜索。

Jave培训.docx

Jave培训

Jave培训内容

第一讲 Java语言概述2

1Java语言概述2

1.1java语言产生2

1.2java的工作原理2

1.3一切都是对象3

1.4java程序规范3

2Java语言基础知识4

2.1基本数据类型4

2.2简单数据类型中各类型见的优先关系和相互转换6

2.3运算符和表达式7

2.4控制语句9

2.5数组11

2.6字符串处理14

3Java编程相关知识17

3.1JavaBean17

3.2EJB18

3.3例外19

3.4Servlet22

3.5JSP24

3.6J2EE27

第二讲 java高级编程思想31

1.面向对象基础31

2.1面向对象概念31

2.2面向对象基本特征31

2Java语言面向对象特征32

2.1类32

2.2对象36

2.3面向对象特征37

2.4抽象类和接口43

3CLASS对象的使用44

3.1怎样获取CLASS对象的句柄44

3.2怎样处理未知对象44

5对象传递与克隆45

5.1对象传递45

5.2克隆对象46

6多线程47

6.1创建多线程47

6.2资源共享48

7常用设计范式50

7.1工厂模式50

7.2工厂方法模式51

7.3建造模式51

7.4单例模式52

7.6桥接模式53

7.7门面模式54

7.8命令模式55

7.9模板方法模式56

第一讲 Java语言概述

1Java语言概述

1.1java语言产生

1995年,美国Sun公司正式向IT业界推出了java语言,该语言具有安全、跨平台、面向对象、简单、适用于网络等显著特点,java语言已经成为最流行的网络编程语言,截止到2001年中,全世界大约有310万java程序员,许多大学纷纷开设java课程,java正逐步成为世界上程序员最多的编程语言。

在经历了以大型机为代表的集中计算模式和以PC机为代表的分散计算模式之后,互联网的出现使得计算模式进入了网络计算时代,网络计算的一个特点是代码可以通过网络在各种计算机上进行迁移,这就迫切需要一种跨平台的编程语言,使得用它编写的程序能够在网络中的各种计算机上能够正常运行,java就是在这种需求下产生的。

1.2java的工作原理

Java虚拟机是软件模拟的计算机,可以在任何处理器上(无论是在计算机中还是在其它电子设备中)安全并且兼容的执行保存在.class文件中的字节码。

java虚拟机的"机器码"保存在.class文件中,有时也可以称之为字节码文件。

java程序的跨平台主要是指字节码文件可以在任何具有java虚拟机的计算机或者电子设备上运行,java虚拟机中的java解释器负责将字节码文件解释成为特定的机器码进行运行。

java源程序需要通过编译器编译成为.class文件(字节码文件)。

1.3一切都是对象

面向对象的第一个原则是把数据和对该数据的操作都封装在一个类中,在程序设计时要考虑多个对象及其相互间的关系。

有些功能并不一定由一个程序段完全实现,可以让其它对象来实现。

而面向对象的一个好处是实现代码的重复使用,例如,如果我们在某个公用类中定义求最大值方法max(),其他需要求最大值的地方,只需要通过类Max的对象就可以达到目的。

但是如果没有将求最大值的该部分代码提炼出来,则无法复用。

⏹所有的东西都是对象

可以将对象想象成为一种新型变量,它保存着数据,而且还可以对自身数据进行操作。

⏹程序是一大堆对象的组合

通过消息传递,各对象知道自己应该做些什么。

如果需要让对象做些事情,则须向该对象"发送一条消息"。

具体来说,可以将消息想象成为一个调用请求,它调用的是从属于目标对象的一个方法。

⏹每个对象都有自己的存储空间

可容纳其它对象,或者说通过封装现有的对象,可以产生新型对象。

因此,尽管对象的概念非常简单,但是经过封装以后却可以在程序中达到任意高的复杂程度。

⏹每个对象都属于某个类

根据语法,每个对象都是某个"类"的一个"实例"。

一个类的最重要的的特征就是"能将什么消息发给它?

",也就是类本身有哪些操作。

说明:

类是一个概念性的东西,是一个事物的轮廓,具体化后,我们就称它为一个对象,也可称为实例。

1.4java程序规范

一个完整的java源程序应该包括下列部分:

package语句:

该部分至多只有一句,必须放在源程序的第一句,由于java编译器为每个类生成一个字节码文件,且文件名与类名相同,因此同名的类有可能发生冲突。

为了解决这一问题,java提供包来管理类名空间,包实际提供了一种命名机制和可见性限制机制。

而在java的系统类库中,把功能相似的类放到一个包(package)中,例如所有的sql操作的类都放在java.sql这个包中,与网络功能有关的类都放到这个包中。

import语句:

该部分可以有若干import语句或者没有,必须放在所有的类定义之前,如果在源程序中用到了除java.lang这个包以外的类,无论是系统的类还是自己定义的包中的类,都必须用import语句标识,以通知编译器在编译时找到相应的类文件。

publicclassDefinition:

公共类定义部分,至多只有一个公共类的定义,java语言规定该java源程序的文件名必须与该公共类名完全一致。

例如一个java源程序可以是如下结构,该源程序命名为HelloWorld.java:

package.util;//package

/**

*

Title:

*

Description:

公用方法

*

Copyright:

Copyright(c)2007

*

Company:

长天科技集团

*@authorxiongjj

*@version1.0

*/

importjava.*;//import

publicclassHelloWorld{//publicclassDefinition

publicHelloWorld(){

}

publicstaticvoidmain(String[]args){

System.out.print("Helloworld!

");

}

}

2Java语言基础知识

2.1基本数据类型

⏹标识符

程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。

Java语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。

例如,identifier,userName,User_Name,_sys_val,$change为合法的标识符,而2mailroom#,class为非法的标识符。

⏹保留字

具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reservedword),也称为关键字,下面列出了java语言中的所有保留字:

boolean,catch,case,class等

  注意:

java语言中的保留字均用小写字母表示。

⏹常量和变量

常量:

用保留字final来实现

   如:

finalintNUM=100;将变量或方法声明为final,可以保证它们在使用中不被改变

 变量:

是java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。

其定义格式如下:

如:

intcount;charc='a';

变量的作用域指明访问该变量的区域,声明一个变量的同时也就指明了变量的作用域。

按作用域来分,变量可以有下面几种:

局部变量、类变量、方法参数。

在一个确定的域中,变量名应该是唯一的。

局部变量在方法或方法的一个块代码中声明,它的作用域为它所在的代码块(整个方法或方法中的某块代码)。

类变量在类中声明,而不是在类的某个方法中声明,它的作用域是整个类。

方法参数传递给方法,它的作用域就是这个方法

⏹简单数据类型

1.布尔类型--boolean

布尔型数据只有两个值true和false,且它们不对应于任何整数值。

布尔型变量的定义如:

   booleanb=true;

2.字符类型--char

  字符常量:

  字符常量是用单引号括起来的一个字符,如'a','A';

  字符型变量:

  类型为char,它在机器中占16位,其范围为0~65535。

字符型变量的定义如:

   charc='a';/*指定变量c为char型,且赋初值为'a'*/

3.整型数据

  整型常量:

  ◇十进制整数

   如123,-456,0

  ◇八进制整数

   以0开头,如0123表示十进制数83,-011表示十进制数-9。

  ◇十六进制整数

   以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。

  整型变量:

数据类型

所占位数

数的范围

byte

8

-27~27-1

bhort

16

-215~215-1

int

32

-231~231-1

long

64

-263~263-1

 4.浮点型(实型)数据

  实型常量:

  ◇十进制数形式

   由数字和小数点组成,且必须有小数点,如0.123,1.23,123.0

  ◇科学计数法形式

   如:

123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。

  ◇float型的值,必须在数字后加f或F,如1.23f。

  实型变量:

数据类型

所占位数

数的范围

float

32

3.4e-038~3.4e+038

double

64

1.7e-038~1.7e+038

 

5.简单数据类型的例子:

  publicclassAssign{

   publicstaticvoidmain(Stringargs[]){

   intx,y;//定义x,y两个整型变量

   floatz=1.234f;//指定变量z为float型,且赋初值为1.234

   doublew=1.234;//指定变量w为double型,且赋初值为1.234

   booleanflag=true;//指定变量flag为boolean型,且赋初值为true

   charc;//定义字符型变量c

   Stringstr;//定义字符串变量str

   Stringstr1="Hi";//指定变量str1为String型,且赋初值为Hi

   c='A';//给字符型变量c赋值'A'

   str="bye";//给字符串变量str赋值"bye"

   x=12;//给整型变量x赋值为12

   y=300;//给整型变量y赋值为300

   }

  }

2.2简单数据类型中各类型见的优先关系和相互转换

1.不同类型数据间的优先关系如下:

   低------------------------------------------->高

   byte,short,char->int->long->float->double

2.自动类型转换规则

  整型,实型,字符型数据可以混合运算。

运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级;

操作数1类型

操作数2类型

转换后的类型

byte、short、char

   int

    int

byte、short、char、int

   long

    long

byte、short、char、int、long

   float

    float

byte、short、char、int、long、float

   double

    double

  

3.强制类型转换

  高级数据要转换成低级数据,需用到强制类型转换,如:

  inti;

  byteb=(byte)i;/*把int型变量i强制转换为byte型*/

2.3运算符和表达式

⏹运算符

对各种类型的数据进行加工的过程成为运算,表示各种不同运算的符号称为运算符,参与运算的数据称为操作数,按操作数的数目来分,可有:

  ◇一元运算符:

++,--,+,-

  ◇二元运算符:

+,-,>

  ◇三元运算符:

基本的运算符按功能划分,有下面几类:

1 算术运算符:

+,―,*,/,%,++,――。

  例如:

    3+2;

    a-b;

    i++;

    --i;

  2 关系运算符:

>,<,>=,<=,==,!

=。

   例如:

   count>3;

   I==0;

   n!

=1;

  3 布尔逻辑运算符:

!

(非),&&(与),||(或)。

  例如:

   flag=true;

   !

(flag);

   flag&&false;

  4 位运算符:

>>,<<,>>>,&,|,^,~。

  例如:

   a=10011101;b=00111001;则有如下结果:

   a<<3=11101000;

   a>>3=11110011a>>>3=00010011;

   a&b=00011001;a|b=10111101;

   ~a=01100010;a^b=10100100(同位不同值);

  5 赋值运算符=,及其扩展赋值运算符如+=,―=,*=,/=等。

  例如:

   i=3;

   i+=3;    //等效于i=i+3;

  6 条件运算符?

   例如:

result=(sum==0?

1:

num/sum);

  7 其它:

   包括分量运算符·,下标运算符[],实例运算符instanceof,内存分配运算符new,强制类型转换运算符(类型),方法调用运算符()等。

例如:

  System.out.println("helloworld");

  intarray1[]=newint[4];

⏹表达式

表达式是由操作数和运算符按一定的语法形式组成的符号序列。

一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。

  1.表达式的类型

  表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单类型,也可以是复合类型:

  布尔型表达式:

x&&y||z;

  整型表达式:

num1+num2;

  2.运算符的优先次序

  表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行:

优先次序

运算符

1

.[]()

2

++--!

~instanceof

3

new(type)

4

*/%

5

+-

6

>>>>><<

7

><>=<=

8

==!

=

9

&

10

^

11

|

12

&&

13

||

14

?

:

15

=+=-=*=/=%=^=

16

&=|=<<=>>=>>>=

 例如,下述条件语句分四步完成:

  Result=sum==0?

1:

num/sum;

  第1步:

result=sum==0?

1:

(num/sum)

  第2步:

result=(sum==0)?

1:

(num/sum)

  第3步:

result=((sum==0)?

1:

(num/sum))

  第4步:

result=

2.4控制语句

分支语句提供了一种控制机制,使得程序的执行可以跳过某些语句不执行,而转去执行特定的语句。

  1.条件语句if-else

   if(boolean-expression)

    statement1;

   [elsestatement2;]

  2.多分支语句switch

   switch(expression){

    casevalue1:

statement1;

   break;

    casevalue2:

statement2;

   break;

   …………

    casevalueN:

statemendN;

   break;

    [default:

defaultStatement;]

   }

  ◇表达式expression的返回值类型必须是这几种类型之一:

int,byte,char,short。

  ◇case子句中的值valueN必须是常量,而且所有case子句中的值应是不同的。

  ◇default子句是可选的。

  ◇break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行(在一些特殊情况下,多个不同的case值要执行一组相同的操作,这时可以不用break)。

3.循环语句

1.while语句

  [initialization]

  while(termination){

    body;

  [iteration;]

  }

2.do-while语句

  [initialization]

  do{

    body;

  [iteration;]

  }while(termination);

3.for语句

  for(initialization;termination;iteration){

    body;

  }

  ◇for语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。

完成一次循环后,重新判断终止条件。

  ◇初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。

  ◇在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。

逗号语句是用逗号分隔的语句序列。

   for(i=0,j=10;i

    ……

   }

4.跳转语句

1.break语句

  ◇在switch语中,break语句用来终止switch语句的执行。

使程序从switch语句后的第一个语句开始执行。

  ◇在Java中,可以为每个代码块加一个括号,一个代码块通常是用大括号{}括起来的一段代码。

加标号的格式如下:

  BlockLabel:

{codeBlock}

  break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块的第一条语句处执行。

例如:

  breakBlockLabel;

  break语句

  a:

{……//标记代码块a

  b:

{……//标记代码块b

  c:

{……//标记代码块c

  breakb;

   ……//此处的语句块不被执行

  }

   ……/此处的语句块不被执行

  }

   ……//从此处开始执行

  }

 2.continue语句

  continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。

对于for语句,在进行终止条件的判断前,还要先执行迭代语句。

它的格式为:

   continue;

  也可以用continue跳转到括号指明的外层循环中,这时的格式为

   continueouterLable;

  例如:

   outer:

for(inti=0;i<10;i++){//外层循环

   inner:

for(intj=0;j<10;j++){//内层循环

   if(i

     ……

   continueouter;

   }

     ……

   }

     ……

   }

 3.返回语句return

   

  return语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。

返回语句有两种格式:

  returnexpression;

  return;

  return语句通常用在一个方法体的最后,否则会产生编译错误,除非用在if-else语句中

2.5数组

【一维数组】

1.一维数组的定义

  typearrayName[];

  类型(type)可以为Java中任意的数据类型,包括简单类型和复合类型。

  例如:

   intintArray[];

   DatedateArray[];

2.一维数组的初始化

  ◇静态初始化

    intintArray[]={1,2,3,4};

    StringstringArray[]={"abc","How","you"};

  ◇动态初始化

   1)简单类型的数组

    intintArray[];

    intArray=newint[5];

   2)复合类型的数组

    StringstringArray[];

    StringstringArray=newString[3];/*为数组中每个元素开辟引用

                     空间(32位)*/

    stringArray[0]=newString("How");//为第一个数组元素开辟空间

    stringArray[1]=newString("are");//为第二个数组元素开辟空间

    stringArray[2]=newString("you");//为第三个数组元素开辟空间

3.一维数组元素的引用

  数组元素的引用方式为:

     arrayName[index]

  index为数组下标,它可以为整型常数或表达式,下标从0开始。

每个数组都有一个属性length指明它的长度,例如:

intArray.length指明数组intArray的长度。

【多维数组】

1.二维数组的定义

  typearrayName[][];

  type[][]arrayName;

2.二维数组的初始化

  ◇静态初始化

  intintArray[][]={{1,2},{2,3},{3,4,5}};

  Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。

  ◇动态初始化

  1)直接为每一维分配空间,格式如下:

  arrayName=newtype[arrayLength1][arrayLength2];

  inta[][]=newint[2][3];

  2)从最高维开始,分别

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1