《Java编程基础知识点汇总及习题集》--答案(共74页).docx
精选优质文档-倾情为你奉上目 录第一章 Java入门专心-专注-专业知识点汇总1、 JAVA 三大体系n Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心的部分,包含Java最核心的类库。n JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装配、部署企业级应用,包含Servlet、JSP、JavaBean、JDBC、EJB、Web Service等。n Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备上的软件开发。2、 JDK,JRE,JVM的作用及关系· 作用 JVM:保证Java语言跨平台 JRE:Java程序的运行环境 JDK:Java程序的开发环境· 关系 JDK:JRE+工具 JRE:JVM+类库3、 JDK环境变量配置n path环境变量:存放可执行文件的存放路径,路径之间用逗号隔开n classpath环境变量:类的运行路径,JVM在运行时通过classpath加载需要的类4、 重点掌握两个程序n javac.exe:Java编译器工具,可以将编写好的Java文件(.java)编译成Java字节码文件(.class);n java.exe:Java运行工具,启动Java虚拟机进程,运行编译器生成的字节码文件(.class)5、 一切程序运行的入口public static void main(String args ) System.out.println(“Hello World!”);课堂笔记练习题一、 填空题1、 Java的三个技术平台分别是( J2SE )、( J2EE )、(J2ME )。2、 Sun公司针对领域不同,提供了三个Java版本,其中对于个人计算机程序开发的是( J2SE ),对于企业开发应用的是( J2EE ),对于嵌入式设备应用开发的是( J2ME )。3、 建立Java开发环境,安装JDK,一般需要设置环境变量( path )、( classpath )。4、 编写一个Java源程序,其文件名为Test.java,则编译该源程序的命令为(javac ),运行该程序的命令为( java ),生成文档注释的命令为( javadoc )。5、 Java程序的运行环境简称之为( JRE )。6、 编译Java程序需要使用(javac )命令。7、 javac.exe和java.exe两个可执行程序放在JDK安装目录的( bin )目录下。8、 ( path )环境变量用来存储Java的编译和运行工具所在的路径,而( classpath )环境变量则用来保存Java虚拟机要运行的“.class”文件路径。9、 Java的源代码文件的扩展名是( .java)。10、 Java编译器的输入文件的类型是( .java )。11、 Java编译器的输出文件的类型是( .class )。12、 运行Java应用程序的命令是( java )。二、选择题1、 以下选项中,哪些属于JDK工具?(多选) (ABCD )A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具2、 Java属于以下哪种语言?( C )A、机器语言 B、汇编语言 C、高级语言 D、以上都不对3、 下面哪种类型的文件可以在Java虚拟机中运行?( D )A、.Java B、.jre C、.exe D、.class4、 安装好JDK后,在其bin目录下有许多exe可执行文件,其中“java.exe”命令的作用是以下哪一种?( D )A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器5、 如果jdk的安装路径为“d:jdk”,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?(B )A、d:jdk; B、d:jdkbin; C、d:jrebin; D、d:jre;6、 编译一个定义了两个类和三个方法的Java源程序文件,总共将产生( D )个字节码文件。A、5个字节码文件,以“.java”为扩展名 B、2个字节码文件,以“.java”为扩展名C、5个字节码文件,以“.class”为扩展名D、2个字节码文件,以“.class”为扩展名7、 做为Java应用程序入口的main()方法,其声明格式可以是( A )A、public static void main(String args); B、public static int main(String args);C、public void main(String args); D、public int main(String args);8、 下面选项中,( D )是Java关键字。A、then B、PUBLIC C、java D、public9、 ( D )不是Java的开发工具A、Eclipse B、NetBeans C、JBuilder D、VC+ 6.010、 程序语句“System.out.println(“one”+1+“,Two”+2);”运行后的结果为( D )A、one,1,Two,2 B、One1Two2 C、One,Two D、One1,Two211、 下列哪项不是JDK所包含的内容?( C ) AJava编程语言 B工具及工具的API CJava EE扩展API DJava平台虚拟机 12、 下列关于JDK、JRE和JVM的描述。哪项正确?( D ) AJDK中包含了JRE,JVM中包含了JRE BJRE中包含了JDK,JDK中包含了JVM CJRE中包含了JDK,JVM中包含了JREDJDK中包含了JRE,JRE中包含了JVM 13、 下列哪个工具可以编译java源文件?( A ) Ajavac Bjdb Cjavadoc Djunit 14、 JDK工具javadoc的作用是哪项?( A ) A生成Java文档B编译Java源文件C执行Java类文件 D测试Java代码 15、 以下哪些包是Java标准库中常用的包?(多选)( ACD ) Ajavalang Bjavaxservlet .http Cj ava.io Djavasql16、 使用JDK工具生成的Java文档的文件格式是?( D )AXML格式 B自定义格式 c二进制格式 DHTML格式17、 以下关于JVM的叙述,哪项正确?(多选)( BC )AJVM运行于操作系统之上,它依赖于操作系统BJVM运行于操作系统之上,它与操作系统无关CJVM支持Java程序运行,它能够直接运行Java字节码文件DJVM支持Java程序运行,它能够直接运行Java源代码文件18、 以下关于支持Java运行平台的叙述,哪项错误?( C )AJava可在Solaris平台上运行 BJava可在Windows平台上运行CJava语言与平台无关。Java程序的运行结果依赖于操作系统DJava语言与平台无关。Java程序的运行结果与操作系统无关19、 以下关于Applet和Java程序之间关系的叙述,哪项错误?( B )A -个Applet就是一段Java程序BApplet是一种特殊的Java程序,它需要运行在Web服务器上CApplet是一种特殊的Java程序,它需要运行在Web浏览器上DApplet是一种Java SE平台的应用程序20、 以下关于Java HotSpot的描述,哪两项错误?(多选)( AD )AJavaHotSpot是一种热编译技术,在编译Java源程序时会被使用BJava HotSpot是一种热编译技术,在运行Java代码时会被使用CJava HotSpot是一种热编译技术,它只对程序的部分字节码进行优化DJava HotSpot是一种热编译技术,它会对程序的全部字节码进行优化21、 环境变量PATH中含有多个路径时,路径和路径之间可以用哪项来隔开?( A )A.; B. , C.* D:| 22、 CLASSPATH中的“”的含义是哪项?( B )A省略号 B当前目录 C所有目录 D上级目录 23、 JVM在执行一个Java类时,大致采用以下过程?( D )A执行类中的代码一>装载类一>校验类 B校验类一>装载类一>执行类中的代码C装载类一>执行类中的代码一>校验类 D装载类一>校验类一>执行类中的代码 24、 当运行个Java程序时,传递参数的格式是哪项?( C )A java类名参数1,参数2 B javac类名参数1参数2C java类名参数1参数2 D java类名参数1+参数2 25、 以下关于Java文件名的叙述,正确的有?(多选)( AB )AJava源文件的扩展名应为.java BJava源文件的文件名应与文件中的类名一致C Java字节码文件的扩展名应为Java D 一个Java源文件中只能包含一个Java类三、编程题1、编写程序,在控制台上显示短句:“知识就是力量”。要求:(1)一行显示整个语句。(2)分三行显示,每行显示两个汉字。class HelloWordpublic static void main(String args)System.out.println("知识就是力量");System.out.println("知识n就是n力量");第二章 Java基础知识点汇总1、 Java代码的基本格式修饰符 class 类名 程序代码;l 修饰符:public、private、default、abstract、fanal、staticl 类名必须与文件名相同(public类)l 每条语句的最后都必须用分号(;)结束l 严格区分大小写l 代码整齐、美观、层次清晰l 字符串用“+”连接2、 Java中的注释:注释是对程序某个功能或某行代码的说明n 单行注释 “/”n 多行注释 “/* */”n 文档注释 “/* */”,可以使用javadoc命令生成帮助文档3、 Java中的标识符n 大小写字母、数字、下划线( _ )和美元号($)n 标识符不能以数字开头n 不能是Java中的关键字4、 标识符命名规则(驼峰命名法)n 包的名字一律小写n 类名和接口名每个单子的首字母大写n 常量名所有字母都大写,单词之间用下划线连接n 变量名和方法名第一字单词首字母小写,从第二个单词开始每个单词的首字母大写n 尽量使用有意义的英文单词定义标识符课堂笔记5、 变量的类型6、 Java中的变量n 变量的声明方法 变量的赋值 n 变量的声明+赋值赋值7、 Unicode字符集n Unicode为每种语言的每个字符设定了统一并且唯一的二进制码;n Java使用Unicode字符集编码n 每个字符占2个字节n 存字符的字符集编码与取字符的字符集编码不一致,就会出现乱码现象8、 变量的类型转换n 自动类型转换(隐式类型转换):取值范围小的类型 赋值给 取值范围大的类型u 如 :double a=1.2;int b=3; a=b;n 强制类型转换(显式类型转换):取值范围大的类型 赋值给 取值范围小的类型,强制类型转换格式:目标类型 变量 = (目标类型)值u 如 :double a=1.2;int b=3; b=(int)a;9、 变量的作用域n 在程序中,变量一定会被定义在某个大括号中,该大括号所包含的代码区域便是这个变量的作用域10、 运算符算术运算符赋值运算符比较运算符逻辑运算符+=&-+=!=|+-=< -*=>!*/=<=&&/%=>=|%+-11、 赋值运算符运算符运算范例结果=赋值a=3;b=2;a=3;b=2;+=加等于a=3;b=2;a+=ba=5;b=2;-=减等于a=3;b=2;a-=ba=1;b=2;*=乘等于a=3;b=2;a*=ba=6;b=2;/=除等于a=3;b=2;a/=ba=1;b=2;%=模等于a=3;b=2;a%=ba=1;b=2;12、 逻辑运算符n &与&&都表示与操作,当且仅当两边的操作数都为true时,结果才为真;n &:无论左边为true还是false,右边都要进行运算n &&:如果左边为false,右边不再运算n |与|都表示或操作,当两边操作数有一边为true,结果就为真;n |:无论左边为true还是false,右边都要进行运算n |:如果左边为true,右边不再运算13、 运算符的优先级优先级运算符1. 、 ()2+ 、-、 !3* 、/、 %4 +、-5< 、>、 <=、 >=6= 、!=7&89|10&&11|12?:13=、 *=、 /= 、%= 、+=、 -= 、 &=、 =、 |=14、 获取输入信息n System.out:表示输出流,print()是输出到控制台,println输出到控制台,并且将光标移到下一行n System.in:表示输入流,输入流来自键盘,需要使用Scanner类创建对象读取来自System.in的输入l Import java.uitil.Scanner;l Scanner scanner=new Scanner(System.in)l int a=scanner.nextInt()方法功能.next()读取一个字符串,字符串遇到空格就终止.nextByte()读取byte类型的整数.nextShort()读取short类型的整数.nextInt()读取int类型的整数.nextLong()读取long类型的整数.nextFloat()读取float类型的整数.nextDouble()读取double类型的整数15、 常量n final 类型 常量名 = 具体的值16、 转义字符:(单引号)、(双引号)、(反斜杠)、(回车)、(换行)、(键)、(退格)练习题一、 填空题1. Java中程序代码必须在一个类中定义,类使用( class )关键字来定义。2. 布尔常量即布尔类型两个值,分别是( true )和( false )。3. Java中的注释可以分为三种类型( 单行注释 )(多行注释 )和(文档注释)。4. 单行注释( / ),多行注释以(/* )开头,( */ )结尾,多行文档注释以(/*)开头,( */ )结尾。5. Java中的变量可分为两种数据类型,分别是(基本数据类型 )和(引用数据类型 )。6. 在Java中,byte类型数据占(1)个字节,short类型数据占( 2 )个字节,int类型数据占( 4 )个字节,long类型占( 8 )字节。7. 在逻辑运算符中,运算符( & )和( && )用于表示逻辑与,( | )和( |)表示逻辑或。8. 若x=2,则表达式(x+)/3的值是( 0 )。9. 若int a=2;a+=3;执行后,变量a的值为(5 )。10. 表达式6/3.0的结果是( 2.0 )。11. 如果要得到表达式25/4的浮点数结果,表达式应改为( 25/4.0 )。12. 表达式1%5的结果是( 1 )。13. 设有“int a = 2; double d=2.0;”,下列每个表达式都是独立的,填写表达式的执行结果。(1) a=46/9; ( 5 )(2) a=46%9+4*4-2;( 15 )(3) a=45+43%5*23*3%2;( 46 )(4) a%=3/a+3; ( 2 )(5) d=4+d*d+4; ( 12.0 )(6) d+=1.5*3+(+a); ( 9.5 )(7) d-=1.5*3+(+a); ( -5.5 )14. 下列语句输出的结果是( 30+20=3020 )。System.out.println(“30+20=”+30+20);15. 执行以下三条语句后,a=( 3 ),b=( 1 ),c=( 3 )。int a =1; int b =a+ ; int c=+a;16. 以下语句输出( He said ”Java is fun.” )。System.out.println(“He said”Java is fun.”);17. 已知:int a =8,b=6; 则:表达式+a-b+的值为( 3 )。18. 已知:boolean b1=true,b2; 则:表达式! b1 && b2 |b2的值为( false )。19. 已知:double x=8.5,y=5.8; 则:表达式x+>y-值为( true )。20. 执行int x, a = 2, b = 3, c = 4;x = +a + b+ + c+; 结果是(x=10,a=3,b=4,c=5)。21. Java中的显式类型转换是(从低类型向高类型转换),从高类型向低类型转换是(隐式类型转换 )。22. 执行下列程序代码的输出结果是(i=11 j=11 a=10)。int a = 10; int i, j; i = +a; j = a-;23. 执行完boolean x=false; boolean y=true; boolean z=(x&&y)&&(!y) ; int f=z=false?1:2;这段代码后,z与f的值分别是( false )和( 1 )。24. 对于在程序运行过程中一直不变的值,可以声明成( 常量 )确保它的值不会被修改,在声明时使用( final ),还必须( 赋初值 )。25. 在声明类中,方法之内的变量就叫做(局部 )变量。26. 数据类型转换时,两种数据类型( 兼容 )并且( 目标 )类型大于( 源)类型,则可以自动类型转换。27. 字面量都有默认类型,整型字面量的默认类型为(int ),浮点型字面量的默认类型是( double)。28. long类型字面量末尾字母是( L ),float类型字面量末尾字母是( F ),double的是( D )。二、 选择题1. 以下选项中,哪些属于合法的标识符?(多选)(AD )A、Hello_World B. class C.123username D.username1232. 下列哪些是合法的标识符(多选)( ABCD )A、applet B、Applet C、$4 D、$443. 下列哪个不是Java的关键字( D )A、else B、public C、int D、radius4. byte类型数据中最大的数据为( A )A、127 B、128 C、255 D、2565. short类型数据中最大数据为( C )A、65535 B、65536 C、32767 D、327686. 表达式25/4的结果是( B )A、6.25 B、6 C、6.0 D、以上都不对7. 以下关于变量的说法错误的是?( C )A、变量名必须是一个有效的标识符 B、变量在定义时可以没有初始值C、变量一旦被定义,在程序中的任何位置都可以被访问D、在程序中,可以将一个byte类型赋值给一个int类型的变量,不需要特殊声明8. 下面的运算符中,用于执行除法运算的是哪个?( A )A、/ B、 C、% D、*9. double类型的数据占用( B )字节。A、4 B、8 C、1 D、210. ”float f=15.6F; int i=(int)f; System.out.println(“f=”+f);”执行后的结果是( A )。A、f=15.6 B、f=15 C、f=15.0 D、以上都不对11. 下列语句正确的是( A )。A、boolean b=true; B、double x=2.5f; C、char c=A D、float y=0.8d12. Java程序中,计算表达式”-1-3*10/5-1”后的结果是( A )。A、-8 B、-6 C、7 D、813. 下面( D )赋值语句不会出现编译警告或错误。A、float f=1.3 B、char c=a C、byte b=257 D、int i=1014. 下列标识符(名字)命名原则中,正确的是( C )。A类名的首字母小写 B接口名的首字母小写C常量全部大写 D变量名和方法名的首字母大写15. 下面哪种注释方法能够支持javadoc命令?( C )A/ B/*.*/ C/*.*/ D/*.*/16. 下面哪些标识符在Java语言中是合法的?( AB )Apersons$ BTwoUsers C*point Dinstanceof F.end-line17. 下列( D )是合法标识符。A2end B-hello C=AB D整型变量 18. 若定义有变量float f1,f2 = 8.0F,则下列说法正确的是( B )。A变量f1,f2均被初始化为8.0 B变量f1没有被初始化,f2被初始化为8.0C变量f1,f2均未被初始化 D变量f2没有被初始化,f1被初始化为8.019. 基本数据类型short的取值范围是( B )。A(-256) 255 B(-32 768) 32 767 C(-128) 127 D065 53520. 下列( B )是不能通过编译的语句。Adouble d = 545.0; Bchar a1 = “c”; Cint i = 321; Dfloat f1 =45.0f;21. 若定义有short s; byte b; char c; 则表达式s * b + c的类型为( C )。Achar Bshort Cint Dbyte22. 下列代表十六进制整数的是( C )。A B2008 C0xfa08 Dfb0523. 哪些是合法的标识符(多选)( AEFHIJ )。 A、Name B、2hello C、class D、a-public E、Sex F、MIN_VALUE G、age# H、_id I、getName j、$main24. 下列选项中为byte类型的取值范围的是( C )。 A、1255 B、065535 C、-128127 D、-327683276725. 下列选项中,Java语句错误的是( C )。 A、double a=3.5 B、char a=322 C、flat a=1.0 D、double a=126. 下列选项中,合法的字符类型是( B )。 A、ab B、b C、”123” D、”u123f”27. String c=1+2+”6”+5;如果输出c,那么c的值是( C )。 A、1265 B、14 C、365 D、语法错误28. 下列选项中,赋值语句不会出现编译错误的是( C )。A、float a=2.0 B、char c=”a” C、byte b=25 D、boolean d=129. 下列选项中,赋值语句产生编译错误的是(AB)。A、char a=abc B、byte b=1234 C、long c=0x123 D、double d=1e-3f30. 下列哪项不属于Java语言的基本数据类型?( B )Aint BString Cdouble Dboolean 31. 下列哪项不是int类型的字面量?( A )Au03A6 B077 COxABBC D20 32. 下列哪项不是有效的标识符?( B )AuserName B2test C$change D_password33. 下列哪项是Java语言中所规定的注释样式?(多选)( ACD )A单行注释 B-单行注释C * D /* *单行或多行注释 *文档注释 */ */ 34. 下列哪项不是Java语言的关键字?( B )Agoto Bsizeof Cinstanceof Dvolatile35. 现有如下五个声明: Linel: int a_really_really_really_long_variable_name=5 ; Line2: int _hi=6; Line3: int big=Integer. getlnteger("7”); Line4:int $dollars=8; line5: int %opercent=9; 哪行无法通过编译?( D ) ALine1 BLine3 C. Line4 D. Line5 36. 现有: 1. class Top 2 static int x=l; 3. public Top (int y) x*=3; 4. 5. class Middle extends Top 6. public Middle() x+=1; 7. public static void main (String args) 8. Middle m = new Middle(); 9. System. out .println (x); 1O. 11. 结果为( D ) A.1 B. 2 C3 D编译失败 37. 现有: 1 class Passer 2 static final int X=5; 3. public static void main (String args) 4 new Passer()go (x); 5. System. out .print (x); 6, 7 void go (int x) 8 System. out .print(x+); 9 10. 结果是什么?( A )A55 B56 C65 D66 38. 现有: 1 class Wrench 2. public static void main(String args) 3. Wrench w=new Wrench(); Wrench w2=new Wrench(); 4 w2=go (w, w2); 5. System.out.print (w2=w); 6 7. static Wrench go (Wrench wrl, Wrench wr2) 8. Wrench wr3=wrl; wrl=wr2; wr2=wr3; 9 return wr3; 10 11 结果是什么?( B )A. false Btrue C.编译失败 D运行的时候有异常抛出 39. 现有: 1 class Wrench2 2 int size; 3. public static void main(String args) 4. Wrench2 w=new Wrench2(); 5 w.size=II; 6. Wrench2 w2=go(w, w.size); 7. System. out .print (w2. size); 8 9. static Wrench2 go(Wrench2 wr. int s) 10. S=12; 11. return wr; 12. 13. 结果为( A )A. 11 B. 12 c编译失败。 D运行时异常被抛出 40. 现有: class Test2 f public static void main (String args) short a,b,C; a=l; b=2; C=a+b; a+=2: 以上代码中,哪一句是错误的?( B )Aa=1: BC=a+b; C a+=2; D. short a,b,C; 41. 表达式:1-2/5+2*5的结果是哪项?( D )A. 10.6 B. 9.8 C. 9 D.1142. 现有代码片段: String s="123"; String sl=S+456; 请问sl的结果是哪项?( A )A. B. 579 C编译错误 D运行时抛出异常43. 基本数据类型float的包裹类是哪项?( C )A Integer B Double C Float D Character44. 现有: 1 class Test