JAVA笔试宝典百题
- 格式:doc
- 大小:117.50 KB
- 文档页数:21
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.关于readLine() 方法,一下说法正确的是?A. 该方法抛出IOException异常,调用该方法应该try …catch…B. 如果读到文件的末尾,该方法返回的结果为nullC. readLine()每次读取一行数据D. BufferReader类的对象可以调用该方法答案:ABCD2.方法中的局部变量何时分配内存答案:在方法被调用时、静态变量在类被加载时分配内存3.J2EE描述答案:"J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境。
4.转发HTTP请求的两个方法 respsonse.sendDirect 和 RequestDispatcher.forward 的区别答案:RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。
在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.关系数据库中,典型的实体关系模型有三个要素?答案:数据结构、关系操作、完整性约束2.面向对象的特征答案:(抽象、继承、多态、封装)3."int k=0;for(int i=5;i>0&k<10;i--){k+=i;}最后k的值是多少?答案://k=124.方法中的局部变量何时分配内存答案:在方法被调用时、静态变量在类被加载时分配内存5.String s1=”Hello”表达式s1==”Hello”返回true or false答案:TRUE6.将两个表连接在一起时,下面那一项通常是另外一个表的主键A. 外键B. 总控键C. 重复的组D. 主键答案:A7.EJB2.0 中定义了几种Enterprise Bean答案:Session bean, entity bean, message driven bean8.以下标识符中()是不合法的A. 1sB. $1C. $1D. BigM答案:A9.下面哪个是合法的布尔值A. “false”B. falseC. 10答案:B10.下面的异常处理说明正确的是( )A. try块只能使用一个catch子句。
B. try块必须同时与catch子句和finally子句一起使用。
C. try块不能单独使用。
D. try块中如果执行了return 语句,则其finally子句不能执行答案:C11.System同时包含三个预定义的流变量,分别是答案:In out err12.定义字符串:String str =Abcddefg”; 则str.substring(1,4).indexOf(“d”) 的结果是答案:213.算法的时间复杂度是指:答案:时间复杂度是度量算法执行的时间长短。
随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(n)越小,算法的时间复杂度越低,算法的效率越高。
Java程序设计总复习题1、编写一个Java程序在屏幕上输出“你好!”。
(p13,例1-1)//programme name Helloworld.javapublic class Helloworld {public static void main(String args[]) {System.out.print ("你好!" );}}2. 编写一个Java程序,用if-else语句判断某年份是否为闰年。
// Programme Name LeapYear.javapublic class LeapYear{public static void main(String args[]){int year=2010;if(args.length!=0)year=Integer.parseInt(args[0]);if((year%4==0 && year%100!=0)||(year%400==0))System.out.println(year+" 年是闰年。
");elseSystem.out.println(year+" 年不是闰年。
");}}//if-else语句3、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。
(p64,例2-2)// programme name ForTest.javapublic class ForTest {public static void main( String args[] ) {int i,j,mul,sum=0;for(i=1;i<=10;i++) {mul=1;for(j=1,j<=i;j++) {mul=mul*j;}sum=sum+mul;public class Factorial { //下面的这个方法利用递归的方法求阶乘public intgetFac(int m) { if(m==1) { return 1; } else { return m*getFac(m-1); } } public static void main(String args[]) { Factorial fac=new Factorial(); //System.out.println(fac.getFac(4)); int sum=0; for(int i=1;i<=10;i++) { sum+=fac.getFac(i); } System.out.println("1到10的阶乘的和是:"+sum); } }}System.out.println(“1!+2!+3!+……+10!= ”+sum);}}4. (1)编写一个圆类Circle,该类拥有:①一个成员变量Radius(私有,浮点型);// 存放圆的半径;②两个构造方法Circle( ) // 将半径设为0Circle(double r ) //创建Circle对象时将半径初始化为r③三个成员方法double getArea( ) //获取圆的面积double getPerimeter( ) //获取圆的周长void show( ) //将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少//这是一个菲波拉契数列问题publicclasslianxi01{publicstaticvoidmain(String[]args){intf1=1,f2=1,f,M=24;for(inti=3;i<=M;i++){f=f2;题目:判断101-200程序分析:判断素数的方法:用一个数分别去除3】是指一个三位数,其各位数字立方和等于该数本的三次方+5的三次方+3的三次方。
publicclasslianxi03{publicstaticvoidmain(String[]args){intb1,b2,b3;for(intm=101;m<1000;m++){b3=m/100;b2=m%100/10;b1=m%10;if((b3*b3*b3+b2*b2*b2+b1*b1*b1)==m){}}}【程序4】题目:将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
importjava.util.*;publicclasslianxi04{publicstaticvoidmain(String[]args){题目:利用条件运算符的嵌套来完成此题:B表示,606】/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
JA V A笔试题带答案一.选择题1.下面关于Java语言说法错误的是:()A.java语言是完全面向对象的B。
java语言支持多继承C.java语言支持多线程D。
java语言最早是为消费电子产品领域设计的2.下面标识符中正确的是:()A.*123 B。
12java C.continue D。
java$next3.下列关于注释语句的描述中,正确的一项是()A。
以//开始的是多行注释语句B。
以结束的是单行注释语句C。
以结束的是可以用于生成帮助文档的注释语句D。
以结束的是单行注释语句4.为了区分重载多态中同名的不同方法,要求()。
A)形式参数个数或者类型不同B)返回值类型不同C)调用时用类名或对象名做前缀D)形式参数名称不同5.下面定义数组的格式中正确的是:()A.int a[10] B。
int a=new int[10] C.int []a=new int[5] D.int a[]6.下面说法中不正确的是:()A.类是对象的抽象,对象是类的实例B。
类是组成java程序的最小的单位C.java语言支持多继承D。
java一个程序中只能有一个public类7.定义类时,不可能用到的保留字是()。
A)private B)classC)extends D)implements8.为AB 类的定义一个公共的构造函数,该方法头的形式为()A.void AB( ) B。
public void method( )C.public method ( ) D。
public AB( )9.下面说法中不正确的是:()A.java中一个类只允许实现一个接口B。
抽象类中允许有非抽象方法的存在C.类变量(实例变量)可以直接用类名调用D。
通过super可以调用基类的构造函数10.容器JFrame 默认使用的布局编辑策略是()A.BorderLayout B。
FlowLayout C。
GridLayout D。
CardLayout11.以下哪个表达式是不合法的()A.String x=”Hello”; int y=9; x+=y;B.String x=”Hello”; int y=9; if(x= =y) { }C.String x=”Hello”; int y=9; x=x+y;D.String x=null; int y=(x!=null)&&(x.length()>0)12.class person{public int addvalue(int a,int b){int s;s=a+b;return s;}}class child extends parent{}若要在child类中对addvalue方法进行重写,下面对于child类中的addvalue 方法头的描述哪个是正确的:A)int addvalue(int I,int j) B)void addvalue()C)void addvalue(double i) D)int addvalue(int a)13.下面程序在fun()方法当出现数组下标超过界限的情况下的输出结果是:()public void test(){try{fun();System.out.print(“情况1”);}catch(ArrayIndexOutOfBoundsException e){ System.out.print(“情况2”);}catch(Exception e){ System.out.print(“情况3”);}finally{ System.out.print(“finally”);}}A.情况1 B。
java基础笔试题及答案一、选择题1. 下列哪个关键字可以用来创建线程?A. classB. interfaceC. implementsD. extends答案:D2. Java中的“==”运算符用于比较什么?A. 引用是否相同B. 对象的内容C. 字符串的内容D. 整数的大小答案:A3. 在Java中,哪个类是所有类的根类?A. ObjectB. StringC. IntegerD. System答案:A4. 下列哪个方法用于获取对象的哈希码?A. equals()B. hashCode()C. toString()D. getClass()答案:B5. Java中,哪个关键字用于实现单例模式?A. privateB. publicC. staticD. final答案:C二、简答题1. 解释Java中的垃圾回收机制是什么?答案:Java中的垃圾回收机制是一种自动内存管理功能,它周期性地执行,以识别不再使用的对象,并释放这些对象占用的内存空间。
垃圾回收器会检查内存中的对象,并确定对象是否仍然被应用程序中的其他对象引用。
如果一个对象没有任何引用指向它,那么它就被认为是“垃圾”,垃圾回收器会回收其内存。
2. 什么是Java的异常处理机制?答案:Java的异常处理机制允许程序在发生错误时继续运行,而不是立即崩溃。
它通过使用try、catch、finally和throw关键字来实现。
try块用于捕获可能出现异常的代码,catch块用于处理这些异常,finally块用于执行无论是否发生异常都需要执行的代码,throw关键字用于手动抛出异常。
三、编程题1. 编写一个Java程序,实现一个简单的计算器,能够进行加、减、乘、除操作。
```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入第一个数字:");double num1 = input.nextDouble();System.out.print("请输入第二个数字:");double num2 = input.nextDouble();System.out.print("请选择操作(+、-、*、/):"); char operation = input.next().charAt(0);double result;switch (operation) {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。
2020年JAVA程序员笔试面试题库300题[含答案]
一、简答题
1.关于MVC,下面说法正确的是:A. Servlet实现MVC的Model部分
B. JSP实现MVC的Control部分
C. EJB实现MVC的Model部分
D. HTTP实现MVC的View部分
答案:C
2.算法的时间复杂度是指:
答案:时间复杂度是度量算法执行的时间长短。
随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(n)越小,算法的时间复杂度越低,算法的效率越高。
3.单选题
答案:
4.一个正在执行的线程在遇到下列()情况时会暂时停止执行?A. 执行suspend被挂起;
B. 休眠;
C. 执行输入输出操作
D. 执行wait()方法。
答案:ABD
5.多选题:
答案:
6."下面语句输出的结果是什么?
int score = 9;
switch (score){
case 0:System.out.println();
default: System.out.println(""Error"");
case 3: System.out.println(""Good"");break;
case 2: System.out.println(""Best"");
}
A. Error Good Best
B. Error good
C. Error。
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.1. 保证在java应用程序中,一个类Class只有一个实例存在该使用什么设计模式答案:单例2.EJB在WEBLOGIC中的部署文件答案:weblogic-ejb-jar.xml3.方法中的局部变量何时分配内存答案:在方法被调用时、静态变量在类被加载时分配内存4.J2EE描述答案:"J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境。
5.下列关于java程序结果错误的是A. 源文件可以没有 import 语句B. Package语句必须放在源文件的第一句C. 一个源文件可以有多个类定义D. 一个源文件可以定义多个public类答案:D6.EJB2.0 中定义了几种Enterprise Bean答案:Session bean, entity bean, message driven bean7.J2EE的三层模型是什么?答案:Model View Controller8.以下的变量定义中,合法的语句是:A. double a=1+4e2.5;B. short do=15;C. int abc_21;D. float 1_variable=3.4;答案:9.算法的时间复杂度是指:答案:时间复杂度是度量算法执行的时间长短。
随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(n)越小,算法的时间复杂度越低,算法的效率越高。
java笔试题大全带答案一、选择题1.下列哪个选项是JAVA语言中的基本数据类型?A. IntegerB. BooleanC. StringD. Double答案:B. Boolean2.以下关于JAVA程序的描述中,错误的是:A. JAVA源程序文件的扩展名为.javaB. JAVA虚拟机是JAVA程序的运行环境C. JAVA程序由一个或多个类组成D. JAVA程序的入口函数是main函数答案:C. JAVA程序由一个或多个类组成(应为:JAVA程序由一个类组成)3.以下哪种循环结构可以根据循环条件决定是否执行循环体?A. for循环B. do-while循环C. while循环D. switch循环答案:C. while循环4.以下关于JAVA的面向对象特性的描述中,正确的是:A. 封装是指将数据和操作数据的方法绑定在一起,形成一个类B. 多态是指同一个方法可以根据对象的不同,展现出不同的行为C. 继承是指一个类可以派生出多个子类D. 抽象是指一个类具有实例化对象的能力答案:B. 多态是指同一个方法可以根据对象的不同,展现出不同的行为二、填空题1.下列代码的输出结果是______。
```javaint a = 5;int b = 2;System.out.println(a / b);```答案:22.以下关于JAVA异常处理的语句中,正确的是______。
A. tryB. exceptC. catchD. throw答案:C. catch3.以下哪个关键字声明的方法可以被子类重写?A. finalB. staticC. abstractD. private答案:C. abstract4.以下哪个关键字可以在子类中调用父类的同名方法?A. thisB. superC. extendsD. implements答案:B. super三、编程题请编写一个JAVA程序,实现以下功能:1. 定义一个名为Rectangle的类,包含如下属性和方法:- 属性:宽度(width)、高度(height)- 方法:计算矩形面积(getArea)、计算矩形周长(getPerimeter)2. 在main函数中创建一个Rectangle对象,并计算其面积和周长并打印输出。
JAVA笔试100试题1JAVA试题(100道)―――――――――――――――――――――――――――――――――――――― 题目1:下面不属于基本类型的是:c (选择1项) A) boolean B) long C) String D) byte题目2:d如下程序中:(1)public class CharToInt (2){(3)public static void main(String[] args) (4){ (5)int a,b=10; (6)char c='语'; (7)a=b+c; (8)System.out.println(\结果是:\(9)} (10)}下面的说法中正确的是:(选择1项)A) 程序运行到第6行会出现编译错误,因为c为char类型,不能把一个汉字赋给一个字符型。
B) 程序运行到第7行会出现编译错误,因为字符型与整型不能进行加法运算。
C) 程序能够正常编译和运行,但是不会输出任何结果。
D) 程序将字符型转换为unicode编码并和b的数值相加的和输出。
题目3:下面的说法中,错误的是:d(选择1项)A) 在Java中标志符可以是字母、下划线、数字或$符号。
B) 在Java中布尔类型不能和数字之间不能来回转换,即false和true不对应任何零或非零的值。
C) 双精度类型double比单精度类型float具有更高的精度和更大的表示范围,但float类型具有速度快、占用内存小的优点。
D) 在Java中布尔值可以用true或false来表示,但是同时也可以用1或0来表示。
题目5:b程序如下:class Test {public static void main(String[] args) { int i=1000; for(;;) { if(i999) { _______________ } } } }下面对程序的横线处填写不同语句的分析正确的是:(选择一项)A) 填充break 使程序能够有退出循环的可能性。
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循环体语句中,可以包含多条语句,但要用大括号括起来。
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.以下关于UML的说法正确的是:A. UML是标准的建模语言,也是标准的开发过程。
B. UML是标准的建模语言,而不是标准的开发过程。
答案:A2.关于readLine() 方法,一下说法正确的是?A. 该方法抛出IOException异常,调用该方法应该try …catch…B. 如果读到文件的末尾,该方法返回的结果为nullC. readLine()每次读取一行数据D. BufferReader类的对象可以调用该方法答案:ABCD3."类A定义如下:class A{private int x=10;int getx(){retrun x;}}class B extends A{private int x=15;//需要覆盖getx()方法}在“//需要覆盖getx()方法”后应加上的函数是?A. int getx(float f) {…}B. int getx() {…}C. double getx(float f) {….}D. folat getx() {…}答案:B4.下面哪一个List最适合用来实现FIFO队列?A. V ectorB. LinkedListC. ArrayListD. Stack答案:B5.每一个ORACLE数据库有一个或多个物理的数据文件,下面哪种说法是错误的?A. 数据文件建立后,大小可随实际业务需要进行调整B. 文件中的数据在需要时可以读取并存储在ORACLE内存储区中C. 一个数据文件可与多个数据库联系D. 一个表空间(数据库存储的逻辑单位)可由一个或多个数据文件组成答案:C6.软件设计中划分模块的一个准则是:A.低内聚高耦合B.高内聚高耦合C.低内聚低耦合D.高内聚低耦合答案:A7."给出下面一段程序:class Aclass{void go(){System.out.println(Aclass”);}}public class Bclass extends Aclass{void go(){System.out.println(“Bclass”);}public static void main (String args[]){Aclass a = new Aclass();Aclass a1 = new Bclass();a.go();a1.go();}}以上程序运行的结果是:A. Aclass BclassB. Bclass AclassC. Aclass AclassD. Bclass Bclass答案:A8."关于以下程序代码的说明正确的是:1. public class HasStatic {2. private static int x=100;3. public static void main(String args[]) {4. HasStatic hs1=new HasStatic();6. HasStatic hs2=new HasStatic();7. hs2.x++;8. hs1=new HasStatic();9. hs1.x++;10. HasStatic.x--;11. System.out.println(“x=”+x);12. }13. }A. 10行不能通过编译,因为x是私有静态变量B. 5行不能通过编译,因为引用了私有静态变量C. 程序通过编译,输出结果为:x=102D. 程序通过编译,输出结果为:x=103答案:C9.在ORACLE中,关于同义词说法错误的是?A. 同义词可以和表重名B. 共有同义词和私有同义词创建的权限不同C. 同义词只能由创建同义词的用户使用D. 可以为存储过程创建同义词答案:A10.单选题答案:11.下列哪个组件能在一个EAR文件中被声明?A. EJB类B. JMX MbeansC. JDBC DataSource对象D. JMS ConnectionFactory 和 Destination对象。
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.1. 保证在java应用程序中,一个类Class只有一个实例存在该使用什么设计模式答案:单例2.单选题:答案:3.下面对数组的操作代码哪个是正确的?A. char[] a=”hello world”.toCharArray();B. char c=a[999];C. Class cc=a.getClass();D. int len=a.length;E. a.equals(new Object());F. char c=a[0];答案:DF4.面向对象的特征答案:(抽象、继承、多态、封装)5.合法标识符的定义"• 1. 只能以字母,下划线(_)或美元符($)开头,数字不能作为开头• 2. 不能包含美元符($)以外的特殊符号• 3. 不能包含空格• 4. 可以是中文字符或日文字符答案:16."下面代码显示的结果是什么public class Test {static init arr[] = new int[0]public static void main(String [] arge) {System.out.print(arr[1]);}}答案:可编译通过,运行报异常7.String s1=”Hello”表达式s1==”Hello”返回true or false答案:TRUE8.释放SessionBean使用的某些资源或者刷新Entity Bean的缓存的代码一般实现在哪个方法中?A. ejbLoadB. ejbPassivateC. ejbStoreD. ejbRemoveE. ejbActivate答案:B9.System同时包含三个预定义的流变量,分别是答案:In out err10.下面哪些声明是错误的?A. char c = ‘\u0000’;B. int i=’a’;C. byte b=01;D. long l=1234567890L;E. int i=0xFFFFFFFF;答案:11."下面代码中队result描述正确的是?InputStream in = … ;byte[] buff = new byte[1024];int result = in.read(buff, 0, 256)A. result 可能等于256B. result 可能等于0C. result 可能等于1024D. result 可能等于1答案:AB12."MyObject哪个方法会影响到这段代码的正确性以及效率?Set set = new java.util.HashSet();set.add( new MyObject(A”));if ( set.contains( new MyObject(A”))) {……}A. hashCodeB. toStringC. cloneD. equals答案:13.一个正在执行的线程在遇到下列()情况下会终止执行?A. 执行stop()方法;B. 执行wait()方法;C. 执行seleep()方法;D. 其run()方法运行完后。
2020年JAVA程序员笔试面试题库300题[含答案]
一、简答题
1.将两个表连接在一起时,下面那一项通常是另外一个表的主键A. 外键
B. 总控键
C. 重复的组
D. 主键
答案:A
2.关于final下面哪些是错误的?A. final可以用来声明抽象类中的方法
B. final可以用来声明接口中的方法
C. 以上都不对
D. final method不能被覆盖
E. final class不能被继承
答案:B
3.下面哪些声明是错误的?A. char c = ‘\u0000’;
B. in t i=’a’;
C. byte b=01;
D. long l=1234567890L;
E. int i=0xFFFFFFFF;
答案:
4.类的实例方法表示的是什么?( )A. 类的行为
B. 父类对象的行为
C. 类的属性
D. 类对象的行为
答案:D
5."类Test定义如下:
public abstract class Test
{
public abstract void m1();
public abstract void m2()
{
System.out.printl n(“hello”);
}
}。
Java笔试200题1) 给定某Java程序的main方法如下所示,该程序的运行结果是()。
public static void main(String[] args) {boolean boo = true;if (boo == false) {System.out.println("a");} else {System.out.println("b");}}A. 输出aB. 输出bC. 输出abD. 运行时出错2) 在Java中,下列代码的运行结果是()。
public static void main(String[] args) {int a=1,b=2,c=3;if(a<0)if(b<0)c=10;elsec=20;System.out.println(c);}A. 输出:10B. 输出:20C. 输出:3D. 编译报错3) 分析下面的Java程序段,编译运行后的输出结果是()。
public class Test {public void changeString(StringBuffer sb) {sb.append("stringbuffer2");}public static void main(String[] args) {Test a = new Test();StringBuffer sb = new StringBuffer("stringbuffer1");a.changeString(sb);System.out.println("sb = " + sb);}}A. sb = stringbuffer2stringbuffer1B. sb = stringbuffer1C. sb = stringbuffer2D. sb = stringbuffer1stringbuffer24) 在Java中,包有多种用途,但不包含()。
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.如果你被要求写一段代码读取一个图片文件,那么一般使用哪种Stream?A. ObjectInputStreamB. FileInputStreamC. FileReaderD. DataInputStream答案:D2.软件设计阶段的输出主要是:A. 伪代码B. 程序C. 模块D. 设计规格说明书答案:D3.不同级别的用户对同一对象拥有不同的访问权限或某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动,这种情况最好使用什么模式?A. Fasade模式B. Bridge模式C. Adapter模式D. Proxy模式答案:D4.栈和队列的共同特点是:A. 都是先进后出B. 只允许在端点处插入和删除元素C. 都是先进先出D. 没有共同点答案:B5."关于以下程序代码的说明正确的是:1. public class HasStatic {2. private static int x=100;3. public static void main(String args[]) {4. HasStatic hs1=new HasStatic();5. hs1.x++;6. HasStatic hs2=new HasStatic();7. hs2.x++;8. hs1=new HasStatic();9. hs1.x++;10. HasStatic.x--;11. System.out.println(“x=”+x);12. }13. }A. 10行不能通过编译,因为x是私有静态变量B. 5行不能通过编译,因为引用了私有静态变量C. 程序通过编译,输出结果为:x=102D. 程序通过编译,输出结果为:x=103答案:C6.PL/SQL中用来判断FETCH语句是否成功,并且在FETCH语句失败时返回逻辑真的属性是:A. %NOTFOUNDB. %FOUNDC. %ISOPEND. %ROWCOUNT答案:A7.在ORACLE中,关于同义词说法错误的是:A. 可以为存储过程创建同义词B. 同义词可以和表重名C. 共有同义词和私有同义词创建的权限不同D. 同义词只能由创建同义词的用户使用答案:D8." 在下面的代码中:public class AyeAye{int i=40;int j ;public AyeAye(){setValue(i++);}void setValue(int intputValue){int i=20;j=i+1;System.out.println(“j= +j);}}当setValue()方法显示变量j 时,该变量的值为多少?A. 42B. 40C. 21D. 20答案:C9.在Java图形用户界面编程中,若显示一些不需要改动的文本信息,一般是使用()类的对象来实现。
Java基础笔试题一.选择题(共50题,每题2分,共100分。
多选题选不全或选错都不得分。
)1.以下属于面向对象的特征的是(C,D)。
(两项)A) 重载B) 重写C) 封装D) 继承2.以下代码运行输出是(C)public class Person{private String name=”Person”;int age=0;}public class Child extends Person{public String grade;public static void main(String[] args){Person p = new Child();System.out.println();}}A) 输出:PersonB) 没有输出C) 编译出错D) 运行出错3.在使用super 和this关键字时,以下描述正确的是(A)A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B) super()和this()不一定要放在构造方法内第一行C) this()和super()可以同时出现在一个构造函数中D) this()和super()可以在static环境中使用,包括static方法和static语句块4.以下对封装的描述正确的是(D)A) 只能对一个类中的方法进行封装,不能对属性进行封装B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用C) 封装的意义不大,因此在编码时尽量不要使用D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性5.以下对继承的描述错误的是(A)A) Java中的继承允许一个子类继承多个父类B) 父类更具有通用性,子类更具体C) Java中的继承存在着传递性D) 当实例化子类时会递归调用父类中的构造方法6.以下程序的运行结果是(D)class Person{public Person(){System.out.println(“this is a Person”);}}public class Teacher extends Person{private String name=”tom”;public Teacher(){System.out.println(“this is a teacher”);super();}public static void main(String[] args){Teacher teacher = new Teacher();System.out.println();}}A) this is a Personthis is a teachertomB) this is a teacherthis is a PersontomC) 运行出错D) 编译有两处错误7.以下说法错误的是()A) super.方法()可以调用父类的所有非私有方法B) super()可以调用父类的所有非私有构造函数C) super.属性可以调用父类的所有非私有属性D) this和super关键字可以出现在同一个构造函数中8.以下关于final关键字说法错误的是(A,C)(两项)A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性B) final修饰的类肯定不能被继承C) final修饰的方法不能被重载D) final修饰的变量不允许被再次赋值9.访问修饰符作用范围由大到小是(D)A) private-default-protected-publicB) public-default-protected-privateC) private-protected-default-publicD) public-protected-default-private10.以下(D)不是Object类的方法A) clone()B) finalize()C) toString()D) hasNext()11.多态的表现形式有(A)A) 重写B) 抽象C) 继承D) 封装12.以下对重载描述错误的是(B)A) 方法重载只能发生在一个类的内部B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件13.以下(D)添加到ComputerBook中不会出错class Book{protected int getPrice(){return 30;}}public class ComputerBook extends Book{}A) protected float getPrice(){}B) protected int getPrice(int page){}C) int getPrice(){}D) public int getPrice(){return 10;}14.以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new关键字直接实例化15.以下对接口描述错误的有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public、abstract修饰C) 接口中的属性默认使用public、static、final修饰D) 接口不允许多继承16.以下代码,描述正确的有(A)interface IDemo{public static final String name;1void print();2public void getInfo();3}abstract class Person implements IDemo{4 public void print(){}}A) 第1行错误,没有给变量赋值B) 第2行错误,方法没有修饰符C) 第4行错误,没有实现接口的全部方法D) 第3行错误,没有方法的实现17.接口和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数B) 接口没有构造函数C) 抽象类不允许多继承D) 接口中的方法可以有方法体18.以下描述错误的有(C)A) abstract 可以修饰类、接口、方法B) abstract修饰的类主要用于被继承C) abstract 可以修饰变量D) abstract修饰的类,其子类也可以是abstract修饰的19.以下描述正确的有(B)A) 方法的重写应用在一个类的内部B) 方法的重载与返回值类型无关C) 构造方法不能重载D) 构造方法可以重写20.以下程序运行结果是(A)public class Test extends Father{private String name=”test”;public static void main(String[] args){Test test = new Test();System.out.println(test.getName());}}class Father{private String name=”father”;public String getName() {return name;}}A) fatherB) testC) 编译出错D) 运行出错,无输出21.以下对异常的描述不正确的有(C)A) 异常分为Error和ExceptionB) Throwable是所有异常类的父类C) Exception是所有异常类父类D) Exception包括RuntimeException和RuntimeException之外的异常22.在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)A) catchB) tryC) throwsD) throw23.下面代码运行结果是(B)public class Demo{public int add(int a,int b){try{return a+b;}catch(Exception e){System.out.println(“catch 语句块”);}finally{System.out.println(“finally 语句块”);}return 0;}public static void main(String[] args){Demo demo = new Demo();System.out.println(“和是:”+demo.add(9,34));}}A) 编译异常B) finally语句块和是:43C) 和是:43 finally语句块D) catch语句块和是:4324.以下描述不正确的有(D)A) try块不可以省略B) 可以使用多重catch块C) finally块可以省略D) catch块和finally块可以同时省略25.以下对自定义异常描述正确的是(C)A) 自定义异常必须继承ExceptionB) 自定义异常可以继承自ErrorC) 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使用自定义异常没有意义26.以下程序运行结果是(D)public class Test {public int div(int a, int b) {try {return a / b;}catch(Exception e){System.out.println(“Exception”);}catch(NullPointerException e){System.out.println(“ArithmeticException”);}catch (ArithmeticException e) {System.out.println(“ArithmeticException”);} finally {System.out.println(“finally”);}return 0;}public static void main(String[] args) {Test demo = new T est();System.out.println(“商是:” + demo.div(9, 0)); }}A) Exception finally 商是:0B) ArithmeticException finally 商是:0C) finally商是:0D) 编译报错27. 以下对TCP和UDP描述正确的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDPD) UDP数据传输效率高于TCP28. 在Java中,下面对于构造函数的描述正确的是(D)。
题目1:下面不属于基本类型的是:c (选择1项)A) booleanB) longC) StringD) byte题目2:d如下程序中:(1)public class CharToInt(2){(3)public static void main(String[] args)(4){(5)int a,b=10;(6)char c='语';(7)a=b+c;(8)System.out.println("结果是:"+a);(9)}(10)}下面的说法中正确的是:(选择1项)A) 程序运行到第6行会出现编译错误,因为c为char类型,不能把一个汉字赋给一个字符型。
B) 程序运行到第7行会出现编译错误,因为字符型与整型不能进行加法运算。
C) 程序能够正常编译和运行,但是不会输出任何结果。
D) 程序将字符型转换为unicode编码并和b的数值相加的和输出。
题目3:下面的说法中,错误的是:d(选择1项)A) 在Java中标志符可以是字母、下划线、数字或$符号。
B) 在Java中布尔类型不能和数字之间不能来回转换,即false和true不对应任何零或非零的值。
C) 双精度类型double比单精度类型float具有更高的精度和更大的表示范围,但float类型具有速度快、占用内存小的优点。
D) 在Java中布尔值可以用true或false来表示,但是同时也可以用1或0来表示。
题目5:b程序如下:class Test{public static void main(String[] args){int i=1000;for(;;){if(i>999){_______________}}}}下面对程序的横线处填写不同语句的分析正确的是:(选择一项)A) 填充break 使程序能够有退出循环的可能性。
B) 填充continue 将使程序成为死循环,永远无法退出循环。
C) 填充continue 使程序能够有退出循环的可能性。
D) 填充break 将使程序成为死循环,永远无法退出循环。
题目7:b下面的说法中错误的是:(选择一项)A) 类是描述了同一类对象具有的数据和行为。
Java语言中的类将这些数据和行为进行封装,形成了一种复合数据类型B) 在Java的类中可以有三类内容分别是数据的定义、基本输出语句、函数的定义。
C) Java中的封装就是将对象的数据和操作数据的方法相结合,通过方法将对象的数据和实现细节保护起来。
D) Java语言中的多态的含义可以表达为:对外一个接口,内部多种实现。
Java语言支持两种多态:运行时多态和编译时多态。
题目8:a程序如下:public class Demo extends Base{private int count;public Demo(){System.out.println("A Demo object has been created");}protected void addOne(){count++;}}有关类Demo,描述正确的是:(选择1项)A) 当创建一个Demo类的实例对象时,count的值为0。
B) 当创建一个Demo类的实例对象时,count的值是不确定的。
C) 超类对象中可以包含改变count 值的方法。
D) Demo的子类对象可以访问count。
题目9:a程序如下:class Test{private int day;private int month;public String getDate(){return day+"/"+month;}}class Test2{public static void main(String[] args){Test test=new Test();test.day=25;System.out.println(test.getDate());}}有关类的描述正确的是:(选择1项)A) 程序在编译时将出错。
在Test中的day为私有变量,所以类外无法访问。
B) 程序能通过编译,但是不能正常运行。
C) 程序能通过编译,运行时将打印出0/0,因为在Java中int型变量day和month默认为0。
D) 以上说法都不正确。
题目10:c下面关于继承的描述正确的一项是:(选择1项)A) 子类继承父类,那么子类将继承父类的所有内容包括构造方法。
B) 子类继承父类,那么子类可以重写父类的方法,但是一旦重写父类方法后,无法通过子类访问到父类的该方法。
C) 子类继承父类,如果父类中只有一个构造方法并且有参数,那么在子类的构造方法中必须先用super调用父类构造方法并传参。
D) 以上说法都不正确。
题目11:d程序如下:class Test{private int day;public int month;private Test(){System.out.println("I am Test");}private void print(){System.out.println("I am print in Test");}void showme(){print();}}class TestDemo{public static void main(String[] args){Test t=new Test()______________}}下面关于类描述错误的一项是:A) Test类的对象t不能直接访问print方法。
但是可以通过showme方法来间接调用print()方法。
B) Test类的对象t可以直接访问month变量,但是不能直接访问day变量,因为day为私有变量,只有类内可以访问。
C) 该程序能通过编译并运行,但是如果想得到输出“I am print in Test”的结果,需要在横线处填写t.showme()。
D) 该程序无法通过编译,因为在Test类中的构造方法被写成私有,那么Test t=new Test()将无法找到合适的构造方法。
题目12:a程序如下:class Test{private int day;private Test(int d){day=d;}private void print(){System.out.println("I am print in Test");}}class Test2 extends Test{Test(){__(1)__}void show(){(2)}}下面说法中正确的是:(选择1项)A) 如果想使程序能够正常运行,在(1)处必须填写super()方法,并且在super中传参给父类且同时该语句必须为Test()构造方法中的第一句。
B) 如果想使程序能够正常运行,在(1)处必须填写super()方法,但是该方法处于Test ()构造方法中的任何位置均可以。
C) 在show()方法中无法调用父类的print()方法。
D) 在show()方法中可以为day进行赋值,因为Test2继承了Test,则在Test2中也继承了父类的day变量。
题目13:下面哪个关键字,使类不能在被其他的类继承?c(选择1项)A) staticB) finallyC) finalD) instance题目14:a程序如下:String s1=new String("Hello");String s2=new String("there");String s3=new String();下面哪个是合法的操作符?(选择1项)A) s3=s1 + s2;B) s3=s1-s2;C) s3=s1 & s2;D) s3=s1 && s2题目15:b下列描述中错误的是:(选择1项)A) 在一个类的声明里声明的类,也叫做内部类或嵌套类,内部类可以作为外包类的一个成员使用,可以访问外包类的所有成员,包括私有成员。
B) 内部类的访问权限可以被定义为public、protected、private和default。
但是普通类只可以定义public和default两种访问权限。
C) 内部类的访问权限可以被定义为public、protected、private和default。
普通类也可以定义上面四种访问权限,但是通常我们只应用public和default两种访问权限。
题目16:c程序如下:abstract class MineBase{abstract void amethod();static int i;}public class Mine extends MineBase{public static void main(String argv[]){int[] ar = new int[5];for(i = 0;i < ar.length;i++)System.out.println(ar[i]);}}上面程序运行结果是:(选择1项)A) 打印5个0B) 编译出错,数组ar[]必须初始化C) 编译出错,Mine应声明为abstractD) 出现IndexOutOfBounds的异常。
题目17:c下面关于抽象类描述错误的是:(选择1项)A) 抽象类的关键字是abstract,在抽象类中可以定义变量和方法。
B) 抽象类中的方法如果可以有实现体,如果没有实现体,则该方法叫做抽象方法必须加关键字abstract修饰该方法。
C) 抽象类中至少需要有一个方法被定义为抽象方法,在该方法前加abstract,把该方法定义为抽象方法。
D) 抽象类中可以没有抽象方法,即所有的方法全部都有实现体。
但是依旧不能为抽象类定义对象。
题目18:b下面关键字中,如果同时出现时,必须放在第一位的是:(选择1项)A) interfaceB) packageC) importD) class题目19:d下面关于接口的描述错误的是:(选择1项)A) 定义接口的关键字为interface,接口中可以定义变量,但是必须同时为该变量赋值,接口中的方法默认全部为public类型。
B) 实现接口的关键字是implements,其后可以跟多个接口的名字,即实现多继承。
一个类实现了接口,那么必须实现接口中的所有方法。
C) 类实现了接口,必须实现接口中的所有方法,并且接口中的所有方法均为public,在实现类中不可以削弱接口中方法的访问权限。
D) 类实现了接口,实现接口中的方法时可以重写该方法的访问权限,但是无法改变接口中变量的值。
题目20:b下面关于接口和抽象类的说法中正确的是:A) 抽象类使类与类之间依旧具有父子联系,而接口一般只是定义了一种规范,并不使实现的接口之间具有父子关系。