Android面试Android面试Android

Android 2019笔试题

2019-05-05  本文已影响265人  此人丶不用抒情

最近为了面试新的开发人员准备一套笔试题,选择题第一题和简答题第六题是因为业务需求需要培养一个openGL ES和C++方面的人才,所以仅供参考

一、选择题(多选)

1、下面是属于GLSurFaceView特性的是: (          )

A、管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。
B、管理一个EGL display,它能让opengl把内容渲染到上述的surface上。
C、让渲染器在独立的线程里运作,和UI线程分离。
D、可以直接从内存或者DMA等硬件接口取得图像数据

2、指出下列程序运行的结果: (          )
public class Example {
   String str = new String("good");
   char[] ch = {'a','b','c'};
     
   public static void main(String[]args) {
      Example ex = new test2();
      ex.change(ex.str,ex.ch);
      System.out.print(ex.str+" and ");
      System.out.println(ex.ch);
   }
     
   public void change(String str,char[] ch) {
      str = "test ok";
      ch[0] = 'g';
   }
}

A、good and abc
B、good and gbc
C、test ok and abc
D、test ok and gbc

3、下面这段程序的输出结果是: (          )
public class Main {
    public static void main(String[] args) {
        split(12);
    }
    public static int split(int number) {
        if (number > 1) {
            if (number % 2 != 0) System.out.print(split((number + 1) / 2));
                System.out.print(split(number / 2));
            }
        return number;
       }
}

A、12136
B、63121
C、61213
D、11236

4、关于java集合下列说法不正确的有哪些: (          )

A、HashSet 它是线程安全的,不允许存储相同的对象
B、ConcurrentHashMap 它是线程安全的,其中存储的键对象可以重复,值对象不能重复
C、Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用
D、ArrayList线程安全的,允许存放重复对象

5、关于下面的一段代码,以下哪些说法是正确的:(          )
public static void main(String[] args) {
    String a = new String("myString");
    String b = "myString";
    String c = "my" + "String";
    String d = c;
    System.out.print(a == b);
    System.out.print(a == c);
    System.out.print(b == c);
    System.out.print(b == d);
}

A、System.out.print(a == b)打印出来的是false
B、System.out.print(a == c)打印出来的是true
C、System.out.print(b == c)打印出来的是false
D、System.out.print(b == d)打印出来的是true

6、以下属于Activity的启动模式有? (          )

A、SingleTop
A、SingleActivity
A、SingleTask
A、SingleIntance

7、FirstActivity跳转到SecondActivity后,然后点击返回键,以下执行顺序不可能出现的是:(          )

A、SecondActivity的onPause()->FirstActivity的onRestart()->FirstActivity的onResume()->SecondActivity的onStop()
B、SecondActivity的onPause()->SecondActivity的onStop()->SecondActivity的onDestroy()->FirstActivity的onRestart()->FirstActivity的onResume()
C、FirstActivity的onRestart() ->FirstActivity的onResume()->SecondActivity的onPause()->SecondActivity的onStop() ->SecondActivity的
onDestroy()
D、FirstActivity的onRestart()->SecondActivity的onPause()->SecondActivity的onStop()->SecondActivity的onDestroy()->FirstActivity的onResume()

8、关于Android项目工程下面的assets目录的作用描述不正确的是: (          )

A、放置应用的缓存资源
B、主要放置多媒体等数据文件
C、放置字符串,颜色,数组等常量数据
D、放置一些与UI相应的布局文件,都是xml文件

9、关于Java内存区域下列说法不正确的有哪些: (          )

A、程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器,每个线程都需要一个独立的程序计数器.
B、Java虚拟机栈描述的是java方法执行的内存模型,每个方法被执行的时候都会创建一个栈帧,用于存储局部变量表、类信息、动态链接等信息
C、Java堆是java虚拟机所管理的内存中最大的一块,每个线程都拥有一块内存区域,所有的对象实例以及数组都在这里分配内存。
D、方法区是各个线程共享的内存区域,它用于存储已经被虚拟机加载的常量、即时编译器编译后的代码、静态变量等数据。

10、关于下面一段代码,以下说法正确的是: (          )
public class Test {
    private synchronized void a() {
    }
    private void b() {
        synchronized (this) {
        }
    }
    private synchronized static void c() {
    }
    private void d() {
        synchronized (Test.class) {
        }
    }
}

A、同一个对象,分别调用方法a和b,锁住的是同一个对象
B、同一个对象,分别调用方法a和c,锁住的是同一个对象
C、同一个对象,分别调用方法b和c,锁住的不是同一个对象
D、同一个对象,分别调用方法a、b、c,锁住的不是同一个对象

二、简答题

1、请简述一下Activity的生命周期以及在什么情况下会执行相应的生命周期?















2、针对RecyclerView你做了哪些优化?















3、如何实现多线程中的同步?















4、 是否使用过 IntentService,作用是什么 ?















5、如APP运行所需内存较大,在一些低端手机上经常会无法正常工作。请给出定位、解决内存问题的方案思路,可以结合你曾经解决过的场景说明。















6、 C 语言中,int a = 1;,那么 &a 代表什么?







上一篇下一篇

猜你喜欢

热点阅读