上周五接到LB面试,不得不说,技术为导向的公司问的东西确实很有含金量,注重你的思维能力,虽然我只有一年的工作经验但是确实此次面试获得了思维的提升。许多之前没有想过的问题,或者说想过但是没有去刨根问底的问题都被问倒了。下面对一些面试的问题进行简单整理:
1、印象最深的是最后一轮总监面,问我对谷歌原生的api哪里最熟悉,我答handler。接着问我handler中looper的工作原理。looper会一直循环吗?循环浪费资源?造成ANR?如果不是一直循环那是怎样从MessageQueue中取消息的?如果是一直循环取,postDelayed的时间设置为1年怎么办?
2018/5/10 百度
1、static 修饰的变量能不能被修改
1 public class Test1 { 2 //1.static 修饰过的变量可不可以被修改 3 public static int i = 0; 4 public static void main(String[] args) { 5 Test1 a = new Test1(); 6 Test1 b = new Test1(); 7 //对a赋值,这块是个陷阱。 8 Test1.i=3; 9 Test1.i=4; 10 //问输出i 11 System.out.println(i); 12 } 13 }
2、
public class Test2 { //2.锁,线程安全 //List的常用表现形式,ArrayList和LinkedList的区别用法,原理 }
3、
public class Test3 { //3.接口实现和抽象类 abstract class A implements B{ //①全部实现 //②部分实现 public abstract void a(); } public abstract interface B{ // public abstract void a(); // public abstract void b(); // public abstract void c(); void a(); void b(); void c(); } }
4、
public class Test4 { //4.final修饰的重写和重载 public final int j = 0; public Test4(){} public final void a(){} } public class Test44 extends Test4 { public Test44(){ super(); } public static void main(String[] args) { Test44 a = new Test44(); System.out.println("a"); } }