java试题

1String是最基本的数据类型吗?
基本数据类型包括byteintcharlongfloatdoublebooleanshort
java.lang.String
类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer

 

2int Integer 有什么区别
Java
提供两种不同的类型:引用类型和原始类型(或内置类型)。Intjava的原始数据类型,Integerjavaint提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
booleanBoolean

charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

 

3&&&的区别。 
    &
是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and

 

4errorexception有什么区别?
error
表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
    exception
表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

 

5、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。String有有length()这个方法。

 

6try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。

 

7char型变量中能不能存贮一个中文汉字?为什么? 
能够定义成为一个中文的,因为java中以unicode编码,一个char16个字节,所以放一个中文是没问题的

 

 

 

856、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 
同步的实现方面有两种,分别是synchronized,waitnotify

 

9Java中的线程有四种状态分别是:运行、就绪、挂起、结束。

 

10、、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Java
通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:trycatchthrowthrowsfinally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。
throw
语句用来明确地抛出一个"异常"
throws
用来标明一个成员函数可能抛出的各种"异常"
Finally
为确保一段代码不管发生什么"异常"都被执行一段代码。
可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"try语句。

 

11、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以。必须只有一个类名与文件名相同。

 

12java中会存在内存泄漏吗,请简单描述。
会。如:int i,i2;  return (i-i2);   //when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。


13
java中实现多态的机制是什么?
方法的重写Overriding和重载OverloadingJava多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

 

14、静态变量和实例变量的区别?
static i = 10; //
常量
class A a;  a.i =10;//
可变

 

15、在JAVA中,如何跳出当前的多重嵌套循环?
break; return 方法。

 

 

16作用域public,private,protected,以及不写时的区别

答:区别如下:

作用域

当前类

同一package 

子孙类 

 其他package

public

protected 

×

friendly

×

×

 private 

×

×

×

不写时默认为friendly

 

17、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)

  答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数

 

18、float型float f=3.4是否正确?

答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4; float f = 3.4f;

 

19heapstack有什么区别

答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素

 

20java类是否可以多继承,怎么实现多继承?

答:java没有多继承,但可以通过接口的形式来达到多继承的目地。

 

21、面向对象的特点

答:面向对象有三大特点:封装、继承、多态。(如果要回答四个,可加上抽象性这一特点)

 

22、类变量的初始化

答:在Java中类变量在局部中一定要初始化,因为局部变量会覆盖全局变量,否则会报错:变量未初始化。全局变量则可以不初始化,而到具体的内部方法或其他的类成员中初始化。

 

 

 

23、数组的定义

答:数组是作为一种对象实现的。数组元素可以包含作何类型值,但数组里面的每个元素的类型必须一致创建数组步聚如下:

l         声明

l         构造

l         初始化

 

24== equals 的区别

"==" 比较的是两个对象的引用 (references),并不是他们的内容.

equals(Object) 方法与 "==" 相比的特殊之处就在于它可以覆盖,所以我们可以通过覆盖的办法让它不是比较引用而是比较数据内容。当然 JDK 中也有覆盖过 equals(Object) 方法的类,如 java.lang.String,它就覆盖了从 Object 继承来的的 equals(Object) 方法,用以比较字符串内容是否相同。

 

25、接口中方法的前面有哪些修饰符 
 
访问权限返回值类型是否静态是否抽象

 

 

 

JAVA代码查错
1.

abstract class Name {
   private String name;
   public abstract boolean isStupidName(String name) {}
}

这有何错误?
答案: 错。abstract method必须以分号结尾,且不带花括号。

 

2.
public class Something {

   void doSomething () {
       private String s = "";
       int l = s.length();
   }
}
有错吗?
答案: 错。局部变量前不能放置任何访问修饰符 (privatepublic,和protected)final可以用来修饰局部变量
(final
如同abstractstrictfp,都是非访问修饰符,strictfp只能修饰classmethod而非variable)

 

3.
public class Something {

   public int addOne(final int x) {
       return ++x;
   }
}
这个比较明显。
答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。

 

4.
class Something {

    int i;
    public void doSomething() {
        System.out.println("i = " + i);
    }
} 
有什么错呢? 看不出来啊。
答案: 正确。输出的是"i = 0"int i属於instant variable (实例变量,或叫成员变量)instant variabledefault valueintdefault value0

 

 


5.

