2011JAVA面试题汇总(10)

2019-08-29 19:11

JAVA 面试题汇总

改错题

public void doSomething() {

System.out.println(\} }

答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为\0;\。 8)

public class Something {

public static void main(String[] args) {

Something s = new Something();

System.out.println(\}

public String doSomething() {

return \} }

答案: 错。看上去在main里访问doSomething方法没有什么问题,毕竟两个方法都在同一个class里。但仔细看,main是静态的。静态方法不能直接访问非静态方法。可改成\。同理,静态不能访问非静态成员变量。 9)

此处,Something类的文件名叫OtherThing.java class Something {

private static void main(String[] something_to_do) {

System.out.println(\} }

答案: 正确。从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。 10) interface A{

~ 41 ~

JAVA 面试题汇总

改错题

int x = 0; } class B{

int x =1; }

class C extends B implements A {

public void pX(){

System.out.println(x); }

public static void main(String[] args) {

new C().pX(); } }

答案:错误。在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。对于父类的变量,可以用super.x来明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确。 11)

interface Playable {

void play(); }

interface Bounceable {

void play(); }

interface Rollable extends Playable, Bounceable {

Ball ball = new Ball(\}

class Ball implements Rollable {

private String name; public String getName() {

return name; }

public Ball(String name) {

~ 42 ~

JAVA 面试题汇总

改错题

this.name = name; }

public void play() {

ball = new Ball(\System.out.println(ball.getName()); } }

答案: 错。\Rollable extends Playable, Bounceable\没有问题。interface可继承多个interfaces,所以这里没错。问题出在interface Rollable里的\。任何在interface里声明的interface variable (接口变量,也可称成员变量),默认为public static final。也就是说\实际上是\Ball(\。在Ball类的Play()方法中,\= new Ball(\改变了ball的reference,而这里的ball来自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改变reference的。因此编译器将在\这里显示有错。

~ 43 ~

JAVA 面试题汇总

编程题

编程题

1) 在控制台中输入一个字符串,然后按照逆序打印出来 import java.io.*; public class test{

public static void main(String args[]){

StringBuffer str = new StringBuffer(new Scanner(System.in).next());

System.out.println(str.reverse().toString());

}

2) 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j;

public static void main(String args[]){

ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i<2;i++){ }

Thread t=new Thread(inc); t.start();

t=new Thread(dec); t.start();

}

private synchronized void inc(){

j++;

System.out.println(Thread.currentThread().getName()+\

}

private synchronized void dec(){

j--;

System.out.println(Thread.currentThread().getName()+\

}

class Inc implements Runnable{

~ 44 ~

JAVA 面试题汇总

编程题

}

public void run(){ }

for(int i=0;i<100;i++){ }

inc();

class Dec implements Runnable{ } }

3) 将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七),请用java语言编一段程序实现! public class Reader { private String strNum;

private String strNumChFormat; private String strNumTemp; private int intNumLen; private String strBegin; public Reader(String strNum) { }

public boolean check(String strNum) { boolean valid = false;

if (strNum.substring(0,1).equals(\ } try {

new Double(strNum); valid = true;

} catch (NumberFormatException ex) {

this.strNum = strNum.substring(1); this.strNum = strNum; public void run(){ }

for(int i=0;i<100;i++){ }

dec();

~ 45 ~


2011JAVA面试题汇总(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:母婴护理师(高级)课程测试试卷一

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: