登录
  • #美国面经
  • #码农类general
  • #面试经验
  • #yahoo

Yahoo onsite 新鲜出炉

hj735
2171
6
13号面的。同行一起面的五个老中 两个阿三 两个老白

java immutable object 没答出来 其实就是一个状态不可变的对象 每次状态改变产生新的对象 例如string对象

一个lock实例传到多个myclass实例中去 如何让myclass实现trylock方法

没做出来 提示用mutex互斥量。 但是我记得用semaphore会引起block,那就不是trylock了而是lock了。

所以估计是搞个volatile的静态变量,每次lock之前检查变量值,如果有thread已经lock了那就return false,如果没有就lock 然后修改值 return true。

一下是网上找的一个实现,有些出入,大概意思差不多吧。这题没答上来完全是对题目意思没有领会,这里表现不太好。



  1. import java.util.concurrent.atomic.AtomicBoolean;



  2. /**

  3. * @author asme2u

    [*[hide=188]

    本帖隐藏的内容需要积分高于 188 才可浏览,点击前往一亩三分地论坛阅读

    inal String[] args) {[br]
    Super obj = new Sub();

    obj.bar();

    }

    public static class Super {

    public void foo() {

    System.out.println("this is super.");

    }

    public void bar() {

    foo();

    }

    }

    public static class Sub extends Super {

    public void foo() {

    System.out.println("this is sub.");

    }

    }

    这里和C++搞混了,我说如果加virtual那么输出sub,不加输出super,晕。 其实java中没有virtual关键字,都是自动runtime binding的,所以只要子类重写方法那么肯定调用子类的方法。

    C++代码:
6条回复
热度排序

发表回复