仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 687|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网页编程之第二讲 Java言语基本常识

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:45:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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的复杂性。
精灵巫婆 该用户已被删除
19#
 楼主| 发表于 2015-4-18 00:17:18 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
乐观 该用户已被删除
18#
发表于 2015-4-13 21:51:24 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
再见西城 该用户已被删除
17#
发表于 2015-4-4 16:08:01 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
谁可相欹 该用户已被删除
16#
发表于 2015-4-1 21:08:48 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
冷月葬花魂 该用户已被删除
15#
发表于 2015-3-20 19:22:50 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
不帅 该用户已被删除
14#
发表于 2015-3-13 21:43:16 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
变相怪杰 该用户已被删除
13#
发表于 2015-3-7 07:55:45 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
金色的骷髅 该用户已被删除
12#
发表于 2015-3-1 15:26:20 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
飘飘悠悠 该用户已被删除
11#
发表于 2015-2-20 23:40:42 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
第二个灵魂 该用户已被删除
10#
发表于 2015-2-9 03:33:47 | 只看该作者
是一种突破用户端机器环境和CPU
飘灵儿 该用户已被删除
9#
发表于 2015-2-8 13:16:21 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
只想知道 该用户已被删除
8#
发表于 2015-2-7 00:23:48 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
分手快乐 该用户已被删除
7#
发表于 2015-2-6 21:29:59 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
6#
发表于 2015-2-5 03:29:13 | 只看该作者
是一种使用者不需花费很多时间学习的语言
若天明 该用户已被删除
5#
发表于 2015-2-4 23:13:00 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
小魔女 该用户已被删除
地板
发表于 2015-2-4 14:56:48 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
活着的死人 该用户已被删除
板凳
发表于 2015-1-24 14:07:20 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
简单生活 该用户已被删除
沙发
发表于 2015-1-21 16:23:24 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
海妖 该用户已被删除
楼主
发表于 2015-1-21 05:54:06 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 23:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表