京东:移动端主观题

问答题

  1. 如何退出Activity?如何安全退出已调起多个Activity的Application?
  1. finish()
  2. 新建一个类ActivityCollector用于管理全部的Activity对象,每生成一个Activity对象就将其添加到ActivityCollector一个List中,在ActivityCollector中实现一个finishAll()方法,用于结束list 中所有的Activity对象
//1.创建一个类(MyApplication)继承Application
public class MyApplication extends Application{

// 2.创建一个用于存放activity的集合,这里可以创建一个Activity的基类,
// 叫BaseActivty,让所有的Activity都继承它,在BaseActivity中我们可以写共性的方法或变量等。
//创建一个用于存放Activitiy的集合
 List<BaseActivity> mActivityList = new ArrayList<>();

//3. 添加3个方法,分别用于添加Activity,移除Activity,清空集合
//提供一个添加activity的方法
    public void addActivity(BaseActivity activity) {
        if (!mActivityList.contains(activity)) {
            mActivityList.add(activity);
        }
    }

    //提供一个移除activity的方法
    public void removeActivity(BaseActivity activity) {
        if (!mActivityList.contains(activity)) {
            mActivityList.remove(activity);
        }
    }

    //提供一个清空集合的方法
    public void clearAllActivity() {
        for (int i = 0; i< mActivityList.size(); i++) {
            BaseActivity activity = mActivityList.get(i);
            activity.finish();
        }
        mActivityList.clear();
    }
  1. 用至少两种方式实现一个Singleton(单例模式)。
public class Singleton{
    private volatile static Singleton single;
    private Singleton(){
    }
    public static Singleton getInstance(){
        if (single == null){
            synchronized(Singleton.class){
                if (single == null){
                    single = new Singleton();
                }
            }
        }
        return single;
    }
}



public class Singleton {
    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }
    private Singleton(){}
    public static final Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
}
  1. 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

方式1:继承Thread类。
A:自定义类MyThread继承Thread类。
B:MyThread类里面重写run():run Alt+/
C:创建对象
D:启动线程
方式2:实现Runnable接口的步骤:
A:自定义类MyRunnable实现Runnable接口
B:重写run()方法
C:创建MyRunnable类的对象
D:创建Thread类的对象,并把C步骤的对象作为构造参数传递
方法3:实现Callable接口,重写call()方法:不常用
一般使用方法2

同步有几种实现方法,都是什么?
(1)synchronized关键字:包括 synchronized方法和 synchronized块
(2)wait()方法和notify()方法
(3)Lock接口及其实现类ReentrantLock

  1. 请描述下Activity的生命周期
  2. 什么是ANR和Force Close?如何避免?

ANR: Application Not Responding
产生原因:
1.主线程(UI线程)响应用户操作事件时间超过5秒
2.BroadcastReceiver超过10秒钟任未执行完毕。
避免方法:
Android应用程序完全运行在一个独立的线程中。任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。因此,需要消耗大量时间的操作如访问网络和数据库,都要放到子线程中或者使用异步方式来完成。

Force Close.
产生原因:
程序出现异常,一般像空指针、数组越界、类型转换异常等。
避免方法:
编写程序时要思维缜密,异常出现时可以通过logcat查看抛出异常代码出现的位置,然后到程序中进行修改。

选择题

  1. 算法的五个特征:有穷性,确切性,输入项,输出项,可行性
  2. 堆排序复杂度:时间复杂度O(nlogn),整个构建堆的时间复杂度为O(n),堆排序的空间复杂度为O(1),堆排序是一种不稳定的排序算法
  3. 基于比较的排序算法有:(1)直接插入排序;(2)冒泡排序;(3)简单选择排序;(4)希尔排序;(5)快速排序;(6)堆排序;(7)归并排序。
    另外:基数排序、桶排序都属于分配式排序
  4. 链地址法
  5. SNMP基于传输层UDP用户数据报协议,在管理者和被管理设备(确切的说是agent)之前传递信息。
    SNMP管理包括下面三个部分:
    (1)MIB管理信息库
    (2)SMI管理信息的结构和标识(也称管理信息接口SMI)
    (3)SNMP简单网络管理协议
  6. DHCP 有 8 种消息类型,分别是 Discover、Request、Release、Inform、Decline、Offer、ACK、NAK。
    其中前 5 种可由主机发起,后 3 种只能是 DHCP 服务端向主机发送
  7. 匹配是指在同一子网内
  8. TCP 21 端口: FTP 文件传输服务
    TCP 23 端口: TELNET 终端仿真服务
    TCP 25 端口: SMTP 简单邮件传输服务
    UDP 53 端口: DNS 域名解析服务
    TCP 80 端口: HTTP 超文本传输服务
    TCP 110 端口: POP3 “邮局协议版本3”使用的端口
    TCP 443 端口: HTTPS 加密的超文本传输服务
    默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制。
  9. 利用归并排序方法对数字序列:5,19,17,21,11,8,1进行排序,共需要进行( )次比较
    (5, 19, 17, 21, 11,8,1)
    (5, 19, 17, 21)( 11,8,1)
    (5, 19)( 17, 21)( 11,8)(1)
    开始合并:
    (5, 19)( 17, 21)( 8,11)(1)比较3次
    (5, 17, 19, 21)(1, 8, 11)比较4=3+1次
    (1, 5, 8, 11, 17, 19, 21)比较4次
    共比较11=3+4+4次
  10. 采用计数排序算法对数组A = {1,0,3,1,0,1,1}进行排序,则辅助数组C的长度值为max-min+1,max和min为待排序序列的最大值和最小值,故C的长度为:3-0+1=4;(注意:计数排序是特殊的桶排序,每个桶的长度为1。所以辅助数组的长度为(max-min)/1+1);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,585评论 4 365
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,923评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,314评论 0 248
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,346评论 0 214
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,718评论 3 291
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,828评论 1 223
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,020评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,758评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,486评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,722评论 2 251
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,196评论 1 262
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,546评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,211评论 3 240
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,132评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,916评论 0 200
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,904评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,758评论 2 274

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,585评论 25 707
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,019评论 11 349
  • 周日晚,小蓝终于在平日保持训练之余的时间把暑假作业都做完了,我也终于把这一期的水彩画画课程结束了,刚好蓝爸爸...
    七彩蓝澜阅读 759评论 2 14
  • tensorflow中关于BN(Batch Normalization)的函数主要有两个,分别是: tf.nn.m...
    Traphix阅读 65,380评论 9 62
  • 其实,我是一个演员 窗口是舞台, 绵延不绝的常绿灌木, 排着队列扑面而来, 又一拥而去。 没有开始, 没有掌声, ...
    yiyi_4f59阅读 255评论 0 0