|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有了这样一个呼声:让java代替C语言成为基本语言。这些足以说明java简单易学的这个优点。其次,java的功能强大,前面我也提到了,EJB3.0的推出使java成为了大型项目的首选。概述:
【课前思索】
1.Java中的标识符是由哪些字符构成的?
2.Java中有哪些保存字?复杂数据范例包括哪几种?各类数据范例变量的界说办法和常量的暗示办法及取值局限。
3.Java中各复杂数据范例间的优先序次和主动转换划定规矩是甚么?
各数据范例间在甚么情形下,举行主动转换,在甚么情形下利用强迫转换?
4.Java中有哪些运算符?这些运算符的优先干系是如何的?
5.Java中有哪些把持语句?你懂得每种把持语句的语律例则吗?
6.Java中的一维数组和多维数组在数组静态初始化和静态初始化时有何分歧?
7.Java中的字符串有两种暗示办法,这两种暗示办法有甚么分歧?
8.怎样会见字符串?怎样修正字符串?怎样对两个字符串举行对照?
【难重点】
重点:
1.深入了解各常识点的观点,并熟记java的语律例范。
2.纯熟利用各类数据范例的界说,暗示和援用。
3.能纯熟利用各类把持语句。
4.能纯熟处置字符串。
难点:
1.静态初始化庞大范例数组时,要先为数组中的元素启示援用空间,再为每一个元素启示空间。
2.利用StringBuffer类暗示和操纵字符串时,要注重它能够处置可变字符串,即当在StringBuffer范例的字符串中拔出字符而超越已分派的缓冲区时,体系会主动地为它分派分外的空间。String类不成以。
2.1复杂数据范例
2.1.1标识符和保存字
1.标识符
程序员对程序中的各个元素加以定名时利用的定名暗号称为标识符(identifier)。Java言语中,标识符是以字母,下划线(_),美圆符($)入手下手的一个字符序列,前面能够跟字母,下划线,美圆符,数字。比方,identifier,userName,User_Name,_sys_val,$change为正当的标识符,而2mailroom#,class为不法的标识符。
2.保存字
具有专门的意义和用处,不克不及看成一样平常的标识符利用,这些标识符称为保存字(reservedword),也称为关头字,上面列出了java言语中的一切保存字:
abstract,break,byte,boolean,catch,case,class,char,continue,default,double,do,else,extends,false,final,float,for,finally,if,import,implements,int,interface,instanceof,long,length,native,new,null,package,private,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while。
java言语中的保存字均用小写字母暗示。
2.1.2数据范例概述
1.java中的数据范例分别
java言语的数据范例有复杂范例和复合范例:
复杂数据范例包含:
整数范例(Integer):byte,short,int,long
浮点范例(Floating):float,double
字符范例(Textual):char
布尔范例(Logical):boolean
复合数据范例包含:
class
interface
数组
2.常量和变量
常量:用保存字final来完成
finaltypeSpecifiervarName=value[,varName[=value]…];
如:finalintNUM=100;
变量:是java程序中的基础存储单位,它的界说包含变量名、变量范例和感化域几个部分。其界说格局以下:
typeSpecifiervarName[=value[,varName[=value]…];
如:intcount;charc=a;
变量的感化域指明可会见该变量的一段代码,声明一个变量的同时也就指了然变量的感化域。按感化域来分,变量能够有上面几种:部分变量、类变量、办法参数和破例处置参数。在一个断定的域中,变量名应当是独一的。部分变量在办法或办法的一个块代码中声明,它的感化域为它地点的代码块(全部办法或办法中的某块代码)。类变量在类中声明,而不是在类的某个办法中声明,它的感化域是全部类。办法参数传送给办法,它的感化域就是这个办法。破例处置参数传送给破例处置代码,它的感化域就是破例处置部分。
2.1.3复杂数据范例
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
Short
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,如floatt=1.23f。
实型变量:
数据范例
所占位数
数的局限
float
32
3.4e-038~3.4e+038
double
64
1.7e-038~1.7e+038
2.1.4复杂数据范例中各种型数据间的优先干系和互相转换
主动范例转换划定规矩
整型,实型,字符型数据能够夹杂运算。运算中,分歧范例的数据先转化为统一范例,然落后交运算,转换从初级到初级;
操纵数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;
2.2运算符和表达式
2.2.1运算符
基础的运算符按功效分别,有上面几类:
1算术运算符:+,D,*,/,%,++,--
2干系运算符:>,<,>=,<=,==,!=
3布尔逻辑运算符:!,&&,||。
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赋值运算符=,及其扩大赋值运算符如+=,-=,*=,/=等。
6前提运算符?:
operand?statement1:statement2
operand为一个布尔表达式,若为真则实行statement1,为statement2
7 别的:
包含份量运算符・,下标运算符[],实例运算符instanceof,内存分派运算符new,强迫范例转换运算符(范例),办法挪用运算符()等。比方:
2.2.2表达式
表达式是由操纵数和运算符按必定的语法情势构成的标记序列。一个常量或一个变量名字是最复杂的表达式,其值即该常量或变量的值;表达式的值还能够用作其他运算的操纵数,构成更庞大的表达式。
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
&=|=<<=>>=>>>=
先单运算符,尔后乘除加减,然后位运算符,以后对照运算,然后赋值运算。
2.3把持语句
Java程序经由过程把持语句来实行程序流,完成必定的义务。程序流是由多少个语句构成的,语句能够是单一的一条语句,如c=a+b,也能够是用年夜括号{}括起来的一个复合语句。Java中的把持语句有以下几类:
◇分支语句:if-else,switch
◇轮回语句:while,do-while,for
◇与程序转移有关的跳转语句:break,continue,return
◇破例处置语句:try-catch-finally,throw
◇正文语句://,/**/,/***/
2.3.1分支语句
分支语句供应了一种把持机制,使得程序的实行能够跳过某些语句不实行,而转往实行特定的语句。
1.前提语句if-else
if(boolean-expression)
statement1;
[elsestatement2;]
2.多分支语句switch
switch(expression){
casevalue1:statement1;
break;
casevalue2:statement2;
break;
…………
casevalueN:statemendN;
break;
[default:defaultStatement;]
}
break语句用来在实行完一个case分支后,使程序跳出switch语句,即停止switch语句的实行(在一些特别情形下,多个分歧的case值要实行一组不异的操纵,这时候能够不必break)。假如将default语句放在了第一行,则不论expression与case中的value是不是婚配,程序会从default入手下手实行直到第一个break呈现。
2.3.2轮回语句
1.while语句
[initialization]
while(termination){
body;
[iteration;]
}
2.do-while语句
[initialization]
do{
body;
[iteration;]
}while(termination);
3.for语句
for(initialization;termination;iteration){
body;
}
iteration:重复
◇for语句实行时,起首实行初始化操纵,然后判别停止前提是不是满意,假如满意,则实行轮回体中的语句,最初实行迭代部分。完成一次轮回后,从头判别停止前提。
◇初始化、停止和迭代部分都能够为空语句(但分号不克不及省),三者均为空的时分,相称于一个无穷轮回。
◇在初始化部分和迭代部分可使用逗号语句,来举行多个操纵。逗号语句是用逗号分开的语句序列。
2.3.3跳转语句
1.break语句
◇在switch语中,break语句用来停止switch语句的实行。使程序从switch语句后的第一个语句入手下手实行。
◇在Java中,能够为每一个代码块加一个括号,一个代码块一般是用年夜括号{}括起来的一段代码。加标号的格局以下:
BlockLabel:{codeBlock}
break语句的第二种利用情形就是跳出它所指定的块,并从紧跟该块的第一条语句处实行。
}
2.continue语句
continue语句用来停止本次轮回,跳过轮回体中上面还没有实行的语句,接着举行停止前提的判别,以决意是不是持续轮回。关于for语句,在举行停止前提的判别前,还要先实行迭代语句。它的格局为:
continue;
也能够用continue跳转到括号指明的外层轮回中,这时候的格局为
continueouterLable;
比方:
outer:for(inti=0;i<10;i++){//外层轮回
inner:for(intj=0;j<10;j++){//内层轮回
if(i<j){
……
continueouter;
}
……
}
……
}
3.前往语句return
return语句从以后办法中加入,前往到挪用该办法的语句处,并从紧跟该语句的下一条语句持续程序的实行。前往语句有两种格局:
returnexpression;
return;
return语句一般用在一个办法体的最初,不然会发生编译毛病,除非用在if-else语句中
2.3.4破例处置语句
包含try,catch,finally,throw语句;与c/c++比拟,是Java独有的语句。我们将在第四讲中先容。
2.4数组
java言语中,数组是一种最复杂的复合数据范例。数组是有序数据的汇合,数组中的每一个元素具有不异的数据范例,能够用一个一致的数组名和下标来独一地断定数组中的元素。数组有一维数组和多维数组。
2.4.1一维数组
◇静态初始化
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的长度。
2.4.2多维数组
1.二维数组的界说
typearrayName[][];
type[][]arrayName;
2.二维数组的初始化
◇静态初始化
intintArray[][]={{1,2},{2,3},{3,4,5}};
Java言语中,因为把二维数组看做是数组的数组,数组空间不是一连分派的,以是不请求二维数组每维的巨细不异。
◇静态初始化
1)间接为每维分派空间,格局以下:
arrayName=newtype[arrayLength1][arrayLength2];
inta[][]=newint[2][3];
2)从最高维入手下手,分离为每维分派空间:
arrayName=newtype[arrayLength1][];
arrayName[0]=newtype[arrayLength20];
arrayName[1]=newtype[arrayLength21];
…
arrayName[arrayLength1-1]=newtype[arrayLength2n];
3)例:
二维复杂数据范例数组的静态初始化以下,
inta[][]=newint[2][];
a[0]=newint[3];
a[1]=newint[5];
对二维复合数据范例的数组,必需起首为最高维分派援用空间,然后再依次为低维分派空间。
并且,必需为每一个数组元素独自分派空间。
比方:
Strings[][]=newString[2][];
s[0]=newString[2];//为最高维分派援用空间
s[1]=newString[2];//为最高维分派援用空间
s[0][0]=newString("Good");//为每一个数组元素独自分派空间
s[0][1]=newString("Luck");//为每一个数组元素独自分派空间
s[1][0]=newString("to");//为每一个数组元素独自分派空间
s[1][1]=newString("You");//为每一个数组元素独自分派空间
3.二维数组元素的援用
对二维数组中的每一个元素,援用体例为:arrayName[index1][index2]
比方:num[1][0];
2.5字符串的处置
2.5.1字符串的暗示
Java言语中,把字符串作为对象来处置,类String和StringBuffer都能够用来暗示一个字符串。(类名都是年夜写字母打头)
1.字符串的对照
String中供应的办法:
equals()和equalsIgnoreCase()
它们与运算符==完成的对照是分歧的。运算符==对照两个对象是不是援用统一个实例,而equals()和equalsIgnoreCase()则对照两个字符串中对应的每一个字符值是不是不异。
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 |
|