Older programmer, 109 days in the S industry, interviewed 22 companies, received 4 offers, 10% salary increase

foreword

As a beginner who just came into contact with programming, I was deeply attracted by the magical charm of this field. Code is like a magic wand that can change the world and bring convenience and innovation to our lives.

However, reality is often far from ideal. As time went on, it was gradually discovered that the current environment was not ideal. Job opportunities are increasingly scarce in this competitive industry. Even with solid programming skills, you may miss the ideal job for various reasons.

I don't know if the code can change the world. It's really hard to find a job like this!

I will always remember the numbers 109 and 22

I just returned from 109 days of unemployment and interviewed at 22 companies. Looking back on these days, my mood is as low as raindrops outside the window.

insert image description here

I am a programmer who graduated from three majors, which may not be something to be proud of in the eyes of many people. In the few years after my graduation, I have been working in a small Internet company. Although the job is fairly stable, I always feel that my technical level still needs to be improved. When I realized this, I decided that I wanted to improve myself, so I decided to quit my job and look for better opportunities.

However, the reality is not as smooth as I imagined. During this period of unemployment, I started to feel anxious and lost. I kept sending out resumes and going for interviews, but got very little response. Every time I fail in an interview, I doubt myself and even think about giving up. However, there is always a voice in my heart telling me: I can't give up, as long as I persevere, there will always be opportunities.

On day 109 of being out of work, I finally got an invitation for an interview. This company is my dream and I'm well prepared for it. During the interview process, I showed my strength and won the approval of the interviewer. In this way, I received 4 offers, one of which gave me a 10% salary increase. This news made me very excited, but also gave me more confidence.

Looking back on these days, I am filled with emotion. Although the days of unemployment are painful, it also makes me cherish opportunities and work harder. Now, I am about to start a new job. I believe that as long as I keep my enthusiasm for technology and keep learning and improving myself, I will be able to achieve greater achievements in this industry.

Finally, I would like to say to all my friends who are looking for a job: don't give up, keep going, and victory is just around the corner.

The following are the interview questions I have compiled these days, and I hope that friends who are looking for a job can use them.

Due to the large content of the article and the limited space, the information has been organized into PDF documents. If you need to know the complete document for Android intermediate and advanced interviews, you can add WeChat to get it for free! (Promise: 100% free)

1. Android interview related

1.Activity

            ● 说下Activity生命周期

            ● Activity A 启动另一个Activity B 会调用哪些方法?如果B是透明主题的又或则是个DialogActivity呢

            ● 说下onSaveInstanceState()方法的作用 ? 何时会被调用?

            ● Activity的启动流程

            ● onSaveInstanceState(),onRestoreInstanceState的掉用时机

            ● activity的启动模式和使用场景

            ● Activity A跳转Activity B,再按返回键,生命周期执行的顺序

            ● 横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期

            ● onStart 和 onResume、onPause 和 onStop 的区别

            ● Activity之间传递数据的方式Intent是否有大小限制,如果传递的数据量偏大,有哪些方案

            ● Activity的onNewIntent()方法什么时候会执行

            ● 显示启动和隐式启动

            ● scheme使用场景,协议格式,如何使用

            ● ANR 的四种场景

            ● onCreate和onRestoreInstance方法中恢复数据时的区别

            ● activty间传递数据的方式

            ● 跨App启动Activity的方式,注意事项

            ● Activity任务栈是什么

            ● 有哪些Activity常用的标记位Flags

            ● Activity的数据是怎么保存的,进程被Kill后,保存的数据怎么恢复的

img

2.Service

            ● service 的生命周期,两种启动方式的区别

            ● Service的两种启动方式?区别在哪

            ● 如何保证Service不被杀死 ?

            ● Service与Activity怎么实现通信

            ● IntentService是什么,IntentService原理,应用场景及其与Service的区别

            ● Service 的 onStartCommand 方法有几种返回值?各代表什么意思?

            ● bindService和startService混合使用的生命周期以及怎么关闭

            ● 用过哪些系统Service ?

            ● 了解ActivityManagerService吗?发挥什么作用

img

3.BroadcastReceiver

            ● 广播的分类和使用场景

            ● 广播的两种注册方式的区别

            ● 广播发送和接收的原理

            ● 本地广播和全局广播的区别

img

4.ContentProvider

            ● 什么是ContentProvider及其使用

            ● ContentProvider的权限管理

            ● ContentProvider,ContentResolver,ContentObserver之间的关系

            ● ContentProvider的实现原理

            ● ContentProvider的优点

            ● Uri 是什么

5.Handler

            ● Handler的实现原理

            ● 子线程中能不能直接new一个Handler,为什么主线程可以主线程的Looper第一次调用loop方法,什么时候,哪个类

            ● Handler导致的内存泄露原因及其解决方案

            ● 一个线程可以有几个Handler,几个Looper,几个MessageQueue对象

            ● Message对象创建的方式有哪些 & 区别?

            ● Message.obtain()怎么维护消息池的Handler 有哪些发送消息的方法

            ● Handler的post与sendMessage的区别和应用场景

            ● handler postDealy后消息队列有什么变化,假设先 postDelay 10s, 再postDelay 1s, 怎么处理这2条消息

            ● MessageQueue是什么数据结构

            ● Handler怎么做到的一个线程对应一个Looper,如何保证只有一个MessageQueue ThreadLocal在Handler机制中的作用

            ● HandlerThread是什么 & 好处 &原理 & 使用场景

            ● IdleHandler及其使用场景

            ● 消息屏障,同步屏障机制

            ● 子线程能不能更新UI

            ● 为什么Android系统不建议子线程访问UI

            ● Android中为什么主线程不会因为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的联系

Guess you like

Origin blog.csdn.net/Android_XG/article/details/131140731