流利说

1.怎么终止一个正在运行的线程,如果线程是wait

https://blog.csdn.net/youanyyou/article/details/104509220/

(1)使用退出标志,使线程正常退出,也就是当run方法完成后线程终止
(2)使用interrupt方法中断线程。(调用interrupt方法是在当前线程中打了一个停止标志,并不是真的停止线程)
(3)使用stop方法强行终止,但是不推荐。(stop()方法作废,因为如果强制让线程停止有可能使一些清理性的工作得不到完成。
另外一个情况就是对锁定的对象进行了解锁,导致数据得不到同步的处理,出现数据不一致的问题)
(4)sleep()状态下停止线程,那么会抛异常java.lang.InterruptedException: sleep interrupted

2.单例模式

两次判空:(1)避免不必要的同步;(2)避免创建相同的对象
volatile作用:禁止指令重排序,避免产生未初始化的对象

3.事件分发中,MotionEvent.ACTION_CANCEL事件什么情况下被触发

https://juejin.cn/post/6874589638925746190#heading-9

(1)当用户保持按下操作,并从你的控件转移到外层控件时,会触发ACTION_CANCEL,触发cancel事件就不会接收到up事件
(2)View收到ACTION_DOWN事件以后,上一个事件还没有结束(可能因为APP的切换、ANR等导致系统扔掉了后续的事件),这个时候会先执行一次ACTION_CANCEL
(3)子View之前拦截了事件,但是后面父View重新拦截了事件,这个时候会给子View发送ACTION_CANCEL事件

如何解决滑动冲突,两个方法:
(1)通过重写父类的 onInterceptTouchEvent 来拦截滑动事件
(2)通过在子类中调用 parent.requestDisallowInterceptTouchEvent 来通知父类是否要拦截事件,

4.handler产生内存泄漏的原因

问题1:Message的target其实是handler,持有activity的引用
问题2:handler的postDelay(1)和postDelay(3)是如何实现的
(17条消息) 你真的懂Handler.postDelayed()的原理吗?_qingtiantianqing的博客-CSDN博客_handler postdelayed

具体:
postDelay()一个10秒钟的Runnable A、消息进队,MessageQueue调用nativePollOnce()阻塞,Looper阻塞;
紧接着post()一个Runnable B、消息进队,判断现在A时间还没到、正在阻塞,把B插入消息队列的头部(A的前面),然后调用nativeWake()方法唤醒线程;
MessageQueue.next()方法被唤醒后,重新开始读取消息链表,第一个消息B无延时,直接返回给Looper;
Looper处理完这个消息再次调用next()方法,MessageQueue继续读取消息链表,第二个消息A还没到时间,计算一下剩余时间(假如还剩9秒)继续调用nativePollOnce()阻塞;
直到阻塞时间到或者下一次有Message进队;
这样,基本上就能保证Handler.postDelayed()发布的消息能在相对精确的时间被传递给Looper进行处理而又不会阻塞队列了。

5.git rebase和git merge区别

https://www.jianshu.com/p/4079284dd970

rebase方式不会产生新的commit,但是merge方式必须产生新的commit。
rebase会把你当前分支的 commit 放到公共分支的最后面,所以叫变基,相当于是更改了基点。就好像你从公共分支又重新拉出来这个分支一样。
举例:如果你从 master 拉了个feature分支出来,然后你提交了几个 commit,这个时候刚好有人把他开发的东西合并到 master 了,
这个时候 master 就比你拉分支的时候多了几个 commit,如果这个时候你 rebase master 的话,就会把你当前的几个 commit,放到那个人 commit 的后面。

6.ViewModel是如何在Activity发生旋转时保留数据的

https://blog.csdn.net/jackzhouyu/article/details/109031202 (完整答案,非常好仔细看,涉及AMS)

因为ViewModel会使用一个空的fragment会保存数据,是系统帮我们保存的,可以设置isChangingConfigurations返回true(setSavedeainsace?)

model = new ViewModelProvider(this).get(NotifyDeModel.class);
先去ComponentActivity的ViewModelStore内的HashMap去查找,如果找到就直接复用,反之则会利用反射创建一个ViewModel并保存到HashMap中去,以后需要时复用即可

在onDestroy之前,会保存Activity的retainNonConfigurationInstances()方法返回值,而这个retainNonConfigurationInstances()
就来源于Activity的onRetainNonConfigurationInstance()方法,保存了NonConfigurationInstances实例,这个实例里面就保存了ViewModelStore

7.retrofit

问题1:动态代理
问题2:一般会有哪些设置addgSonFactory、Adapter作用
mRetrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(GSON))
.addCallAdapterFactory(LiveDataCallAdapterFactory.create())

8.hook的应用

换肤

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容