class Something {
    final int i;
    public void doSomething() {
        System.out.println("i = " + i);
    }
}
和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?
答案: 错。final int i是个finalinstant variable (实例变量,或叫成员变量)finalinstant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为"final int i = 0;"

 

 

判断题:

 

1、如果将一个对象强制类型转换为一个不兼容的类型,将引发NullPointerException异常。    (错)

2JavaObject类是最顶层的类。(对)

3 程序在编译通过以后,仍然可能出现运行时错误和逻辑错误。   (对)

4、在循环语句中,使用continue;语句可以跳出循环。   (错)

5Java的接口方法必须声明成public

6、如果定义int[]nValues={1,2,3,4};那么nValues为整数类型.

7Java可以在方法内定义内部类.

8Protected修饰的类成员只能被其子类访问

9、通过在程序中引入“ import javax.swing.*; ”语句,就可以使用 javax.swing 包中的所有类(包括其嵌套的子包中的类)。   (错)

===== 要使用嵌套子包中的类,必须再次添加 import 子句

 

 

单项选择题

1.在下述字符串中,不属于Java语言关键字的是 ( )
  Afloat
  Bnew
  Cjava
  Dreturn

 

2.在以下供选择的概念中,不属于面向对象语言概念的是 ( )
  A.消息
  B.模块
  C.继承
  D.多态性

 

3. 以下哪个为真CD

  Interger a = new Interger(9);

  Interger b = new Interger(9);

  Long c = New Long(9)

-----

  A.  a==b

  B.  b==c

  C.  a.equals(b)

  D.  b.equals(new Interger(9))

 

4. 以下哪两个方法可以加到three 
  class one{ 

    public one foo(){return this;} 
}

  class two extends one{ 
    public one foo(){return this;} 

  class three extends two{ 
  //插入到这 

--- 
  A.  public void foo(){} 
  B.  public int foo(){return 1;} 
  C.  public one foo(){return this;} 
  D.  public two foo(){return this;} 
  E.  public object foo(){return this;}

 

5.以下代码运行结果是D

  try{ 
      //此行会抛出NullPointedException 
  } 
  catch(NullPointedExecption e){ 
      System.out.print("1") 
  } 
  catch(RuntimeExection e){ 
      System.out.print("2") 
  } 
  finally{ 
      System.out.print("3") 


  A. 1 
  B. 12 
  C. 123 
  D. 13 
  E. 23

6.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的B
ArrayList ar = new ArrayList();//也对

A ArrayList myList=new Object();

B List myList=new ArrayList();

C ArrayList myList=new List();

D List myList=new List();

 

7.paint()方法使用哪种类型的参数?A

A Graphics

B Graphics2D

C String

D Color

 

8.运行下列程序, 会产生什么结果 a
public class X extends Thread implements Runable{ 

 public void run(){ 
  System.out.println("this is run()"); 
 
 public static void main(String args[]) 
 
  Thread t=new Thread(new X()); 
  t.start(); 
 
}

A 第一行会产生编译错误

B 第六行会产生编译错误

C 第六行会产生运行错误

D 程序会运行和启动

 

9.给出下面代码: c
public class Person{ 
  static int arr[] = new int[10]; 
  public static void main(String a[]) 
  
   System.out.println(arr[1]); 
  
}

那个语句是正确的?

A 编译时将产生错误;

B 编译时正确,运行时将产生错误;

C 输出零;

D 输出空

 

 

 

 

 

10.下列哪些语句关于内存回收的说明是正确的? bc

A 程序员必须创建一个线程来释放内存;

B 内存回收程序负责释放无用内存

C 内存回收程序允许程序员直接释放内存

D 内存回收程序可以在指定的时间释放内存对象

 

11.指出正确的表达式 ABD

A double a=1.0;

B Double a=new Double(1.0);

C byte a = 340; //-128~+127

D Byte a = 120;

 

12.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。 BCD

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)

 

13.下列哪些情况可以终止当前线程的运行? AB

A 抛出一个例外时。

B 当该线程调用sleep()方法时。

C 当创建一个新线程时。

D 当一个优先级高的线程进入就绪状态时

 

 

http://blog.csdn.net/bitfan/article/details/6083926

http://blog.csdn.net/langzipiaobo99/article/details/7098972

http://blog.csdn.net/faintbear/article/details/203640

http://blog.csdn.net/menhuanxiyou/article/details/5554485

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值