美文网首页Android进阶之路Android技术进阶Android开发经验谈
Android开发10月找工作——斩获offer小技巧

Android开发10月找工作——斩获offer小技巧

作者: 谁动了我的代码 | 来源:发表于2022-10-26 16:59 被阅读0次

前言

在如今的Android开发市场,岗位越来越少。想要在无数人中脱颖而出;拿到自己满意的offer。那么在面试过程中一定要胜过其他人,不管是行为举止还是简历的制作,不过占比最重要的还是面试技术环节。如下我总结了一部分面试技巧与面试题。


面试小总结

1、语言表达能力。

语言表达能力很重要。在开发的过程中,需要把问题描述清楚,交流无障碍。

2、独立思考问题

开发过程中,终会遇到问题的,可以考量一下面试者的思考方式。比如 出一些算法题。

3、技术相关的

java:

抽象类、接口、自动装配、反射、异常、注解、文件读写、线性安全、java 虚拟机、代码规范相关等等。

Android:

handler的机制、自定义View、进程通信、事件处理、网络处理、内存优化、插件化思想、设计模式、类加载器等等

算法:

几大排序选一个、链表、二叉树等等

接下来主要讲重要的技术环节,因为在面试过程中。最看重的还是技术这块;占比70%以上。

Android面试题分享

Java篇

1.abstract与interface的区别(抽象类和接口)

1、关键字:抽象类 abstract         接口interface
2、抽象类继承 extends             接口实现 implements
3、子类继承抽象类和                实现类实现接口的格式不同
4、抽象类中有各种属性和方法         接口中只有全局变量和抽象方法
5、抽象类只能单继承                接口可以多实现
6、抽象类的子类只能继承一个父类      实现类可以实现多个接口,并且还可以继承父类
7、抽象类的作用:提高代码的复用性    接口的作用:1、规范代码2、提高代码的拓展新

2.面向对象和面向过程

面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 面向对象:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为

3.设计模式

工厂模式: android中的demo体现:线程池 建造者模式: android中,大概build()结尾的都是吧.比如:Imagrloder,AlertDialog.Builder等等. 装饰者模式: 单例模式:

4.线程安全:StringBuilder是线程不安全的,而StringBuffer是线程安全的

原因:StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的,但StringBuilder的方法则没有该关键字,所以不能保证线程安全,有可能会出现一些错误的操作。所以如果要进行的操作是多线程的,那么就要使用StringBuffer,但是在单线程的情况下,还是建议使用速度比较快的StringBuilder。

5.请简述 LinkedHashMap 的工作原理和使用方式?

  • 查看LinkedHashMap源码发现是继承HashMap实现Map接口。也就是HashMap的方法LinkedMap都有。LinkHashMap与HashMap的主要区别是:LinkedHashMap是有序的,hashmap是无序的。LinkedHashMap通过维护一个双向链表实现有序,也正是因为要维护这个链表,内存上有更大的开销。
  • 有序和无序
  • 我们说的无序是插入顺序和输出顺序不一致。
  • 链表结构和顺序结构:线性结构分为顺序结构,和链表结构。
  • 顺序结构:在内存中是一块完整有序内存。所以我们在查询的时候时候直接索引index,便可找到要查询的数据,速度非常快,缺点是插入删除慢。有点类似班级排队时(一列纵队),每个人都知道自己在第几个位置。老师只要说第三个位置,那这个同学立马知道老师要找的是自己。这时候要插入一个同学到第二个位置,所以之前第二个位置开始往后的每个同学的位置都要+1。所以比较慢。
  • 链表结构:通过结点头记录该结点的上一个结点和下一个下一个结点(就是传统的双链表,单链表就是只记录下一个结点,循环链表就是最后一个结点的下一个结点指向第一个结点)。正是因为这种关系,所以链表结构不需要一块完整的内存,而且插入删除相对快,但是查询相对慢。但是因为要维护结点头,所以内存开销相对大一点。有点类似于班级排队时,每个人虽然不知道自己的位置,但是知道自己前面是谁和后面是谁。当要插入一个同学b时到c前面时,只要c同学记住自己之前是a,现在换成b.b记住自己前面是a,后面是c。所以想对来说插入很快。删除类似。但是当老师按位置查询时,就要先从第一个开始计数,知道找到老师要找的数字。所以查询慢。

6.java中实现多线程的三种方式

继承 Thread 类

实现 Runnable 接口

实现 Callable 接口

Android篇

1.简述handler的机制

Handler就是一个用于处理多线程异步消息的机制。主要用于线程间通信。并不能支持进程间通信。

2.简述自定义View

View类是Android中各种组件的基类,如View是ViewGroup基类,表现为显示在屏幕上的各种视图。Android中的UI组件都是由View和ViewGroup组成。

3.Android 五种类构造器

  1. PathClassLoader
  2. DexClassLoader
  3. BaseDexClassLoader
  4. BootClassLoader
  5. ClassLoader这5个类加载器。

4.请描述一下Android的事件分发机制

Android的事件分发机制主要是Touch事件分发,有两个主角:ViewGroup和View。Activity的 Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。View 在ViewGroup内,ViewGroup 也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析。 先分析ViewGroup的处理流程:首先得有个结构模型概念: ViewGroup 和View组成了一棵树形结构,最顶层为Activity 的ViewGroup,下面有若干的ViewGroup节点,每个节点之下又有若干的ViewGroup节点或者View节点,依次类推。

算法篇

两链表合并

1、链表 head 记录初始链表,tempHead 记录当前点的链表 2、输入l1 与 l2 长度可能不一致 3、进位记录 carry


public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        int carry = 0;
        ListNode head = new ListNode();
        ListNode tempHead = head;
        head.next = tempHead;
        while (l1 != null || l2 != null) {
            ListNode tempNode = new ListNode();
            int l1val = l1 == null ? 0 : l1.val;
            int l2val = l2 == null ? 0 : l2.val;
            int result = l1val + l2val + carry;

            carry = result / 10;
            tempNode.val = result % 10;

            tempHead.next = tempNode;
            tempHead = tempHead.next;

            if (l1 != null) {
                l1 = l1.next;
            }
            if (l2 != null) {
                l2 = l2.next;
            }
        }
        if (carry > 0) {
            ListNode tail = new ListNode(carry);
            tempHead.next = tail;
        }
        return head.next;
    }

上面简单介绍部分Android面试的几大块面试题;从Java、Android、算法出发。当然想要面试中成功击退竞争对手,刷这些题目是往往不够的;以上题目及答案均来自与这本整理的电子档《Android面试题精选》中抽取,如需找工作、跳槽那么这些你可以辅助你在面试中斩获很多offer!

总结

现在外面面试问的的确比较多,要求也挺高的,行情不好,薪资也不好要,所以心态一定要放好,找好自己的定位,心态一定要好。

面试之后要尽量做到总结,从我最开始没什么准备就出去面试,被打击一通之后,总结了七八家面试题,会发新面试问到的都是那些知识点,可能角度不一样,但是你只要深度够,他怎么问,你基于原理来回答,基本上都没差,从签了赔偿协议以后出来面试,连续四家公司都走到了HR面,可以说面试的感觉上来了。前面的总结积累终究没有白费。

想告诉大家,裁员别慌,做自己该做的,其他自己决定不了的,先放一放,心里列一个123,一条一条来。

相关文章

网友评论

    本文标题:Android开发10月找工作——斩获offer小技巧

    本文链接:https://www.haomeiwen.com/subject/inaazrtx.html