Java练习题及答案
java试题库及答案
java试题库及答案Java试题库及答案一、单选题1. Java语言的特点是什么?A. 面向过程B. 面向对象C. 编译型语言D. 解释型语言答案:B2. 在Java中,用哪个关键字可以定义一个类?A. publicB. classC. voidD. int答案:B3. 下列哪个是Java的合法标识符?A. 2classB. class#2C. _class2D. class:2答案:C4. Java中的main()方法必须定义为什么类型的参数?A. intB. StringC. voidD. None答案:D5. 在Java中,哪个关键字用于实现异常处理?A. tryB. catchC. throwD. All of the above答案:D二、多选题6. 下列哪些是Java的基本数据类型?A. intB. StringC. floatD. boolean答案:A, C, D7. 在Java中,哪些是合法的数组初始化方式?A. int[] arr = new int[10];B. int arr[] = {1, 2, 3};C. int arr = {1, 2, 3};D. int arr = new int[3]{1, 2, 3};答案:A, B8. 下列哪些是Java的控制流语句?A. if-elseB. switch-caseC. forD. try-catch答案:A, B, C三、简答题9. 简述Java的垃圾回收机制。
答案:Java的垃圾回收机制是一种自动内存管理功能,它周期性地执行,回收不再使用的对象所占用的内存空间。
垃圾回收器会跟踪每个对象的引用,当对象的引用计数为0时,即没有任何引用指向该对象,垃圾回收器就会在下一次执行时回收该对象占用的内存。
10. 什么是Java的接口?它有什么作用?答案:Java中的接口是一种完全抽象的类,它不包含任何实现代码,只包含常量和抽象方法的声明。
JAVA习题题目及答案
第1章问答题及作业题第1章问答题1、发明Java语言的原因是什么?发明Java语言的主要贡献者是谁?2、“Java编译器将源文件编译生成的字节码是机器码”,这句话正确吗?3、Java程序的主类必须含有怎样的方法?4、“Java应用程序必须含有一个类是public类”,这句话正确吗?5、“Java Applet程序的主类必须是public类”,这句话正确吗?6、请叙述Java源文件的命名规则。
7、源文件生成的字节码在运行时都加载到内存中吗?8、怎样编写加载运行Java Applet的简单网页?9、编译器使用“-source”参数的作用是什么?“-source”参数的默认取值是什么?第1章作业题1.参照例1-1编写一个Java应用程序,程序能在命令行中输出“早上好,Good Morning”。
2.参照例1-2编写一个Java Applet程序,程序能在浏览器中显示“你好,Hello”。
第2章问答题及作业题第2章问答题1、什么是标识符?标识符的规则是什么?2、什么是关键字?请说出5个关键字。
3、Java的基本数据类型是什么?4、下列哪些语句是错误的?int x=120;byte b=120;b=x;5、下列哪些语句是错误的?float x=12.0;float y=12;double d=12;y=d;6、下列两条语句的作用是等价的吗?char x=97;char x=’a’;7、下列语句输出的结果是什么?int a=97;byte b1=(byte)128;byte b2=(byte)-129;System.out.printf(“%c,%d,%d”,a,b1,b2);8、数组是基本数据类型吗?怎样获取一维数组的长度?9、假设有两个int类型数组:int[] a=new int[10];int[] b=new int[8];b=a;a[0]=100;b[0]的值一定是100吗?10、下列两条语句的作用等价吗?int[] a={1,2,3,4,5,6,7,8};int[] a=new int[8];}第2章作业题1.参照例2-1编写一个Java应用程序,输出俄文字母表。
java基础50道经典练习题及答案
java基础50道经典练习题及答案Java基础50道经典练习题及答案Java作为一门广泛应用于软件开发领域的编程语言,其基础知识的掌握对于程序员来说至关重要。
为了帮助大家更好地理解和掌握Java的基础知识,下面将介绍50道经典的Java练习题及其答案。
1. 编写一个Java程序,打印输出"Hello, World!"。
```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```2. 编写一个Java程序,计算并打印输出1到100之间所有偶数的和。
```javapublic class SumOfEvenNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}System.out.println("Sum of even numbers: " + sum);}}```3. 编写一个Java程序,判断一个整数是否为素数。
```javapublic class PrimeNumber {public static void main(String[] args) {int number = 17;boolean isPrime = true;for (int i = 2; i <= Math.sqrt(number); i++) {if (number % i == 0) {isPrime = false;break;}}if (isPrime) {System.out.println(number + " is a prime number.");} else {System.out.println(number + " is not a prime number."); }}```4. 编写一个Java程序,将一个字符串反转并输出。
(部选)JAVA各章习题及答案
【编程分析】 要编写 Java Application 类型的程序,需要在 Exclipse 中创建一个 Java Application 类型的工程,这时 Exclipse 会自动创 建程序框架,该框架包含一个公共类,其中包含一个 main()方法。删除 main()方法中自动生成的代码,编写自己的代码即可。由于该 程序要求输出一句话,因此在 main()方法中直接调用 System.out.println()或 System.out.print()方法即可实现。 【参考程序】 public class X3_1 { public static void main(String args[]){ System.out.println("This is my first Java Application!"); } } 【运行结果】 This is my first Java Application! 第2章 一、选择题 1.下列( D )是合法的标识符? (A)12class (B)void (C)-5 (D)_blank 【解析】根据 Java 标识符的构成规则确定。 2.下列( B )不是 Java 中的保留字? (A)if (B)sizeof (C)private (D)null 【解析】根据 Java 保留字表进行选择。 3.下列( C )不是合法的标识符? (A)$million (B)$_million (C)2$_million (D)$2_million 【解析】根据 Java 标识符的构成规则确定。 4.下列选项中, ( B )不属于 Java 语言的基本数据类型? (A)整数型 (B)数组 (C)浮点型 (D)字符型 【解析】根据 Java 语言的基本数据类型包含的类别选取。 5.下列关于基本数据类型的说法中,不正确的一项是( D ) 。 (A)boolean 类型变量的值只能取真或假 B)float 是带符号的 32 位浮点数 C)double 是带符号的 64 位浮点数 D)char 是 8 位 Unicode 2
Java练习及参考答案
Java练习及参考答案1,编写程序,判断给定的某个年份是否是闰年。
闰年的判断规则如下:(1)若某个年份能被4整除但不能被100整除,则是闰年。
(2)若某个年份能被400整除,则也是闰年。
import java.util.Scanner;class Bissextile{public static void main(String[] arge){System.out.print("请输入年份");int year; //定义输入的年份名字为“year”Scanner scanner = new Scanner(System.in);year = scanner.nextInt();if (year<0||year>3000){System.out.println("年份有误,程序退出!"); System.exit(0);}if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile");elseSystem.out.println(year+" is not bissextile ");}}2,给定一个百分制的分数,输出相应的等级。
90分以上 A级80~89 B级70~79 C级60~69 D级60分以下 E级import java.util.Scanner;class Mark{public static void main(String[] args){System.out.println("请输入一个分数");//定义输入的分数为“mark”,且分数会有小数double mark;Scanner scanner = new Scanner(System.in);mark = scanner.nextDouble();//判断是否有输入错误。
JAVA各章习题及答案-全解
第1章Java入门一、选择题1.下列选项中,不属于Java语言特点的一项是〔C 〕.〔A〕分布式〔B〕安全性〔C〕编译执行〔D〕面向对象[解析]Java程序采用解释执行的方法.在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行.2.在Java语言中,〔 C 〕是最基本的元素?〔A〕方法〔B〕包〔C〕对象〔D〕接口[解析]构成Java程序的基本元素类〔抽象的对象〕. 3.编译一个定义了3个类和10个方法的Java源文件后,会产生〔D 〕个字节码文件?扩展名是〔D 〕?〔A〕13个字节码文件,扩展名为.class〔B〕1个字节码文件,扩展名为.class〔C〕3个字节码文件,扩展名为.java〔D〕3个字节码文件,扩展名为.class[解析]源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class.4.在创建Applet应用程序时,需要用户考虑问题是〔B 〕.〔A〕窗口如何创建〔B〕绘制的图形在窗口中的位置〔C〕程序的框架〔D〕事件处理[解析]创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以与事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定.5.Java语言属于〔B 〕种语言?〔A〕面向机器的语言〔B〕面向对象的语言〔C〕面向过程的语言〔D〕面向操作系统的语言[解析]Java语言是一种纯面向对象的语言.6.下列关于Application和Applet程序的说法中不正确的一项是〔B 〕.<A>Application使用解释器java.exe<B>Application不使用独立的解释器〔C〕Applet在浏览器中运行〔D〕Applet必须继承Java的Applet类[解析]Application程序包含main<>方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行. 7.下列选项中,不属于Java核心包的一项是〔A 〕.〔A〕javax.swing 〔B〕java.io〔C〕java.utile 〔D〕ng[解析]凡是以java开头的包都是Java核心包,以javax 开头的包则属于Java扩展包.8.下列描述中,不正确的是〔A 〕.〔A〕不支持多线程〔B〕一个Java源文件不允许有多个公共类〔C〕Java通过接口支持多重继承〔D〕Java程序分为Application和Applet两类[解析]Java是支持多线程的语言.9.阅读下列代码,选出该代码段正确的文件名〔C 〕.class A{void method1<>{System.out.println<"Method1 in class A">;}}public class B{void method2<>{System.out.println<"Method2 in class B">;}public static void main<String[] args>{System.out.println<"main<> in class B">;}}〔A〕A.java 〔B〕A.class〔C〕B.java 〔D〕B.class[解析]Java源文件名必须和公共类的名字完全一样,源文件的扩展名为.java. 10.编译下面源程序会得到哪些文件〔D 〕?class A1{}class A2{}public class B{public static void main<String[] args>{}}〔A〕只有B.class文件〔B〕只有A1.class 和A2.class文件〔C〕编译不成功〔D〕A1.class、A2.class和B.class文件[解析]由于该程序包含3个类,每个类编译后都会生成1个字节码文件,因此编译后会生成以这3个类名命名的字节码文件.11.编译Java程序时,用于指定生成class文件位置的选项是〔 A 〕.A.-d B.-g C.-verbose D.-nowarn 12.下列标识符〔名字〕命名原则中,正确的是〔 C 〕. A.类名的首字母小写 B.接口名的首字母小写C.常量全部大写 D.变量名和方法名的首字母大写13.下面哪种注释方法能够支持javadoc命令?〔C〕A.// B./*...*/ C./**...*/ D./**...**/ 14.下面哪些选项是正确的main方法说明?〔D〕A.void main<>B.private static void main<String args[]> C.public main<String args[]> D.public static void main<String args[]>二、填空题1.Java程序的编译和执行模式包括2点,是半编译和半解释.2.Java语言支持TCP/IP 协议,从而使得Java程序在分布式环境中能够很方便地访问处于不同地点的对象. 3.开发Java程序的一般步骤是:源程序编辑、生成字节码和解释执行.4.每个Java Application程序可以包括许多方法,但是必须有且只能有一个main<> 方法,统一格式为public static void main<String[] args> ,它是程序执行的入口.5.JVM把字节码程序与各种不同的操作系统和硬件分开,使得Java程序独立于平台.6.在Java程序中,能在WWW浏览器上运行的是Applet 程序.7.Java源程序文件和字节码文件的扩展名分别为.java 和.class .8.如果在Java程序中需要使用java.utile包中的所有类,则应该在程序开始处加上import java.utitle.* 语句.三、判断题1.Java语言具有较好的安全性和可移植性与与平台无关等特性.〔√ 〕2.Java语言的源程序不是编译型的,而是编译解释型的.〔√ 〕3.Java Application程序中,必有一个主方法main<>,该方法有没有参数都可以.〔√ 〕4.java.util.Scanner<System.in>可以接收用户从键盘输入的简单数据.〔√ 〕5.Java程序中不区分大小写字母.〔× 〕6.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行.〔√ 〕7.System类中的println<>方法分行显示信息,而print<>方法不分行显示信息.〔√ 〕8.当前路径的标识是".".〔√ 〕9.java命令不区分大小写,而javac命令区分大小写.〔× 〕10.printf<>和 format<>方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流〔S ystem.out对象〕中.〔√ 〕11.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class.〔× 〕第2章标识符与简单数据类型一、选择题1.下列〔D 〕是合法的标识符?〔A〕12class 〔B〕void 〔C〕-5 〔D〕_blank 2.下列〔B 〕不是Java中的保留字?〔A〕if 〔B〕sizeof 〔C〕private 〔D〕null 3.下列〔C 〕不是合法的标识符?〔A〕$million〔B〕$_million〔C〕2$_million 〔D〕$2_million4.下列选项中,〔B 〕不属于Java语言的基本数据类型?〔A〕整数型〔B〕数组〔C〕浮点型〔D〕字符型5.下列关于基本数据类型的说法中,不正确的一项是〔D 〕.〔A〕boolean类型变量的值只能取真或假〔B〕float是带符号的32位浮点数〔C〕double是带符号的64位浮点数〔D〕char是8位Unicode字符[解析]Java中的字符采用的是16位的Unicode字符. 6.下列关于基本数据类型的取值范围的描述中,正确的一个是〔B 〕.〔A〕byte类型的取值范围是-128~128〔B〕boolean类型的取值范围是真或假〔C〕char类型的取值范围是0~65536〔D〕short类型的取值范围是-32767~32767[解析]根据每种类型占几个字节即可推算出其取值范围,如byte类型占1个字节,即共包含28个数值,其取值范围范围应为-128~127,其他类型也是如此.7.下列关于Java语言简单数据类型的说法中,正确的一项是〔A 〕.〔A〕以0开头的整数代表8进制整型常量〔B〕以0x或0X开头的整数代表8进制整型常量〔C〕boolean类型的数据作为类成员变量的时候,相同默认的初始值为true〔D〕double型数据占计算机存储的32位8.下列Java语句中,不正确的一项是〔C 〕.〔A〕$e, a, b = 10; 〔B〕char c, d = ‘a’;〔C〕float e = 0.0d; 〔D〕double c = 0.0f;[解析]不能将double类型的常量赋值给float类型的变量.9.在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是〔D 〕.〔A〕byte的默认值是0 〔B〕boolean的默认值是false 〔C〕char类型的默认值是’\0’〔D〕long类型的默认值是0.0L10.下列语句中不正确的一个是〔B 〕.〔A〕float f = 1.1f; 〔B〕byte b = 128;〔C〕double d = 1.1/0.0; 〔D〕char c = <char>1.1f;[解析]bytel类型变量的取值范围是-128~127. 11.下列表达式1+2+ "aa"+3的值是〔B 〕.〔A〕"12aa3" 〔B〕"3aa3 " 〔C〕"12aa" 〔D〕"aa3"[解析]整数和整数相加得到两个整数的和,而整数和字符串相加得到的是字符串.12.已知y=2, z=3, n=4,则经过n=n+ -y*z/n运算后n的值为〔A 〕.〔A〕3〔B〕-1 〔C〕-1 〔D〕-3[解析]根据运算符的优先级,该表达式相当于n=n+ <<-y>*z>/n.13.已知a=2, b=3,则表达式a%b*4%b的值为〔A 〕.〔A〕2 〔B〕1 〔C〕-1 〔D〕-2[解析]根据运算符的优先级,该表达式相当于<<a%b>*4>%b.14.已知x=2, y=3, z=4,则经过z- = --y – x--运算后,z的值为〔D 〕.〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]在表达式运算过程中,--y的值变为2,x—的值还是2,等号右侧运算后的值为0,因此z的值没有变化. 15.表达式<12==0> && <1/0 < 1>的值为〔B 〕.〔A〕true B〕false 〔C〕0 〔D〕运行时抛出异常[解析]由于<12==0>的值为false,因此整个表达式发生短路运算,即<1/0 < 1>就没有参与运算,整个表达式的值为false.16.设有类型定义short i=32; long j=64; 下面赋值语句中不正确的一个是〔B 〕〔A〕j=i; 〔B〕i=j; 〔C〕i=<short>j; 〔D〕j=<long>i;[解析]long类型的数据不能自动转变为short类型,因此不能将long类型的变量直接赋值给short类型. 17.现有1个char类型的变量c1=66和1个整型变量i=2,当执行c1=c1+<char>i;语句后,c1的值为〔D 〕.〔A〕'd' 〔B〕'D' 〔C〕68 〔D〕语句在编译时出错[解析]两个字符型的数据相加,得到的是一个整数,而如果把整数再赋值给一个字符型变量则会在编译时出错. 18.下列说法中,正确的一项是〔D 〕.〔A〕字符串"\\abcd" 的长度为6〔B〕False是Java的保留字〔C〕123.45L代表单精度浮点型〔D〕False是合法的Java标识符[解析]Java语言对字符的大小写是敏感的,False不是false,因此False是合法的Java标识符.19.以下的变量定义语句中,合法的是〔D 〕〔A〕float _*5 = 123.456F; 〔B〕byte $_b1 = 12345; 〔C〕int _long_ = 123456L;〔D〕double d = Double.MAX_V ALUE;[解析]〔A〕中_*5不是合法的标识符,〔B〕中12345超出byte范围,〔C〕中不能将long类型的常量赋值给int 型的变量.20.下列关于运算符优先级的说法中,不正确的一个是〔C 〕〔A〕运算符按照优先级顺序表进行运算〔B〕同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的〔C〕同一优先级的运算符在表达式中都是按照从右到左的顺序进行运算的〔D〕括号可以改变运算的优先次序[解析]同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的.二、填空题1.变量是Java程序的基本存储单元之一,变量的主要类型包括2大类:字符型和数值型.2.Java语言的整数类型变量和常量一样,各自都包括4种类型的数据,它们分别是byte、int 、short 和long. 3.boolean 类型数据不可以做类型转换.4.在Java语言的基本数据类型中,占存储空间最少的类型是boolean ,该类型占用的存储空间为 1 位. 5.Java语言中的保留字具有特殊意义和作用,不能作为普通标识符使用.6.在Java语言中,浮点类型数据属于实型数据,可以分为单精度和双精度两种.7.char类型的数据可以表示的字符数共为65536 .8.定义初始值为10的8次方的常整型变量iLong的语句是final iLong = 100000000L.9.Java语言中的数据类型转换包括自动转换和强制转换两种.10.Java中的字符采用的是16位的Unicode 编码.11.数据类型中存储空间均为64位的两种数据类型是long 和double .12.表达式9*4/ -5%5的值为-2 .〔十进制表示〕13.表达式5&2的值为0 .〔十进制表示〕14.表达式42<<4的值为672 .〔十进制表示〕15.表达式11010011>>>3的值为11010 .〔二进制表示〕16.表达式7|3的值为7 .〔十进制表示〕17.表达式10^2的值为8 .〔十进制表示〕18.Java语言中的逻辑与<&&>和逻辑或<||>运算采用短路方式进行运算.19.若a、b为int型变量,并且已分别赋值为5和10,则表达式<a++>+<++b>+a*b的值为82 .20.假设i=10, j=20, k=30,则表达式!<i<j+k> || !<i+10<=j> 的值为false .三、判断题1.Java语言使用的是Unicode字符集,每个字符在内存中占8位.〔×〕2.Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变.〔√〕3.所有的变量在使用前都必须进行初始化.〔×〕4.已知byte i = <byte>127; i = i +1;这两个语句能被成功编译.〔√〕5.String str="abcdefghi"; char chr=str.charAt<9>; 〔×〕6.char[] chrArray={ 'a', 'b', 'c', 'd', 'e', 'f', 'g'}; char chr=chrArray[6]; 〔√〕7.int i,j; boolean booleanValue=<i==j>; 〔×〕8.int intArray[]={0,2,4,6,8}; int length=int Array.length<>;〔×〕9.String str="abcedf"; int length=str.length; 〔×〕10.short shortValue=220; byte byteValue=shortValue; 〔×〕11.int[] intArray[60]; 〔×〕12.char[] str="abcdefgh"; 〔×〕13.说明或声明数组时不分配内存大小,创建数组时分配内存大小.〔√〕14.强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型.〔√〕第3章运算符、表达式与语句一、选择题1.下列〔D 〕不属于Java语言流程控制结构?〔A〕分支语句〔B〕跳转语句〔C〕循环语句〔D〕赋值语句[解析]Java语言流程控制结构只包括分支、循环和跳转三种语句.2.假设a是int类型的变量,并初始化为1,则下列〔D 〕是合法的条件语句?〔A〕if<a>{} 〔B〕if<a<<=3>{}〔C〕if<a=2>{}〔D〕if<true>{}[解析]条件语句中的"条件表达式"只能是boolean类型,不能是其他类型.3.下列说法中,不正确的一个是〔C 〕.〔A〕switch语句的功能可以由if…else if语句来实现〔B〕若用于比较的数据类型为double型,则不可以用switch语句来实现〔C〕if …else if语句的执行效率总是比switch语句高〔D〕case子句中可以有多个语句,并且不需要大括号{}括起来[解析]语句执行效率高低要根据具体语句来确定,不能简单地说if…else if语句的执行效率总是比switch语句高. 4.设a、b为long型变量,x、y为float型变量,ch为char 类型变量且它们均已被赋值,则下列语句中正确的是〔 B 〕.〔A〕switch<x+y> {} 〔B〕switch<ch+1> {}〔C〕switch ch {} 〔D〕switch<a+b>; {}[解析]switch后面的表达式必须放在括号<>中,且表达式的类型只能是byte、short、int和char类型,不能是其他类型.5.下列循环体执行的次数是〔 C 〕.int y=2, x=4;while<--x != x/y>{ }〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]第1次执行while时,--x的值为3,3/2=1,满足等号两端值不等的条件,执行一次循环体;第2次执行while 时,--x的值为2,2/2=1,条件满足,又执行一次循环体;第3次执行while时,--x的值为1,1/2=0,条件满足,再次执行一次循环体;第4次执行while时,--x的值为0,0/2=0,条件不满足满足,结束循环.因此在这个循环语句执行的过程中,循环体共执行了3次.6.下列循环体执行的次数是〔 B 〕.int x=10, y=30;do{ y-=x;x++; }while<x++<y-->;〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]执行1次循环体后,y的值为20,x值为11,然后执行while,此时x++的值为11,y—的值为20,因此x++<y—条件满足,判断完后,x的值变为12,y的值变为19;接着执行第2次循环体,执行完第2次循环体后,y的值为9,x值为13,然后执行while,此时x++的值为13,y—的值为9,因此x++<y—条件不满足,结束循环.因此在这个循环语句执行的过程中,循环体共执行了2次.7.已知如下代码:switch<m>{case0:System.out.println<"Condition 0">;case1:System.out.println<"Condition 1">;case2:System.out.println<"Condition 2">;case3:System.out.println<"Condition3">;break;default:System.out.println<"OtherCondition">; }当m的值为< D >时,输出"Condition 3"〔A〕2 〔B〕0、1 〔C〕0、1、2〔D〕0、1、2、3 [解析]当m的值为0、1、2、3时,都能输出"Condition 3",因为case 0、case 1、case 2后面的语句都没有break,因此可以继续向后执行.二、填空题1.跳转语句包括break、continue、return和throw 2.switch语句先计算switch后面的表达式的值,再和各case 语句后的值做比较.3.if语句合法的条件值是boolean 类型. 4.continue语句必须使用于循环语句中. 5.break语句有两种用途:一种从switch 语句的分支中跳出,一种是从循环语句内部跳出.6.do -while循环首先执行一遍循环体,而while循环首先判断表达式的值 . 7.与C++语言不同,Java语言不通过goto 语句实现跳转.8.每一个else子句都必须和它前面的一个距离它最近的if 子句相对应.9.在switch语句中,完成一个case语句块后,若没有通过break语句跳出switch语句,则会继续执行后面的case 语句块.10.在for循环语句中可以声明变量,其作用域是for循环体.第4章类与对象一、选择题1.下列哪种类成员修饰符修饰的变量只能在本类中被访问?〔D 〕〔A〕protected 〔B〕public 〔C〕default〔D〕private2.在Java语言中,哪一个包中的类是自动导入的?〔 A 〕A〕ng B〕java.awtC〕java.io D〕java.applet[解析]只有ng包中的类能够被自动导入.3.给出下面的程序代码:public class X4_1_3 {private float a;public static void m< >{ }}如何使成员变量a被方法m< >访问〔 C 〕〔A〕将private float a改为protected float a〔B〕将private float a改为public float a〔C〕将private float a改为static float a〔D〕将private float a改为float a[解析]static类型的方法只能访问static类型的数据成员.4.有一个类B,下面为其构造方法的声明,正确的是〔 B 〕.〔A〕void B<int x> {} 〔B〕B<int x> {}〔C〕b<int x> {} 〔D〕void b<int x> {}5.下面关于类的说法,不正确的是〔 C 〕.〔A〕类是同种对象的集合和抽象〔B〕类属于Java语言中的复合数据类型〔C〕类就是对象〔D〕对象是Java语言中的基本结构单位[解析]类是对象的抽象,对象是类的实例6.下面关于方法的说法,不正确的是〔C 〕. 〔A〕Java中的构造方法名必须和类名相同〔B〕方法体是对方法的实现,包括变量声明和合法语句〔C〕如果一个类定义了构造方法,也可以用该类的默认构造方法〔D〕类的私有方法不能被其他类直接访问[解析]类中一旦用户定义了构造方法,该类默认的构造方法就不存在了,除非用户再自定义该类的默认构造方法. 7.关于内部类,下列说法不正确的是〔A 〕.〔A〕内部类不能有自己的成员方法和成员变量〔B〕内部类可用private或protected修饰符修饰〔C〕内部类可以作为其他类的成员,而且可访问它所在的类的成员〔D〕除static内部类外,不能在类内声明static成员8.定义外部类时不能用到的关键字是〔 C 〕.〔A〕final 〔B〕public 〔C〕protected 〔D〕abstract[解析]定义外部类不能使用protected修饰符.9.为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为〔 D 〕〔A〕abstract void f<> 〔B〕public void f<>〔C〕final void f<> 〔D〕static void f<> [解析]只有static类型的方法才可以直接使用类名来引用.10.定义一个公有double型常量PI,哪一条语句最好?〔 B 〕〔A〕public final double PI;〔B〕public final static double PI=3.14;〔C〕public final static double PI;〔D〕public static double PI=3.14;[解析]用public final static来定义常量,既可以节省存储空间,又可以保证数值不会被改变.二、填空题1.对象是对事物的抽象,而类是对对象的抽象和归纳.2.从用户的角度看,Java源程序中的类分为两种:系统定义的类和用户自己定义的类.3.一个类主要包含两个要素:数据成员和成员方法.4.创建包时需要使用关键字package .5.类中的构造方法是一个特殊的方法,该方法的方法名和类名相同.6.如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个默认构造方法.这个方法没有形式参数,也没有任何具体语句,不能完成任何操作.7.静态数据成员被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中.因此,一个类的任何对象访问它时,存取到的都是相同〔相同/不同〕的数值.8.静态数据成员既可以通过对象名来访问,也可以通过类名直接访问它.9.定义常量时要用关键字final ,同时需要说明常量的数据类型并指出常量的具体值 .10.方法体内定义变量时,变量前不能加修饰符;局部变量在使用前必须明确赋值,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个默认的值.11.static方法中只能引用static 类型的数据成员和static 类型的成员方法;而非static类型的方法中既可以引用static 类型的数据成员和成员方法,也可以引用非static 类型的数据成员和成员方法.12.引用static类型的方法时,可以使用类名做前缀,也可以使用对象名做前缀.13.当程序中需要引用java.awt.event包中的类时,导入该包中类的语句为import java.awt.event.*.14.定义类时需要class 关键字,继承类时需要extends 关键字,实现接口时需要关键字implements .三、判断题1.类是一种类型,也是对象的模板.〔√〕2.类中说明的方法可以定义在类体外.〔×〕3.实例方法中不能引用类变量.〔×〕4.创建对象时系统将调用适当的构造方法给对象初始化.〔√〕5.使用运算符new创建对象时,赋给对象的值实际上是一个引用值.〔√〕6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值.〔√〕7.对象可作方法参数,对象数组不能作方法参数.〔×〕8.class是定义类的惟一关键字.〔√〕9.Java语言会自动回收内存中的垃圾.〔√〕第5章子类与继承一、选择题1.已知有下面类的说明:public class X5_1_1 extends x{private float f =10.6f;int i=16;static int si=10;public static void main<String[] args> {X5_1_1 x=new X5_1_1<>;}}在main<>方法中,下面哪条语句的用法是正确的?〔 A 〕A.x.f B.this.si C.X5_1_1.i D.X5_1_1.f[解析]由于x是在main方法内部定义的对象,因此它可以引用类的非static类型的属性,因此选A,而this和super不能在main方法中使用,使用类名只能引用本类的静态属性,因此B、C、D不对. 2.下列程序的运行结果是〔C 〕.public class X5_1_2 extends x{int ab<>{static int aa=10;aa++;System.out.println<aa>;}public static void main<String[] args> { X5_1_2 x=new X5_1_2<>;x.ab<>;}}A.10 B.11C.编译错误D.运行成功,但不输出[解析]方法体内的局部变量不能使用static修饰符.3.下面关于接口的说法中不正确的是〔C 〕.A.接口中所有的方法都是抽象的B.接口中所有的方法都是public访问权限C.子接口继承父接口所用的关键字是implements D.接口是Java中的特殊类,包含常量和抽象方法[解析]子接口继承父接口所用的关键字也是extends,只有类实现接口时才使用implements.4.区分类中重载方法的依据是〔 A 〕.A.形参列表的类型和顺序B.不同的形参名称C.返回值的类型不同D.访问权限不同[解析]形参表的类型和顺序不同时区分重载方法的唯一标志.5.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?〔 B 〕A.能,能B.能,不能C.不能,能D.不能,不能[解析]子类对象可以直接赋值给父类对象,而父类对象不能直接赋值给子类对象.6.Java语言类间的继承关系是〔 A 〕.A.单继承B.多重继承C.不能继承D.不一定[解析]Java语言类间的继承关系是单继承,但一个类可以实现多个接口.7.Java语言接口间的继承关系是〔B 〕.A.单继承B.多重继承C.不能继承D.不一定[7.解析]Java语言接口间的继承关系允许多重继承. 8.一个类实现接口的情况是〔A 〕.A.一次可以实现多个接口B.一次只能实现一个接口C.不能实现接口D.不一定[解析]Java语言允许一个类一次实现多个接口.9.定义外部类的类头时,不可用的关键字是〔 C 〕. A.public B.finalC.protected D.abstract[解析]定义外部类时不能使用protected关键字.10.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?〔 B 〕A.不能引用,必须改名,使它们的名称不相同B.在成员变量前加this,使用this访问该成员变量C.在成员变量前加super,使用super访问该成员变量D.不影响,系统可以自己区分[解析]this可以用来引用本类对象.11.下面说法不正确的是〔 B 〕.A.抽象类既可以做父类,也可以做子类B.abstract和final能同时修饰一个类C.抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口D.声明为final类型的方法不能在其子类中重新定义[解析]abstract和final不能同时修饰一个类,因为abstract 类需要子类,而final类不能有子类.二、填空题1.消息就是向对象发出服务请求,是对数据成员和成员方法的引用.2.在面向对象系统中,消息分为两类公有消息和私有消息.3.在面向对象程序设计中,采用继承机制可以有效地组织程序结构.充分利用已有的类来创建更复杂的类,大大提高程序开发的效率,提高代码的复用率,降低维护的工作量.4.数据成员的隐藏是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员.5.子类可以重新定义与父类同名的成员方法,实现对父类方法的覆盖.6.子类在重新定义父类已有的方法时,应保持与父类完全相同的方法名、返回值类型和参数列表,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关. 7.this代表了当前对象的一个引用,super表示的是当前对象的直接父类对象的引用.8.抽象类不能创建对象,该工作由抽象类派生的非抽象子类来实现.9.如果父类中已有同名的abstract方法,则子类中就不能〔能/不能〕再有同名的抽象方法.10.abstract类中不能有private 访问权限的数据成员或成员方法.11.interface 是声明接口的关键字,可以把它看成一个特殊类.接口中的数据成员默认的修饰符是public static final ,接口中的成员方法默认的修饰符是public abstract .12.如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须实现该接口的所有抽象方法;如果实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法.但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以与自身所实现接口中的抽象方法都必须有实在的方法体. 13.包的作用有两个,一是划分类名空间,二是控制类之间的访问.14.封装也称信息隐藏,是指类的设计者只为类的使用者提供类的可以访问的部分〔包括类的数据成员和成员方法〕,而把类中的其他成员隐藏起来,使用户不能访问的机制.15.Java提供了4种访问权限来实现封装机制,即private 、protected 、默认和public .16.Java中提供两种多态机制, 重载与覆盖.17.当一个构造方法需要调用另一个构造方法时,可以使用关键字this ,同时这个调用语句应该是整个构造方法的第一条可执行语句.18.如果子类自己没有构造方法,那么父类也一定没有〔有/没有〕带参的构造方法,此时它将继承父类的无参构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行父类的构造方法,然后再执行自己的构造方法 .19.对于父类的含参数构造方法,子类可以通过在自己的构造方法中使用super 关键字来调用它,但这个调用语句必须是子类构造方法的第一条可执行语句.20.创建一个名为myPachkage的包的语句为package myPackage; ,该语句应该放在程序第一行位置.三、判断题1.Java语言中,构造方法是不可以继承的.〔√〕2.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目.〔×〕3.抽象方法是一种只有说明而无具体实现的方法.〔√〕4.Java语言中,所创建的子类都应有一个父类.〔√〕5.调用this 或super构造方法的语句必须放在第一条语句.〔√〕6.一个类可以实现多个接口,接口可以实现"多重继承".〔√〕7.实现接口的类不能是抽象类.〔√〕8.使用构造方法只能给实例成员变量赋初值.〔√〕9.Java 语言不允许同时继承一个类并实现一个接口.〔×〕。
java考试题及答案
java考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. interfaceC. enumD. struct答案:A2. Java中的main方法的返回类型是什么?A. voidB. intC. StringD. boolean答案:B3. 下列哪个是Java的原始数据类型?A. StringB. intC. ArrayListD. Object答案:B4. 在Java中,哪个关键字用于实现多态?A. newC. implementsD. override答案:D5. 以下哪个是Java集合框架中的接口?A. ListB. SetC. MapD. All of the above答案:D6. Java中的异常处理是通过哪两个关键字实现的?A. try and catchB. if and elseC. for and whileD. switch and case答案:A7. 以下哪个是Java的访问修饰符?A. publicB. staticC. finalD. synchronized答案:A8. 在Java中,哪个关键字用于定义一个接口?B. interfaceC. packageD. enum答案:B9. Java中的String类是不可变的,这意味着什么?A. 字符串值不能被修改B. 字符串对象不能被实例化C. 字符串不能被用作数组D. 字符串不能被用作方法参数答案:A10. 在Java中,哪个关键字用于定义一个枚举类型?A. enumB. classC. interfaceD. struct答案:A二、简答题(每题5分,共20分)1. 简述Java中的垃圾回收机制。
答案:Java中的垃圾回收机制是一种自动内存管理功能,它会自动检测不再使用的对象,并释放它们占用的内存。
垃圾回收器会周期性地运行,寻找那些没有被任何引用指向的对象,然后回收它们占用的内存空间。
Java语言练习题库(含答案)
Java语⾔练习题库(含答案)单选题1. 为了保证⽅法的线程安全,声明⽅法的时候必须⽤哪个修饰符?(A) new(B) transient(C) void(D) synchronized2. 编译Java源⽂件使⽤哪个?(A) javac(B) jdb(C) javadoc(D) junit3. 哪⼀种类的对象中包含有Internet地址。
(A) Applet(B) Datagramsocket(C) InetAddress(D) AppletContext4. 有关GUI容器叙述,不正确的是?(A) 容器是⼀种特殊的组件,它可⽤来放置其它组件(B) 容器是组成GUI所必需的元素(C) 容器是⼀种特殊的组件,它可被放置在其它容器中(D) 容器是⼀种特殊的组件,它可被放置在任何组件中5. 使⽤javadoc⽣成的⽂档的⽂件格式是?(A) XML格式(B) ⾃定义格式(C) ⼆进制格式(D) HTML格式6. 下列有关类、对象和实例的叙述,正确的是哪⼀项?(A) 类就是对象,对象就是类,实例是对象的另⼀个名称,三者没有差别(B) 对象是类的抽象,类是对象的具体化,实例是对象的另⼀个名称(C) 类是对象的抽象,对象是类的具体化,实例是类的另⼀个名称(D) 类是对象的抽象,对象是类的具体化,实例是对象的另⼀个名称7. 在事件委托类的继承体系中,最⾼层次的类是哪项?(A) java.util.EventListener(B) java.util.EventObject(C) java.awt.AWTEvent(D) java.awt.event.AWTEvent8. Java语⾔中异常的分类是哪项?(A) 运⾏时异常和异常(B) 受检异常和⾮受检异常(C) 错误和异常(D) 错误和运⾏时异常9. 使⽤下列哪些关键字可以判定实参的具体类型?(A) as(B) is(C) instanceof(D) extends10. 在⽅法的声明中,要求该⽅法必须抛出异常时使⽤哪个关键字?(A) Throw(B) catch(C) finally(D) throws11. Applet的布局设置默认是FlowLayout,下列中哪项代码可以改变Applet的布局⽅式?(A) setLayoutManager(new GridLayout());(B) setLayout (new GridLayout(2,2));(C) setGridLayout (2,2);(D) setBorderLayout();12. 下列哪项正确?(A) JDK中包含JRE,JVM中包含JRE(B) JRE中包含JDK,JDK中包含JVM(C) JRE中包含JDK,JVM中包含JRE(D) JDK中包含JRE,JRE中包含JVM13. 在MyThread类的main⽅法中,为⽤Thread实例化。
(完整版)java练习题(含答案)
1.编写程序,用数组实现乘法小九九的存储和输出。
【提示:采用多个一维数组。
】public class Multipation {public static void main(String[] args) {// TODO Auto-generated method stubint x[][]=new int[9][9];for(int i=0;i<9;i++){for(int j=0;j<9;j++){if(i>=j){int m=i+1;int n=j+1;x[i][j]=m*n;System.out.print(m+"*"+n+"="+x[i][j]);}}System.out.println();}}}2. 定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
SetRecord给出学号、姓名和成绩的赋值,GetRecord通过学号得到考生的成绩。
public class Student {/***@param args*/private int ID;private String name;private float score;public void SetRecord(int ID,String name,float score){this.ID=ID;=name;this.score=score;}public float getRecord(int ID){if(ID==this.ID)return this.score;elsereturn -1;}public static void main(String[] args) {// TODO Auto-generated method stubStudent s=new Student();s.SetRecord(0,"alex",100);float Sco=s.getRecord(0);System.out.print(Sco);}}3.给出上题中设计类的构造函数,要求初始化一条记录(学号、姓名、成绩)。
Java练习题库(含答案及解析)100题
Java练习题库(含答案)一、Java语法基础(1-18)1、在Java中,负责对字节码解释执行的是()。
答案:BA、垃圾回收器B、虚拟机C、编译器D、多线程机制2、下列描述中,正确的是()答案:AA、Java程序的main方法必须写在类里面。
B、Java程序中可以有多个main方法。
C、Java程序中类名必须与文件名一样。
(public修饰的才有这要求)D、Java程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来。
3、下列描述中,正确的是()答案:AA、Java中的标识符是区分大小写的B、源文件名与public类名可以不相同C、Java源文件扩展名为.jarD、Java源文件中public类的数目不限4、下列关于Java中变量命名规范的描述中,正确的是( ) 答案:BA、变量由字母、下划线、数字、$符号随意组成。
(数字不能开头)B、变量不能以数字开头。
C、A和a在java中是同一个变量。
D、不同类型的变量,可以起相同的名字。
5、以下选项中,不是Java合法标识符的是( ) 答案:CA、 VOIDB、 x3xC、 finalD、 abc$def6、在Java中定义一个类时,所使用的关键字是()。
答案:AA、classB、publicC、structD、class 或struct7、下列关于运算符优先级别排序正确的是()答案:AA、由高向低分别是:()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符;B、由高向低分别是:()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符;C、由高向低分别是:()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符;D、由高向低分别是:()、!、关系运算符、赋值运算符、算术运算符、逻辑运算符;8、表达式(15+3*8)/4%3的值是( )答案:AA、 0B、 1C、 2D、 399、已知字符A对应的ASCII码值是65,那么表达式"A" + 1的值是()答案:CA.、66 B、B C、A1 D、非法表达式,编译出错10、下列关于boolean类型的叙述中,正确的是()答案:DA、可以将boolean类型的数值转换为int类型的数值B、可以将boolean类型的数值转换为字符串C、可以将boolean类型的数值转换为char类型的数值D、不能将boolean类型的数值转换为其他基本数据类型11、下面关于for循环的描述正确的是( ) 答案:AA、 for循环体语句中,可以包含多条语句,但要用大括号括起来。
java基础50道经典练习题及答案
JAVA基础编程练习题【程序1】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?【程序2】判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是【程序3】打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
【程序4】将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
【程序5】利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B 表示,60分以下的用C表示。
【程序6】输入两个正整数m和n,求其最大公约数和最小公倍数。
【程序8】求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
【程序9】一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程找出1000【程序10】一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次【程序11】有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
JAVA练习题及答案
name=s; age=a; step=0; } public void run(Dog fast) { fast.step++; } } public static void main (String args[]) { A a=new A(); Dog d=a.new Dog("Tom",3); d.step=25; d.run(d); System.out.println(d.step); } } 四、 编程题
4) while ( I > 0 ) { 5) j = I * 2; 6) System.out.println (" The value of j is " + j ); 7) k = k + 1; 8) I--; 9) } 10) } A line 4 B line 6 C line 7 D line 8 二、多项选择
D sleep() E.yield() F.synchronized(this) 7.构造 BufferedInputStream 的合适参数是哪个? CA A BufferedInputStream B BufferedOutputStream C FileInputStream D FileOuterStream E. File 8.下列说法正确的是 DBC A ng.Clonable 是类 B ng.Runnable 是接口 C Double 对象在 ng 包中 D Double a=1.0 是正确的 java 语句 9.指出正确的表达式 AB A double a=1.0; B Double a=new Double(1.0); C byte a = 340; D Byte a = 120; 10.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为: CD A private class MyClass extends Object B class MyClass extends Object C public class MyClass D public class MyClass extends Object 11.指出下列哪个方法与方法 public void add(int a){}为合理的重载方法。 CD A public int add(int a) B public void add(long a) C public void add(int a,int b) D public void add(float a) 12.如果下列的方法能够正常运行,在控制台上将显示什么? ACD public void example(){
java考试题及答案
java考试题及答案一、选择题(每题2分,共20分)1. Java语言的标识符可以包含以下哪些字符?A. 数字B. 下划线C. 美元符号D. 空格答案:B2. 下列哪个选项是Java中的关键字?A. classB. mainC. publicD. all of the above答案:D3. Java中,哪个修饰符表示成员变量或方法是私有的?A. publicB. privateC. protectedD. static答案:B4. Java中,哪个关键字用于捕获异常?A. tryB. catchC. finallyD. throw答案:B5. 在Java中,下列哪个数据类型是基本数据类型?A. StringB. intC. ArrayListD. HashMap答案:B6. 下列哪个选项不是Java集合框架的一部分?A. ListB. MapC. SetD. String答案:D7. Java中,哪个关键字用于定义接口?A. classB. interfaceC. abstractD. final答案:B8. 在Java中,下列哪个选项不是线程安全的?A. VectorB. ArrayListC. LinkedListD. HashMap答案:B9. Java中,下列哪个选项是正确的继承关系?A. Object is a subclass of StringB. String is a subclass of ObjectC. Object is a superclass of StringD. String is a superclass of Object答案:B10. 下列哪个选项不是Java中的访问修饰符?A. publicB. privateC. protectedD. global答案:D二、填空题(每题2分,共20分)1. Java中,用于定义类的关键字是______。
答案:class2. Java中,用于定义接口的关键字是______。
JAVA习题集(含答案)
JAVA习题集(含答案)习题一:1.简述Java的发展过程。
2.什么是软件?3.什么叫做源程序?4.什么叫做编译?5.什么是Java 的byte-codes?它的最大好处是什么?6.机器语言程序、高级语言程序以及可表示成Java字节码的程序之间的区别是什么?7.Java程序可分为哪两种?分别如何运行?8.试简述J2SE、J2ME与J2EE的简单区别。
9.练习使用浏览器查看Java API文档。
10.SDK的编译命令是什么?11.试修改例1-1程序,使其输出的字符串为“I’d like to study Java !”,并在DOS命令行环境下编译与运行该程序。
习题一参考答案:1.答:1991:Sun Microsystems公司进军消费电子产品(IA)市场。
1991.4:Sun 成立“Green”小组,以C++为基础开发新的程序设计语言,并将其命名为Oak。
1992.10:Green小组升格为First Person公司,他们将Oak的技术转移到Web上,并把Oak改名为Java。
1993~1994:Web在Internet上开始流行,致使Java得以迅速发展并获得成功。
1995.5:Sun Microsystems公司正式发表Java与HotJava产品。
1995.10:Netscape与Sun Microsystems合作,在Netscape Nevigator中支持Java。
1995.12:微软(Microsoft)IE加入支持Java的行列。
1996.2:Java Beta测试版结束,Java 1.0版正式诞生。
1997.2:Java发展至1.1版。
Java的第一个开发包JDK(Java Development Kit)发布。
1999.7:Java升级至1.2版。
2000.9:Java升级至1.3版。
2001.7:Java升级至1.4版。
2.答:软件可以理解为程序的另一种名称。
3.答:直接使用高级语言书写的程序代码称为源程序4.答:把用高级语言编写的源程序翻译成可执行(目标)程序的过程称为编译。
java考试试题及答案
java考试试题及答案一、选择题(每题2分,共20分)1. 下列哪个是Java的基本数据类型?A. StringB. IntegerC. intD. Object答案:C2. Java中的main方法是程序的入口点,它属于哪个类?A. ng.ObjectB. ng.SystemC. ng.RuntimeD. java.applet.Applet答案:A3. 下列哪个关键字用于定义类?A. classB. publicC. staticD. void答案:A4. Java中的哪个关键字用于实现接口?A. implementsB. extendsC. classD. interface答案:A5. 下列哪个是Java集合框架中的接口?A. ArrayListB. ListC. LinkedListD. HashMap答案:B6. 下列哪个不是Java的控制流语句?A. ifB. forC. switchD. while答案:C7. Java中的哪个类提供了日期和时间的处理功能?A. java.util.DateB. java.util.CalendarC. java.time.LocalDateD. java.time.LocalDateTime答案:B8. 下列哪个是Java的异常处理关键字?A. tryB. catchC. finallyD. all of the above答案:D9. 下列哪个不是Java的访问修饰符?A. publicB. privateC. protectedD. global答案:D10. 下列哪个不是Java的注释方式?A. // 单行注释B. /* 多行注释 */C. / 文档注释 */D. # 预处理指令答案:D二、填空题(每空2分,共20分)1. Java语言是________面向对象的编程语言。
答案:完全2. Java程序的执行流程是:编写源代码,编译成字节码,通过________加载并执行。
java编程练习题及答案
java编程练习题及答案Java编程练习题及答案一、选择题1. 在Java中,哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A2. 下列哪个是Java中的合法标识符?A. 2variableB. forC. variable2D. class答案:C3. 在Java中,哪个方法用于获取当前对象的引用?A. this()B. super()C. clone()D. new()答案:A4. 以下哪个是Java的访问修饰符?A. publicB. staticC. finalD. abstract答案:A5. 在Java中,哪个关键字用于定义接口?A. classB. interfaceC. abstractD. enum答案:B二、简答题1. 请简述Java中的继承是如何工作的?答案:Java中的继承允许一个类(子类)继承另一个类(父类)的属性和方法。
子类可以扩展或修改父类的行为,实现代码复用。
继承是面向对象编程的核心概念之一。
2. 请解释Java中接口和抽象类的区别?答案:接口定义了一组方法规范,但不提供实现。
任何实现接口的类都必须提供接口中所有方法的具体实现。
抽象类可以包含抽象方法和具体方法,并且可以有成员变量。
抽象类可以作为其他类的基类,但不能被实例化。
三、编程题1. 编写一个Java程序,实现一个简单的计算器,可以进行加、减、乘、除运算。
```javaimport java.util.Scanner;public class SimpleCalculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个数字: ");double num1 = scanner.nextDouble();System.out.print("请选择运算符(+, -, *, /): "); char operator = scanner.next().charAt(0);System.out.print("请输入第二个数字: ");double num2 = scanner.nextDouble();double result = 0;switch (operator) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 != 0) {result = num1 / num2;} else {System.out.println("除数不能为0"); }break;default:System.out.println("无效的运算符");}if (result != 0) {System.out.println("结果是: " + result);}scanner.close();}}```2. 编写一个Java程序,实现一个简单的学生管理系统,可以添加学生信息、显示所有学生信息。
java练习题+答案
1、在下列说法中,选出最正确的一项是( )。
1.Java语言是以类为程序的基本单位的2.Java语言是不区分大小写的3.多行注释语句必须以//开始4.在Java语言中,类的源文件名和该类名可以不相同2、下列选项中不属于Java虚拟机的执行特点的一项是( )。
1.异常处理2.多线程3.动态链接4.简单易学3、下列选项中属于Java语言的垃圾回收机制的一项是( )。
1.语法检查2.堆栈溢出检查3.跨平台4.内存跟踪4、下列选项中属于 Java语言的安全性的一项是( )。
1.动态链接2.高性能3.访问权限4.内存跟踪5、下列选项中,属丁JVM执行过程中的特点的一项是( )。
1.编译执行2.多进程3.异常处理4.静态链接6、在Java语言中,那一个是最基本的元素?( )1.方法2.包3.对象4.接口7、如果有2个类A和B,A类基于 B类,则下列描述中正确的一个是( )。
1.这2个类都是子类或者超类2.A是B超类的子类3.B是A超类的子类4.这2个类郡是对方的子类8、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?( )1.abstract2.private3.protected4.不使用保留字9、编译一个定义了3个类和10个办法的Java源文件后,会产生多少个字符码文件,扩展名是什么?( )1.13个字节码文件,扩展名是.class2.1个字节码文件,扩展名是.class3.3个字节码文件,扩展名是.java4.3个字节码文件,扩展名是.class10、下列属于Java语言的特点的一项是( )。
1.运算符重载2.类间多重继承3.指针操作4.垃圾回收11、在创建Applet应用程序时,需要用户考虑的问题是( )。
1.窗口如何创建2.绘制的图形在窗口中的位置3.程序的框架4.事件处理12、于Java语言的内存回收机制,下列选项中最正确的一项是( )。
1.Java程序要求用户必须手工创建一个线程来释放内存2.Java程序允许用户使用指针来释放内存3.内存回收线程负责释放无用内存4.内存回收线程不能释放内存对象13、下列关于Java程序结构的描述中,不正确的一项是( )。
JAVA各章习题及答案
第1章一、选择题1.下列选项中,不属于Jav a语言特点的一项是(C )。
(A)分布式(B)安全性(C)编译执行(D)面向对象【解析】Java程序采用解释执行的方法。
在系统编译运行Java程序时,Java编译器将Jav a程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。
2.在Java语言中,( C )是最基本的元素?(A)方法(B)包(C)对象(D)接口【解析】构成Java程序的基本元素类(抽象的对象)。
3.编译一个定义了3个类和10个方法的Java源文件后,会产生(D )个字节码文件?扩展名是( D )?(A)13个字节码文件,扩展名为.class(B)1个字节码文件,扩展名为.class(C)3个字节码文件,扩展名为.java (D)3个字节码文件,扩展名为.class【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。
4.在创建Appl et应用程序时,需要用户考虑问题是( B )。
(A)窗口如何创建(B)绘制的图形在窗口中的位置(C)程序的框架(D)事件处理【解析】创建Appl et程序时必须继承系统类Appl et,而Apple t类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定。
5.Java语言属于(B )种语言?(A)面向机器的语言(B)面向对象的语言(C)面向过程的语言(D)面向操作系统的语言【解析】Java语言是一种纯面向对象的语言。
6.下列关于Ap plica tion和A pple t程序的说法中不正确的一项是(B)。
(A)Applica tion使用解释器j ava.exe (B)Application不使用独立的解释器(C)Applet在浏览器中运行(D)Applet必须继承Java的A p plet类【解析】Application程序包含m ai n()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。
Java练习题附答案
练习题:一、读程序,写出和程序输出格式一致的输出结果。
1、class J_SuperClass {void mb_method() {System.out.println("J_SuperClass::mb_method");}static void mb_methodStatic() {System.out.println("J_SuperClass::mb_methodStatic"); } }public class J_Test extends J_SuperClass {void mb_method() {System.out.println("J_Test::mb_method");}static void mb_methodStatic() {System.out.println("J_Test::mb_methodStatic");}public static void main(String[] args) {J_SuperClass a = new J_Test();a.mb_method();a.mb_methodStatic();J_Test b = new J_Test();b.mb_method();b.mb_methodStatic();}}输出结果:32342、class ValHold {public int i = 10;}public class ObParm {public static void main(String[] args) {ObParm o = new ObParm();o.amethod();}public void amethod() {int i = 99;ValHold v = new ValHold();v.i = 30;another(v, i);System.out.println(v.i + " " + i);}public void another(ValHold v, int i) {i = 0;v.i = 20;ValHold vh = new ValHold();v = vh;System.out.println(v.i + " " + i);}}输出结果:10 020 993、class J_SuperClass {int m_data;J_SuperClass() {mb_add(1);}public void mb_add(int i) {m_data += i;}public void mb_print() { System.out.println(m_data);}}class J_SubClass extends J_SuperClass { J_SubClass() {mb_add(2);}public void mb_add(int i) {m_data += i * 2;}}public class J_Test {public static void mb_method(J_SuperClass a) { a.mb_add(6);a.mb_print();}public static void main(String[] args) {mb_method(new J_SubClass());}}输出结果:184、public class Two {public static void main(String[] args) {One one = new One("Hello");one.getString("Xiao ming!");}}class One {private String myStr;public One(String str) {myStr = str;}public void getString(String str) { System.out.println(myStr + " " + str);}}输出结果:Hello Xiao ming!5、public class J_Test {String m_kobe = "1";String[] m_king = {"2"};public static void main(String[] args) {J_Test app = new J_Test();app.mb_operate(app.m_kobe, app.m_king); System.out.println(app.m_kobe+app.m_king[0]); } static void mb_operate(String kobe, String[] king) { kobe = new String("3");king[0] = new String("4");}}输出结果:141.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7、JDK下解释执行Java的程序是java.exe。
8、语句如下:
int[] c1=int[10];
int[] c2={1,2,3,4,5,6,7,8,9,0};
public class CarDemo{
public static void main(String args[]){
Car demoCar1= new Car(); demoCar1.setNumber(168168);
demoCar1.showNumber();
}
}
产生了1个对象叫demoCar1,运行结果:My car NO. is:168168
}
}
1、在记事本中编写源代码,并保存为Output.java
2、在源代码所在目录下发出命令javac Output.java
3、编译若不通过则重复1、2步骤,若通过则发出命令java Outpur并查看运行 结果
2、用Java实现如下的骰子游戏:丢下两个骰子,若分值的总值为7点,则赢;
否则输。提示:类图如右图。
2有哪些构造方法?
Car()和Car(int no)
3这个类有无访问控制修饰?表示谁可以访问这个类内的属性和方法?
无访问控制修饰,表示在同一类或同一包中都可以访问
4void表示什么?
方法无返回值
2、下列程序中,main()方法中使用了上面定义的类,产生了多少个对象?对象 名字分别是什么?写出执行后的输出结果。
4、声明接口的保留字是interface。
5、类的声明“public class Test extends Applet implements Runable{}”
中,定义的类名是Test,其父类 是Applet;实现了Runable接口。这个 类的源程序必须保存为Test.java(写出包括扩展名的文件名) 。
2、当运行javac命令对一个java源程序进行编译时,必须写出该源程序文件 的完整文件名,包括扩展名.java。(T)
3、java语言中不用区分字母的大写小写。(F)
4、数组允许存放不同类型的定长元素。(F)
5、Java的类是单继承的,所有的类都从Object类派生而来的。(T)
6、System.out.println(“Hello java!”)中out是System类的一个成员变 量。(T)
六、设计题
1、 编写一个完整的Java Application程序输出“I am a student.” ,并说 明在JDK环境下的开发并运行的具体过程。
class Output{
public static void main(){
System.out.println(“I am a student.”);
四、简答题(答案参看课件)
1、通过继承,子类可以获得哪些好处?
2、写出程序包组织Java程序的好处? 五、程序分析题
1、阅读下列程序,然后回答问题class Car{
int carNumber;
Car(){}
Car(int no){
this.carNumber=no;
}
void setNumber(int carNum){carNumber = carNum;
1)首先ቤተ መጻሕፍቲ ባይዱ义Die类。
提示:Die类表示一个骰子有faceValue一个静态属性,有一个roll()方法getFaceValue()。
roll()方法使faceValue为1~6中的一个随机值。getFaceValue()是取出faceValue值。
2)然后定义DiceGame类。提示:DiceGame类有die1、die2两个静态属性,有一个play()方法。play()方法返回一个布尔类型,true表示分值的总值为7点,否则为false。
c = a+b;
break;
case '-':
c = a - b;
break;
default:
c = a * b;
break;
}
11、为了能使用Java中已提供的类,我们需要用import语句来引入所需要的 类。语句import java.io.*; 中引入了java.io包 的所有类。
二、选择题
1、属于访问控制的关键字是(D)。
Java练习题答案
一、填空
1、对象的状态和行为是对象的主要属性;前者对应类的变
量 ,行为又称为对象的操作, 对应着类的 方法 。 类的定义包括 变量 声明和 方法 声明。
2、要嵌入在HTML文件中运行的程序是Java Applet(Java
Application、Java Applet)。
3、安装JDK后,Java开发工具在Bin目录。
3)最后写Test类,对上面定义的类进行测试。
提示:写出主类,main()方法中产生DiceGame对象,执行play()方法后显示出 输赢。
import java.util.*;
//import java.math.*;
class Die{
A、staticB、finalC、abstractD、private
2、对成员的访问控制保护最强的是(C)
A、public、B、缺省、C privateD protected
3、可用做Java标识符的是(B)。
A、try B_isYour C 2time D my name
三、判别题
1、一个类可以生成多个对象,并且这些对象都具有相同的属性。(T)
}
void showNumber(){
System.out.println(“My car No. is :”+ carNumber);
}
}
1写出这里定义了什么类?有哪些成员变量?有哪些成员方法?
定义了Car类,成员变量有carNumber,成员方法有:构造方法、setNumber、showNumber
数组c1中的元素有10个;c2中的元素有10个;已初始化赋
值的是c2(c1 c2)。
9、执行完下列程序后i的值为5
int i=0;
while(i<5)
{
i++;
10、运行下列程序段后,结果c的取值为120int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+':