搜索工作 |
搜索工作 公司点评 查工资 看趋势
微信

使用微信服务,更方便

职友集>Java面试题 > Java笔试基础题

Java笔试基础题

2015-03-08 06:30:02 阅读( 232 )

2603人 收藏本页

标签:Java面试题

一、选择题
1. Java中main()函数的返回值是什么类型? ( )
A、String B、int C、char D、void
2. 下列哪些语句关于Java内存回收的说明是正确的? ( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序允许程序员直接释放内存
C、内存回收程序负责释放无用内存
D、内存回收程序可以在指定的时间释放内存对象
3. 以下关于继承的叙述正确的是( )。
A、在Java中一个类只能实现一个接口
B、在Java中类只允许单一继承
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
4. Java Applet中的paint()方法使用哪种类型的参数? ( )
A、Graphics B、Graphics2D
C、String D、Color
5. 如下哪个字符串是Java中的合法标6. 识符?( )
A、fieldname B、super C、3number D、#number
7. 在使用interface声明一个接口时,8. 只可以使用( )修饰符修饰该接口。
A、private B、protected
C、private protected D、public
9. 下面( )函数是public void example( ){…}的重载函数?
A、public void example( ){…}
B、public void example( int m ){…}
C、public void example2( ){…}
D、public int example ( ){…}
10. 在浏览器中执行applet 程序,11. 以下选项中的( )方法将被最先执行。
A、init() B、start() C、destroy() D、stop()
12. 在使用interface声明一个接口时,13. 只可以使用( )修饰符修饰该接口。
A、private B、protected
C、private protected D、public
14. 有程序片段如下,15. 以下表示式的结果为true的是( )。
Float s=new Float(0.1f);
Float t=new Float(0.1f);
Double u=new Double(0.1);
A、s= =t B、s.equals(t)
C、u.equals(s) D、t.equals(u)
16. 关于异常的含义,17. 下列描述中最正确的一个是( )。
A 程序编译错误 B 程序语法错误
C 程序运行时的错误 D 程序编译和运行时发生的错误
18. 容器 Panel 默认的布局管理器是( )。
A、BorderLayout B、FlowLayout
C、GridLayout D、CardLayout
19. 下面哪个方法与applet的显示无关? ( )
A、update() B、draw()
C、repaint() D、paint()
20. 已知如下代码:
public class Test{
public static void main ( String arg[] )
{
long a[] = new long[10];
System.out.println ( a[6] );
}
}
请问哪个语句是正确的? ( )
A、程序输出 null B、程序输出 0
C、因为long[]数组声明不正确,程序不能被编译
D、程序被编译,但在运行时将抛出一个ArrayIndexOutOfBoundsException异常
21. Java语言不22. 是( )
A、高级语言 B、编译型语言
C、结构化设计语言 D、面向对象设计语言
23. 关于以下程序段的说明正确的是 ( )
public class ArrayTest {
public static void main(String args[]) {
try {
int x[]=new int[-5];
System.out.println(“此行将无法被执行!”);
} catch(NegativeArraySizeException e) {
System.out.println(“exception: 数组下标24. 不25. 能为负数。”);
}
}
}
A、编译通过,26. 输出:
此行将无法被执行!
B、编译通过,27. 输出:
此行将无法被执行!
exception: 数组下标28. 不29. 能为负数。
C、编译通过,30. 输出:
exception: 数组下标31. 不32. 能为负数。
D、编译不33. 能通过
34. Java源文件和编译后的文件扩展名35. 分别为( )。
A、.class和 .java B、 .java和 .class
C、.class和 .class D、 .java和 .java
36. 编译Java Application 源程序文件将产生相应的字节码文件,37. 这些字节码文件的扩展名38. 为( )。
A、 .java B、.class
C、.html D、.exe
39. 以下有关构造函数的说法,40. 正确的是:( )。
A、一个类的构造函数可以有多个
B、构造函数在类定义时被调用
C、构造函数只能由对象中的其它方法调用
D、构造函数可以和类同名,也可以和类名不同
41. 为AB类的一个无形式参数且无返回值的方法method书写方法头,42. 使得使用类名43. AB作为前缀就可以调用它(即可以通过类名44. 调用方法method),45. 该方法头的形式为( )。
A、static void method( ) B、public void method( )
C、final void method( ) D、abstract void method( )
46. 下列代码的执行结果是: ( )。
public class Test5{
public static void main(String args[]){
String s1=new String(“hello”);
String s2=new String(“hello”);
System.out.print(s1==s2);
System.out.print(“,”);
System.out.println(s1.equals(s2));
}
}
A、true,false B、true,true
C、false,true D、false,false.
47. 给出如下初始化语句
String s1=new String(“Hello”);
String s2=new String(“there”);
String s3=new String();
以下哪种操作是合法的?
A、s3=s1+s2; B、s3=s1-s2; C、s3=s1 &s2; D、s3=s1 & &s2;
48. 下列不49. 是Java关键字的是( )。
A、 final B、 finally C、null D、sizeof
50. 以下( )是java.io包中的一个兼有输入输出功能的类。
A、Object
B、Serializable
C、RandomaccessFile
D、java.io中不51. 存在这样的类
52. 容器Panel和Applet缺省使用的布局管理器是( )
A、BorderLayout B、FlowLayout
C、GridLayout D、CardLayout
53. 下面哪个语句正确地声明一个整型的二维数组? ( )
A int b[][] = new int[][];
B int b[100][100] = new int[][];
C int []a[] = new int[100][100];
D int a[][] = new int[100][100];
54. 以下哪个是java.io包中的一个兼有输入输出功能的类。( )
A、Object
B、Serializable
C、RandomaccessFile
D、java.io中不55. 存在这样的类
56. 给出如下代码:
class Test{
private int m;
public static void fun( ) {
// some code…
}
}
如何使成员变量m 被函数fun( )直接访问? ( )
A、将private int m 改为protected int m
B、将private int m 改为 public int m
C、将private int m 改为 static int m
D、将private int m 改为 int m
57. 以下有关类的继承的说明中正确的是:( )
A、子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性
B、子类只能继承父类的方法,不能继承父类的属性
C、子类只能继承父类的非私有属性,不能继承父类的方法
D、子类不能继承父类的私有属性
58. 在浏览器中执行applet 程序,59. 以下选项中的( )方法将被最先执行。
A、init() B、start() C、destroy() D、stop()
二、简答题
1、 请说明this,2、 super,3、 final各自的作用。
4、 试解释方法覆盖和方法重载的区分。
5、 请解释面向对象程序设计相关的几个概念:继承、多态、重载。
多态性就是多种表现形式,具体来说,可以用”一个对外接口,多个内在实现方法”表示。
在面向对象理论中,多态性的定义是:同一操作作用于不同的类的实例,将产生不同的执行结果,即不同类的对象收到相同的消息时,得到不同的结果。多态性包含编译时的多态性、运行时的多态性两大类。
重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。

6、 请说明抽象类和接口的异同7、 点。
8、 实例变量与局部变量的区别。
9、 类与对象的关系。
三、阅读程序
1. 以下程序段的输出结果为 。
public class TestArray{
public static void main(String args[ ]){
int i=0, j=0, k=0;
int a[ ] = {5,9,6,8,7};
for ( i = 0 ; i < a.length-1; i ++ )
{
k = i;
for ( j = i ; j < a.length ; j++ )
if ( a[j]<a[k] ) k = j;
if(i!=k) { int temp =a; a = a[k]; a[k] = temp; }
}
for ( i =0 ; i<a.length; i++ )
System.out.print(a+” “);
System.out.println( );
}
}
2. 以下程序的输出结果为 。
class StringTest1 {
public static void main(String[] args) {
String s1=”hello”;
String s2=new String(“hello”);
if(s1==s2) System.out.println(“s1与 s2指向同一个对象”);
else if(s1.equals(s2)) System.out.println(“s1与 s2内容相等”);
else System.out.println(“不相等”);
}
}
3. 写出以下程序的运行结果 。
public class TryCatchFinally{
static void Proc( int sel ){
try{
if( sel==0 ){
System.out.println(“no Exception “);
return;
}
else if( sel==1 ){ int i=0; int j=4/i;}
}catch( ArithmeticException e ) {
System.out.println(“Catch “);
}catch( Exception e ) {
System.out.println(“Will not be executed”);
}finally{
System.out.println(“finally”);
}
}
public static void main( String args[] ){
Proc( 0 ); Proc( 1 );
}
}
4. 阅读以下程序,5. 写出输出结果 。
class Animal{
Animal( ) { System.out.print (“Animal “); }
}
public class Dog extends Animal{
Dog( ) { System.out.print (“Dog “); }
public static void main(String[] args){
Dog snoppy= new Dog( );
}
}
6. 阅读以下程序,7. 若在dos命令行输入:java Exp1 DEFabc,8. 则输出为 。(注:Character.toUpperCase(char arg) 表示返回将形参arg的大写字母;Character.toLowerCase(char arg) 表示返回将形参arg的小写字母。)
class Exp1 {
public static void main(String[] args) {
String s,s1=”";
char c;
s=args[0];
for (int i=0;i<s.length();i++)
{
c=s.charAt(i);
if(c>=’a’ & & c<=’z') s1=s1+Character.toUpperCase(c);
else s1=s1+Character.toLowerCase(c);
}
System.out.println(s1);
}
}
9. 阅读以下程序,10. 写出输出结果 。
public class Test4{
public static void main(String args[]){
int a=4,b=6,c=8;
String s=”abc”;
System.out.println(a+b+s+c);
System.out.println( );
}

四、编程题
1、 写出一个Point(点)类,2、 该类具有x, y(表示点的横、纵坐标3、 )两个属性,4、 并定义两个构造方法,5、 一个无参数,6、 将x,y均设置为0,7、 另一对坐标8、 值为参数,9、 设置x,y为给定坐标10、 值。该类的show方法输出该点的坐标11、 值。
12、 请使用java语言编写一段程序实现:从键盘输入一段英文,13、 统计这段文字中单词的个数,14、 并输出其中由四个字母组成的单词(以5个一行输出)。
15、 从键盘输入一行文本做如下处理:显示各元音字母出现的次数。
16、 设计雇员Employee类,17、 记录雇员的情况,18、 包括姓名19、 、年薪、受雇时间,20、 要求定义MyDate类作为受雇时间,21、 其中包括工作的年、月、日,22、 并设计一个无参构造函数、一个有参构造函数和输出该类对象信息的方法。编写测试类测试Employee类。

来自IT公司面试手册

下一篇:请用Java代码解释一下什么是多态

上一篇:什么是内部类?static nested class和inner class的不同。

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题