我在采访中绊倒的问题

yah*_*ahh 3 java

我被问到几个java面试问题,我不知道如何解决可以使用一些答案

  1. 编写一个接受int的方法,这样方法就可以了

    public void somemethd(int i){}

    现在,如果i = 1那么它应该打印为true,如果i = 2,它应该打印为false但是你不能使用任何条件运算符也不能使用if或switch

  2. 两个线程如何在彼此之间传递数据,就像让我们说你启动2个线程并且你想让一个线程让另一个线程等待.他改写了这个问题,使其更简单,如果我在1个线程中有变量,我想将它发送到另一个线程怎么做.

  3. 如果在基类中有一个非静态方法并且你在派生类中使它成为一个静态方法,你会得到同样的错误,就像你在base中有一个静态方法一样,你试图在派生类中使它成为非静态方法

  4. 对于不同的方法,除了同名之外的重载有什么用?(我想我应该说构造函数重载但它只是没有来找我,还有什么)

  5. 语法不正确,但你可以假设一切都很好

    class base{

    show(){

    this.mymethod(); }

    mymethod(){ /... } }

    class derived extends base{

    show(){
    
    super.mymethod();
    }
    
    mymethod(){
    /...
    }
    }
    
    Run Code Online (Sandbox Code Playgroud)

现在当我做以下事情时会发生什么

一个.

base b = new derived();

   b.show(); 
Run Code Online (Sandbox Code Playgroud)

derived d= new base();

   d.show();
Run Code Online (Sandbox Code Playgroud)

C.如果基地ni没有表演方法怎么办呢

 base b = new derived();

   b.show(); 
Run Code Online (Sandbox Code Playgroud)

d.如果基地ni没有表演方法怎么办呢

derived d = new base(); d.show();

Pet*_*rey 11

更新的一个解决方案1)

void printIsOne(int n) {
   System.out.println("?,true,false".split(",")[n]);
}
Run Code Online (Sandbox Code Playgroud)

2)您不能在线程之间传递局部变量.但是,您可以将值从一个线程传递到另一个线程并让它等待该值.恕我直言:最简单的方法是使用BlockingQueue.

3)在这两种情况下都会出现不同的错误,但基本上你不能在派生类中将其中一个更改为另一个.

4)落后的可比性.您可能拥有代码,例如测试代码的负载,它使用一组args调用方法,但是您希望以某种方式更改它而不更改现有代码.

5)试试吧(提示:某些组合得到编译器错误)

  • 有趣的方法! (3认同)

小智 8

编写一个接受int的方法,如果为1则打印为true,如果为true则打印为false,但是如果使用if或swith或任何条件运算符则不能使用

我猜你的意思是真的如果是1而假的是0,在这种情况下你可以这样做:

void printValue(int value)
{
    String[] values = { "false", "true" };
    System.out.println(values[value]);
}
Run Code Online (Sandbox Code Playgroud)