你好,你面试的问题涉及到了Java集合、线程安全、JVM、字符串缓冲区、Java基本数据类型、Android Activity的启动方式、单例模式、Activity生命周期、数据结构等。 1. Java集合:HashMap的底层实现是数组+链表,线程不安全。ConcurrentHashMap是线程安全的,底层实现是数组+链表+红黑树。Hashtable底层只用synchronized实现线程安全。 2. 线程安全:可以通过加锁、使用线程安全的类、使用原子类等方式实现线程安全。 3. JVM:Class文件存在磁盘上,class对象存在内存中。垃圾回收算法有标记-清除算法、复制算法、标记-整理算法等。 4. final关键字:final修饰的变量不可变,final修饰的类不可被继承,final修饰的方法不可被重写。 5. 字符串缓冲区:StringBuilder和StringBuffer。 6. Java基本数据类型:byte、short、int、long、float、double、char、boolean。 7. Android Activity:启动方式有standard、singleTop、singleTask、singleInstance。onNewIntent()在Activity的启动模式为singleTop或singleTask,且Activity已经启动的情况下调用。 8. 单例模式:在Activity1启动Activity2时,Activity1会调用onPause()方法,Activity2会调用onCreate()、onStart()、onResume()方法。当Activity2后退显示Activity1时,Activity2会调用onPause()、onStop()方法,Activity1会调用onRestart()、onStart()、onResume()方法。 9. 数据结构:两个栈实现一个队列,可以使用两个栈,一个作为输入栈,一个作为输出栈。当输入栈有元素时,将输入栈的元素弹出并压入输出栈,直到输入栈为空。当输出栈要取元素时,从输出栈弹出元素。 以上是对你面试问题的解答,希望对你有所帮助。

相关推荐

牛客热帖

牛客网
牛客企业服务