JAVA编程:JAVA程序员必读:基本篇(3)言语基本
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。程序|程序员我们先看看一个详细例子,给你们有个先进为主的感到。以下是一个BasicsDemo程序,它的感化是从1加到10,并显现了局:publicclassBasicsDemo{
publicstaticvoidmain(String[]args){
intsum=0;
for(intcurrent=1;current<=10;current++){
sum+=current;
}
System.out.println("Sum="+sum);
}
}
这个程序的输入为:
Sum=55
从下面的例子中,我们能够看出即便是一个小的程序都要利用JAVA编程言语的很多传统特征,个中包含变量、操纵符和流程把持语句。以上的代码大概看起来有点庞大,可是一旦你进修完本系列教程,你就会觉察它实践上很复杂。本节教程将教给你一些JAVA编程言语的基本。
3.1变量
你能够在程序中利用变量来包容数据。这一大节将数据范例、如何初始化变量和如何在代码块中援用变量。实践上,对象是存储它的形态在变量中的。它的详细界说为:变量是用标识符定名的数据项。
你必需扫除地为你想在程序中利用地每个变量供应一个名字和范例。这个变量的名字必需是一个正当的标识符:以字母开首的一串Unicode字符。你可使用变量名来援用变量包括的数据。这个变量的范例决意了甚么范例的数值能够包容和甚么的操纵能够对它举行操纵。为了失掉一个变量、范例和名字,你必需编写变量声明,以下:
typename
除名字和范例你还要给变量一个感化域。变量的感化域是由变量声明地位决意的。
以下MaxVariablesDemo程序,声了然八个分歧范例的变量,以下:
publicclassMaxVariablesDemo{publicstaticvoidmain(Stringargs[]){//整型数bytelargestByte=Byte.MAX_VALUE;shortlargestShort=Short.MAX_VALUE;intlargestInteger=Integer.MAX_VALUE;longlargestLong=Long.MAX_VALUE;//实型数floatlargestFloat=Float.MAX_VALUE;doublelargestDouble=Double.MAX_VALUE;//别的的数据范例:字符型和布尔型等等charaChar=S;booleanaBoolean=true;//将它们显现出来System.out.println("Thelargestbytevalueis"+largestByte);System.out.println("Thelargestshortvalueis"+largestShort);System.out.println("Thelargestintegervalueis"+largestInteger);System.out.println("Thelargestlongvalueis"+largestLong);System.out.println("Thelargestfloatvalueis"+largestFloat);System.out.println("Thelargestdoublevalueis"+largestDouble);if(Character.isUpperCase(aChar)){System.out.println("Thecharacter"+aChar+"isuppercase.");}else{System.out.println("Thecharacter"+aChar+"islowercase.");}System.out.println("ThevalueofaBooleanis"+aBoolean);}}
这个程序的输入为:
Thelargestbytevalueis127
Thelargestshortvalueis32767
Thelargestintegervalueis2147483647
Thelargestlongvalueis9223372036854775807
Thelargestfloatvalueis3.40282e+38
Thelargestdoublevalueis1.79769e+308
ThecharacterSisuppercase.
ThevalueofaBooleanistrue
上面的部分具体先容了变量的各个办法,包含数据范例、名字、感化域、初始化和final变量。这个MaxVariablesDemo程序利用了你大概不熟习而且不在本节提到的两项:几个常数MAX_VALUE和一个if-else语句。每一个MAX_VALUE常数是界说在由JAVA平台供应的个中一个数字类中,它是最年夜的数值。
3.1.1数据范例
每个变量必需有一个数据范例。一个变量的数据范例决意了变量能包容的数值和操纵符。好比,在MaxVariablesDemo程序中,声明intlargestInteger决意了largestInteger是一个整型数据范例(int)。整型只能包容整型数(能够是负数也能够是正数)。你能够完成算术操纵,好比,整型变量的加法等等。
JAVA程序言语有两类的数据范例:原始和援用。一个原始范例的变量为它的范例包括了得当巨细和格局的单一数值:一个数字、字符大概一个布尔型数值。好比,一个整型数值是一个32位数据。
上面表格一切的JAVA撑持的一切原始数据范例,还给出了它们的巨细和格局和冗长的形貌。MaxVariablesDemo程序为每个原始范例声了然一个变量:
关头字
形貌
巨细/格局
整型
byte
字节长度整型
8位两个补码
Short
短整型
16位两个补码
int
整型
32位两个补码
long
长整型
64位两个补码
实数
Float
单精度浮点型
32位IEEE754
Double
双精度浮点型
64位IEEE754
别的范例
Char
单个字符
16位Unicode字符
boolean
布尔型数值(true大概false)
真或假
在别的言语中,原始范例数据的格局和巨细大概依托于程序运转的平台。比拟之下,Java程序言语能够指定原始数据范例的巨细和格局。因而,你不用忧虑体系附属成绩。
你能够在你的代码中间接为原始变量设置数值。好比,假如你必要为一个整型变量设置为4,你能够编写以下代码:
intanInt=4;
数字4就是一个整型数值。上面是各类原始数值举例:
数值
范例
178
Int
8864L
Long
37.266
Double
37.266D
Double
87.363F
float
26.77e3
double
c
char
true
boolean
false
boolean
总得说来,没有小数点的数就是整型。你能够经由过程在数字前面加一个L大概l指定为一个长整型。一样平常利用L而不利用l,由于l很简单与数字1混起来。有小数点的数为双精度范例。你能够在数字前面安排f大概F来指定为实数。而字符型数值能够是处在单引号两头的任何单一的Unicode字符;两个布尔型数是true和false。
数组、类和接口是援用的范例。援用范例变量的数值跟原始范例的数值对照起来,它是数值的一个援用大概是由变量代表的数值。
一个援用称为一个指针大概在别的言语中称为内存地点。JAVA编程言语象别的言语一样不撑持地点的具体利用,你可使用变量的名字来代替。
3.1.1数据范例
你能够在你的代码中间接为原始变量设置数值。好比,假如你必要为一个整型变量设置为4,你能够编写以下代码:
intanInt=4;
数字4就是一个整型数值。上面是各类原始数值举例:
数值
范例
178
Int
8864L
Long
37.266
Double
37.266D
Double
87.363F
float
26.77e3
double
c
char
true
boolean
false
boolean
总得说来,没有小数点的数就是整型。你能够经由过程在数字前面加一个L大概l指定为一个长整型。一样平常利用L而不利用l,由于l很简单与数字1混起来。有小数点的数为双精度范例。你能够在数字前面安排f大概F来指定为实数。而字符型数值能够是处在单引号两头的任何单一的Unicode字符;两个布尔型数是true和false。
数组、类和接口是援用的范例。援用范例变量的数值跟原始范例的数值对照起来,它是数值的一个援用大概是由变量代表的数值。
一个援用称为一个指针大概在别的言语中称为内存地点。JAVA编程言语象别的言语一样不撑持地点的具体利用,你可使用变量的名字来代替。
3.1.2变量名
程序是用变量名来援用变量数值的。好比,当显现largestByte变量的数值的时分,MaxVariablesDemo程序就利用名字largestByte。一个名字,好比largesByte包括了一个单一的标识符,被称为复杂的名字(即变量名)。在JAVA编程言语中,关于变量名有上面的必需满意:
1.它必需是一个正当的标识符。一个标识符是以字母开首的一串Unicode字符。
[*]它必需不是一个关头字、布尔型字符(true大概false)大概保存字NULL。
[*]它必需在感化域中是独一的。在分歧的感化域才同意存在不异名字的变量。在一些前提下,假如变量被界说在一个嵌套的代码块中,它大概和别的变量共享不异的名字。这点在今后的教程中会提到。
这里有个商定:变量名是以小写字母开首,而类名是以一个年夜写字母开首的。假如变量名包括了多个单词,而每一个单词要组合在一同,则在每一个单词的第一个字母年夜写,好比IsVisible。而下划线(_)能够处在变量的任何中央,可是一样平常地它只用在常数平分离单词,由于常数名都是用年夜写字母的,使用下划线能够看得更扫除。
3.1.3感化域
变量的感化域是一个程序的地区,在下面变量能够经由过程它的名字来援用。其次,感化域也决意甚么时分体系为变量创立和扫除内存。感化域只使用成员变量并决意是不是变量能够从地点类的内部利用。在程序中变量声明的地位创建它的感化域而且将它安排到以下四类之一:
成员函数感化域
外地变量感化域
办法参数感化域
非常处置参数感化域
(4)
如4所示。成员变量示类大概对象的成员。它是在类中界说而不在任何办法大概机关函数中界说。成员函数的感化域是类的完整界说。可是,当做员是利用在成员初始化表达式中的时分,成员的界说必要在它利用之前呈现。在前面的教程中我们要再深切进修成员变量,这里就不讲了。
你能够在一个代码块中界说外地变量。总的说来,外地变量的感化域从它的声明扩大到了它被界说的代码块停止。在MaxVariablesDemo中,界说在主办法中的一切变量都是外地变量。程序中的每个变量的感化域从变量的界说扩大到了主办法的停止,它在程序代码中是用右括号}来唆使的。
参数是办法大概机关函数的正式参数,它们用于传送数值给办法和机关函数。参数的感化域是全部办法大概机关函数。
非常处置参数跟参数很类似,不同在是前者是传送参数给非常处置尔后者是传送给办法大概机关函数。非常处置参数的感化域处在{和}之间的代码,它紧随着catch语句。使用非常来处置毛病向你申明了如何编写一个带有参数的非常处置。以下是一个代码例子:
if(...){
inti=17;
...
}
System.out.println("Thevalueofi="+i);//毛病
最初的行不汇编由于外地变量I已出了感化域。i的感化域是处在{和}之间的代码块。变量I在右括号}以后就不存在了。更正的办法能够是讲变量的声明移到if语句块的表面,大概是将println办法挪用挪动到if语句块中。
3.1.4变量初始化
外地变量和成员变量能够使用一个赋值语句来初始化。变量的数据范例必需与赋给它的数值的数据范例相婚配。上面程序中确当地变量声明,其初始化以下:
//整型
bytelargestByte=Byte.MAX_VALUE;
shortlargestShort=Short.MAX_VALUE;
intlargestInteger=Integer.MAX_VALUE;
longlargestLong=Long.MAX_VALUE;
//实数型
floatlargestFloat=Float.MAX_VALUE;
doublelargestDouble=Double.MAX_VALUE;
//别的范例
charaChar=S;
booleanaBoolean=true;
参数和非常处置参数不克不及使用这类办法来初始化。它的参数的数值只能经由过程来设置。
3.1.5final变量
你能够在任何感化域声明一个变量。Final变量的数值不克不及在初始化以后举行改动。如许的变量跟别的言语中的常量很类似。
为了声明一个final变量,你能够在范例之前的变量声明利用final关头字,好比:
finalintaFinalVar=0;
后面的语句声了然一个final变量并一同对它举行了初始化。假如你在前面还想给aFinalVar赋别的的值的话,就会招致一个编译毛病。在需要的时分,你能够推延对一个final当地变量举行初始化。你能够先界说,然后在以后再初始化,以下:
finalintblankfinal;
...
blankfinal=0;
已声了然可是还没有初始化的final当地变量称为空缺final。同时,一旦final当地变量被初始化,它就不克不及再设置了。而且以后的任何对blankfinal赋值的操纵都将招致一个编译毛病。
3.1.5变量的总结
当你声了然一个变量,你就显性地设置了变量的名字和数据范例。JAVA编程言语右两类的数据范例:原始和援用。原始数据的变量包括一个数值。以下这张表显现了一切的原始数据范例和它们的巨细和格局。
关头字
形貌
巨细/格局
整型
byte
字节长度整型
8位两个补码
Short
短整型
16位两个补码
int
整型
32位两个补码
long
长整型
64位两个补码
实数
Float
单精度浮点型
32位IEEE754
Double
双精度浮点型
64位IEEE754
别的范例
Char
单个字符
16位Unicode字符
boolean
布尔型数值(true大概false)
真或假
变量声明的地位隐含地设置了变量的感化域,它决意了代码的哪一部分能够经由过程变量名来挪用这个变量。详细有以下四品种型的感化域:成员变量感化域、当地变量感化域、参数感化域和非常处置参数感化域。
<P> 你可使用赋值操纵符(=")来在声明的中央对变量举行初始化。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 是一种使网页(Web Page)产生生动活泼画面的语言 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
页:
[1]
2