Java程序设计基础教程(讲稿)主讲人:靳宗信黄河科技学院信息工程学院计算机科学系2011-1-21第1章java入门一、Java的历史:1991:JamesGosling1994:许多著名的公司购买了java的版权1995.5.23:Birthday(Java1.0)1996:Canonlydosimplethings(Java1.02)1998.12:Candoalmostanything(Java1.2)Now:Java1.6二、编程语言排行榜三、Java技术的分类(1)J2SE:Java2StandardEdition支持所有JAVA标准规范中所定义的核心类函数库和所有的JAVA基本类别。J2SE定位在客户端程序的应用上。2(2)J2EE:Java2EnterpriseEdition在J2SE的基础上增加了企业内部扩展类函数库的支持,比如支持Servlet/JSP的javax.servletr.*和EJB的javax.ejb.*的类函数库。J2EE定位在服务器端程序的应用上。(3)J2ME:Java2MicroEdition只支持JAVA标准规范中所定义的核心类函数库的子集。定位于嵌入式系统的应用上。四、Java程序的分类(J2SE)(1)JavaApplication例:classHelloWorld{publicstaticvoidmain(String[]args){System.out.println(HelloWorld!);}}(2)JavaApplet例:importjava.applet.Applet;importjava.awt.*;publicclassTestAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString(HelloWorld,10,100);3}}HTMLHEADTITLENewDocument/TITLE/HEADBODYappletcode=TestApplet.classheight=400width=400/applet/BODY/HTML五、Java开发工具(1)JDK:JavaSoftwareDevelopKit可以从下面的网站下载:()(2)EditPlus:源程序的编辑器(3)Java的集成开发环境•Eclipse(MyEclipse)•Netbeans4•JBuilder•Jcreator•……六、JDK的安装、配置(1)下载JDK(2)安装JDK(3)配置环境变量PATHCLASSPATH(4)安装EditPlus七、Java程序的开发过程(1)Java应用程序的开发过程编辑源程序(EditPlus)保存源程序(.java)编译源程序(javac.exe)调试源程序运行例子:classHelloWorld{publicstaticvoidmain(String[]args){System.out.println(HelloWorld!);5}}(2)JavaApplet的开发过程编辑源程序(EditPlus)保存源程序(.java)编译源程序(javac.exe)调试源程序运行(浏览器运行)例子:importjava.applet.Applet;importjava.awt.*;publicclassTestAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString(HelloWorld,10,100);}}HTMLHEADTITLENewDocument/TITLE/HEAD6BODYappletcode=TestApplet.classheight=400width=400/applet/BODY/HTML八、参考书籍(1)《ThinkinginJava》FourthEdition1999年Java世界最具有影响力的书籍作者:BruceEckel《ThinkinginC++》《ThinkinginPatterns》《C++Inside&Out》《UsingC++》(2)最重要的资料:JavaAPIDocumentation可以从以下网站下载:()作业:(1)配置Java的开发环境(2)编写一个Java应用程序,并运行…7(3)编写一个JavaApplet,并运行…(4)叙述Java为什么是跨平台的?8第二章Java语言基础一、标识符和关键词(1)标识符:用来表示类名、变量名、方法名、类型名、数组名、文件名的有效字符序列Java语言规定:标识符有字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。Java语言中的字母不仅是指常用的拉丁字母a、b、c等,还包括汉字、日文、朝鲜文、俄文、希腊字母以及其他许多语言中的文字。(2)关键词:java语言中被赋予特定意义的一些单词。不能把这些单词作为名字来使用。常见的关键词如下:abstractbooleanbreakbytecasecatchcharclasscontinuedodoubleelseenumextendsfalsefinalfinallyfloatforimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsychronizedthisthrowthrowtruetryvoidwhile9s二、Java的数据类型(一)基本数据类型基本类型大小最小值最大值对应包装类boolean———Booleanchar16bitUnicode0Unicode216-1Characterbyte8bit-128+127Byteshort16bit-215-215-1Shortint32bit-231-231-1Integerlong64bit-263-263-1Longfloat32bitIEEE754IEEE754Floatdouble64bitIEEE754IEEE754Double10基本数据类型的转换:(按精度从高到底的顺序)byte→short→int→long→float→double(1)自动类型转换(2)强制类型转换(二)复合数据类型类型性、接口类型、数组类型等。三、运算符(1)+—*/%例题1:publicclassTestOne{publicstaticvoidmain(String[]args){System.out.println(7/2);System.out.println(7.0/2);System.out.println(7.0/2.0);System.out.println(7.0/2.0);}}例题2:publicclassTestTwo{publicstaticvoidmain(String[]args){System.out.print(7%-2+\t);11System.out.print(7%2+\t);System.out.print(-7%2+\t);System.out.println(-7%-2+\t);System.out.println(7.2%2.8=+7.2%2.8);}}(2)++——例题3:publicclassTestThree{publicstaticvoidmain(String[]args){inta=2;a++;System.out.println(a=+a);intm=a++;System.out.println(a=+a+,m=+m);intn=++a;System.out.println(a=+a+,n=+n);}}算术混合运算的精度:byteshortintlongfloatdouble★char类型和整数类型运算的结果?12例题4:publicclassTestFour{publicstaticvoidmain(String[]args){bytex=7;//那么'B'+x的结果是什么类型?}}(3)关系运算符:===!=(4)逻辑运算符(短路运算):&&||!op1op2op1&&op2op1||op2!op1truetruetruetruefalsetruefalsefalsetruefalsefalsetruefalsetruetruefalsefalsefalsefalsetrue例题5:(短路运算)publicclassTestFive{publicstaticvoidmain(String[]args){13intx=1,y=1;booleanb=(((y=1)==0)&&((x=6)==6));System.out.println(x=+x);System.out.println(y=+y);}}(5)位运算:按位逻辑运算:&|~^例题6:publicclassTestSix{publicstaticvoidmain(String[]args){inta=3;intb=5;System.out.println(a&b=+(a&b));System.out.println(a|b=+(a|b));System.out.println(a^b=+(a^b));System.out.println(~a=+(~a));}}移位运算:例题7:14publicclassTestSeven{publicstaticvoidmain(String[]args){inta=5;System.out.println(a2=+(a2));System.out.println(a2=+(a2));System.out.println(a2=+(a2));}}(6)其它运算符:运算符描述?:所用相当于if-else[]用于声明数组、创建数组及访问数组元素.用于访问对象实例或者类的成员(type)强制类型转换new创建对象或数组instanceof判断对象是否为类的实例四、Java中的注释(1)单行注释//此行为单行注释(2)多行注释/*15此处为多行注释*/(3)文档注释/**此处为文档注释*/五、字符界面常见类型数据的输入(1)字符的输入例题:importjava.io.*;publicclassInputChar{publicstaticvoidmain(String[]args){charc='';System.out.println(Enteracharacterplease:);try{c=(char)System.in.read();}catch(IOExceptione){System.out.println(e);}System.out.println(You'veenteredacharacter:+c);}16}★输入英文,汉字?例题:importjava.io.*;publicclassInputChar{publicstaticvoidmain(String[]args){charc='';System.out.println(Enteracharacterplease:);try{InputStreamReaderln=newInputStreamReader(System.in);c=(char)ln.read();}catch(IOExceptione){System.out.println(e);}System.out.println(You'veenteredacharacter:+c);}}(2)字符串的输入impo