阶段一:我才是卷王!996齐全不够我施展的!爆肝!熬夜!然而,不这样的话我能怎么办呢?因为早些年对人生布局产生了偏差,我和我媳妇在2018年初,房价的顶峰阶段,做出了"逃离武汉,滚回宜昌"的谬误决定,因而咱们过后在老家宜昌买了一套150+平米的房子。
起初因为种种时机,我放弃了回宜昌,并保持在武汉工作到了现在,眼看着吱吱(我女儿)曾经快5岁了,必须提前思考其上学问题了,因而咱们七拼八凑,借了几十万又在武汉买了一套100平左右的房子。
2021年,我开始背负着两套房贷生存。
宜昌的房子一时半会儿卖不出去,武汉的房子2022年4月交房,我和我老婆必须面对以下问题:
两边的老人都不太违心来长期帮咱们带孩子每月 3000 + 的房租两套房贷亲戚朋友的借款孩子的学费和辅导班即将来临的装修(想到它我当初都还头疼)当你和生存冤家路窄,如果你的队友还和你并肩而立,你就必须畏缩不前。这是我在 某Q字结尾的企业平安公司 的第三年了,后面一共涨薪了2次,一次1K一次3K,共计4K,因为我底薪原本就很低,所以我必须争取每年5月份的涨薪机会,来帮忙家庭升高压力。
因而,我抉择了“卷”。
被动抗下了更多的业务被动挑下了难度更高的技术改良工作被动封装公共组件对于碰到的各种问题,穷追不舍,要弄懂弄透对手里的工作相对负责,死磕!当然,这样一来,工作工夫就会疯狂收缩,劳动、陪伴家人、学习的工夫就变得十分无限了。 一次次的转点后才上班。 一次次的通知镜子里的本人:"你只能拼命"。 功夫不负有心人。
只有你在企业里扮演着越来越重要的角色,你就能取得更多的待遇。
2021年5月,我间断接到领导两次涨薪告诉,相比过来,间接涨薪了25%左右。
事实证明,只有你对本人够狠,就没人能卷的过你。
咱们一家三口吃了一顿海底捞,以表庆贺。尝到苦头的我,本认为我的路线会是"卷到死",没想到,事件竟然有了转折。
阶段二:来自国企的召唤~5月调薪和发完年终奖之后,我的一位十分要好的共事忽然提出了到职。 他去了一家国企,据说是一家每天晚上6点,领导带头往家冲锋的国企。 听他说完,我的心田满是艳羡,但我过后心田仍然没有什么波动,只想在本单位卷出一个将来。
然而,然而,然而。 随着这位共事跟我分享越来越多国企工作的日常,我也开始萌发了一些想法。
"同样是打工,凭啥不必更少的工夫换取更多的薪水?"就这样,在我纠结了两个月后,终于还是把简历发给了我那位同学,心想着"试一试吧,不行持续卷"。
面试很快。 上午技术总监面,下午人力经理面。 没过几天,我就实现了薪资洽谈,并收到了Offer。 涨薪15% 左右,965,自助餐食堂。 和媳妇沟通了两天之后,我做出了决定——跳槽。 开始和原单位的leader们一一沟通,婉拒了leader们的挽留。
感激 Q 公司leader们,你们很Nice,也很信赖我,给我涨薪给我机会,但这是我对于生存的一次抉择。阶段三: 国企,太爽了!在国企有多爽?
每天最早能够 5:30 就上班。周末有人打搅算我输。工作日7点当前有人打搅算我输。中午11:30 - 14:00 两个半小时吃饭+午休,还被动熄灯。阶段四:卷王的学习分享接下来给大家分享一些我的学习面试教训1.ActivityActivity的启动流程onSaveInstanceState(),onRestoreInstanceState的掉用机会activity的启动模式和应用场景Activity A跳转Activity B,再按返回键,生命周期执行的程序横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转通明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期onStart 和 onResumeonPause 和 onStop 的区别Activity之间传递数据的形式Intent是否有大小限度,如果传递的数据量偏大,有哪些计划Activity的onNewIntent()办法什么时候会执行显示启动和隐式启动scheme应用场景,协定格局,如何应用ANR 的四种场景onCreate和onRestoreInstance办法中复原数据时的区别activty间传递数据的形式跨App启动Activity的形式,注意事项Activity工作栈是什么有哪些Activity罕用的标记位FlagsActivity的数据是怎么保留的,过程被Kill后,保留的数据怎么复原的2.Serviceservice 的生命周期,两种启动形式的区别Service启动流程Service与Activity怎么实现通信IntentService是什么,IntentService原理,利用场景及其与Service的区别Service 的 onStartCommand 办法有几种返回值?各代表什么意思?bindService和startService混合应用的生命周期以及怎么敞开3.BroadcastReceiver播送的分类和应用场景播送的两种注册形式的区别播送发送和接管的原理本地播送和全局播送的区别4.ContentProvider什么是ContentProvider及其应用ContentProvider[,]ContentObserver之间的关系ContentProvider的实现原理 4.ContentProvider的长处 5.Uri 是什么5.HandlerHandler的实现原理子线程中能不能间接new一个Handler,为什么主线程能够 主线程的Looper第一次调用loop办法,什么时候,哪个类3.Handler导致的内存泄露起因及其解决方案4.一个线程能够有几个Handler,几个Looper,几个MessageQueue对象5.Message对象创立的形式有哪些 & 区别?Message.obtain()怎么保护音讯池的?Handler 有哪些发送音讯的办法Handler的post与sendMessage的区别和利用场景handler postDealy后音讯队列有什么变动,假如先 postDelay 10s, 再postDelay 1s, 怎么解决这2条音讯MessageQueue是什么数据结构Handler怎么做到的一个线程对应一个Looper,如何保障只有一个MessageQueue,ThreadLocal在Handler机制中的作用HandlerThread是什么 & 益处 &原理 & 应用场景IdleHandler及其应用场景音讯屏障,同步屏障机制子线程能不能更新UI为什么Android零碎不倡议子线程拜访UIAndroid中为什么主线程不会因为Looper.loop()里的死循环卡死,MessageQueue#next 在没有音讯的时候会阻塞,如何复原?Handler音讯机制中,一个looper是如何辨别多个Handler的,当Activity有多个Handler的时候,怎么样辨别以后音讯由哪个Handler解决,解决message的时候怎么晓得是去哪个callback解决的Looper.quit/quitSafely的区别通过Handler如何实现线程的切换Handler 如何与 Looper 关联的Looper 如何与 Thread 关联的Looper.loop()源码MessageQueue的enqueueMessage()办法如何进行线程同步的MessageQueue的next()办法外部原理子线程中是否能够用MainLooper去创立Handler,Looper和Handler是否肯定处于一个线程ANR和Handler的分割6.View绘制View绘制流程MeasureSpec是什么子View创立MeasureSpec创立规定是什么自定义Viewwrap_content不起作用的起因在Activity中获取某个View的宽高有几种办法为什么onCreate获取不到View的宽高View#post与Handler#post的区别Android绘制和屏幕刷新机制原理Choreography原理什么是双缓冲为什么应用SurfaceView什么是SurfaceViewView和SurfaceView的区别SurfaceView为什么能够间接子线程绘制SurfaceView、TextureView、SurfaceTexture、GLSurfaceViewgetWidth()办法和getMeasureWidth()区别invalidate() 和 postInvalidate() 的区别Requestlayout,onlayout,onDraw,DrawChild区别与分割LinearLayout、FrameLayout 和 RelativeLayout 哪个效率高LinearLayout的绘制流程自定义 View 的流程和注意事项自定义View如何思考机型适配自定义控件优化计划invalidate怎么部分刷新View加载流程(setContentView)7.View事件散发View事件散发机制view的onTouchEvent,OnClickListerner和OnTouchListener的onTouch办法 三者优先级onTouch 和onTouchEvent 的区别ACTION_CANCEL什么时候触发事件是先到DecorView还是先到Window点击事件被拦挡,然而想传到上面的View,如何操作如何解决View的事件抵触在 ViewGroup 中的 onTouchEvent 中生产 ACTION_DOWN 事件,ACTION_UP事件是怎么传递Activity ViewGroup和View都不生产ACTION_DOWN,那么ACTION_UP事件是怎么传递的同时对父 View 和子 View 设置点击办法,优先响应哪个requestDisallowInterceptTouchEvent的调用机会8.RecycleViewRecyclerView的多级缓存机制,每一级缓存具体作用是什么,别离在什么场景下会用到哪些缓存RecyclerView的滑动回收复用机制RecyclerView的刷新回收复用机制RecyclerView 为什么要预布局ListView 与 RecyclerView区别RecyclerView性能优化9.Viewpager&FragmentFragment的生命周期 & 联合Activity的生命周期Activity和Fragment的通信形式, Fragment之间如何进行通信为什么应用Fragment.setArguments(Bundle)传递参数FragmentPageAdapter和FragmentStatePageAdapter区别及应用场景Fragment懒加载ViewPager2与ViewPager区别Fragment嵌套问题10.WebView如何进步WebView加载速度WebView与 js的交互WebView的破绽JsBridge原理11.动画动画的类型补间动画和属性动画的区别ObjectAnimator,ValueAnimator及其区别TimeInterpolator插值器,自定义插值器TypeEvaluator估值器12.BitmapBitmap 内存占用的计算getByteCount() & getAllocationByteCount()的区别Bitmap的压缩形式LruCache & DiskLruCache原理如何设计一个图片加载库有一张十分大的图片,如何去加载这张大图片如果把drawable-xxhdpi下的图片挪动到drawable-xhdpi下,图片内存是如何变的。如果在hdpi、xxhdpi下搁置了图片,加载的优先级。如果是400800,10801920,加载的优先级。13.mvc&mvp&mvvmMVC及其优缺点MVP及其优缺点MVVM及其优缺点MVP如何治理Presenter的生命周期,何时勾销网络申请14.BinderAndroid中过程和线程的关系,区别为何须要进行IPC,多过程通信可能会呈现什么问题Android中IPC形式有几种、各种形式优缺点为何新增Binder来作为次要的IPC形式什么是BinderBinder的原理,Binder Driver 如何在内核空间中做到一次拷贝的?应用Binder进行数据传输的具体过程Binder框架中ServiceManager的作用什么是AIDLAIDL应用的步骤AIDL反对哪些数据类型AIDL的要害类,办法和工作流程如何优化多模块都应用AIDL的状况应用 Binder 传输数据的最大限度是多少,被占满后会导致什么问题Binder 驱动加载过程中有哪些重要的步骤零碎服务与bindService启动的服务的区别Activity的bindService流程不通过AIDL,手动编码来实现Binder的通信15.内存透露&内存溢出什么是OOM & 什么是内存透露以及起因Thread是如何造成内存泄露的,如何解决?Handler导致的内存泄露的起因以及如何解决如何加载Bitmap避免内存溢出MVP中如何解决Presenter层以避免内存透露的16.性能优化内存优化启动优化布局加载和绘制优化卡顿优化网络优化17.Window&WindowManager什么是Window什么是WindowManager什么是ViewRootImpl什么是DecorViewActivity,View,Window三者之间的关系DecorView什么时候被WindowManager增加到Window中18.WMS什么是WMSWMS是如何治理Window的IWindowSession是什么,WindowSession的创立过程是怎么的WindowToken是什么WindowState是什么Android窗口大略分为几种?分组原理是什么Dialog的Context只能是Activity的Context,不能是Application的ContextApp应用程序如何与SurfaceFlinger通信的,View 的绘制是如何把数据传递给 SurfaceFlinger 的共享内存的具体实现是什么relayout是如何向SurfaceFlinger申请Surface什么是Surface19.AMSActivityManagerService是什么?什么时候初始化的?有什么作用?ActivityThread是什么?ApplicationThread是什么?他们的区别Instrumentation是什么?和ActivityThread是什么关系?ActivityManagerService和zygote过程通信是如何实现的ActivityRecord ProcessRecordActivityManager ,ActivityManagerProxy的关系手写实现简化版AMS20.系统启动android系统启动流程SystemServer,ServiceManager,SystemServiceManager的关系孵化利用过程这种事为什么不交给SystemServer来做,而专门设计一个ZygoteZygote的IPC通信机制为什么应用socket而不采纳binder21.App启动&打包&装置利用启动流程apk组成和Android的打包流程Android的签名机制,签名如何实现的,v2相比于v1签名机制的扭转APK的装置流程22.序列化什么是序列化为什么须要应用序列化和反序列化序列化的有哪些益处Serializable 和 Parcelable 的区别什么是serialVersionUID为什么还要显示指定serialVersionUID的值?23.Art & Dalvik 及其区别Art & Dalvik 及其区别24.模块化&组件化什么是模块化什么是组件化组件化长处和计划组件独立调试组件间通信Aplication动静加载ARouter原理25.热修复&插件化插件化的定义插件化的劣势插件化框架比照插件化流程插件化类加载原理插件化资源加载原理插件化Activity加载原理热修复和插件化区别热修复原理26.AOPAOP是什么AOP的长处AOP的实现形式,APT,AspectJ,ASM,epic,hook27.jectpackNavigationDataBindingViewmodellivedataliferecycle28.开源框架Okhttp源码流程,线程池Okhttp拦截器,addInterceptor 和 addNetworkdInterceptor区别Okhttp责任链模式Okhttp缓存怎么解决Okhttp连接池和socket复用Glide怎么绑定生命周期Glide缓存机制,内存缓存,磁盘缓存Glide与Picasso的区别LruCache原理Retrofit源码流程,动静代理LeakCanary弱援用,源码流程EventbusRxjava文末好忘性不如烂笔头,永远抱着一个“我应该会”的心态去刷面试题,在本人脑子过了一篇,感觉答复的上来,但往往一真跟面试官对上线就会卡壳,还是倡议把每个面试题都去写一遍,再去做延长。当你能将每一道面试题都能富裕逻辑性的写进去的时候,那在面试的时候就相对没有问题了。
...