Android实际面试被问到问题总结归纳

面试注意事项

 1 知之为知之。不要糊弄。
 2 不要有小动作。会显得心虚。
 3 不要谦虚,不要睥睨天下的感觉 把握好尺度。
4 不要停下来 面试官问你一个问题 你就把你知道的都说一遍 面试官不说停 你也别停

1 activity怎么传递数据 

 方案1 intent 可以传递些基本类型或者实现Serializable或者parcelable的序列化对象
方案2 使用public static 修饰 但是生命周期过长 不推荐使用
方案3 使用inputStream存储 或者SQLite 或者contentProvider或者sharedpreferences

2 gravity和layout_gravity的区别 

 gravity是相对与自己 比如button里面写个TextView 里面加属性left 该TextView的字体就会在button最左边开始
layout_gravity写left属性的话是相对与 父容器  会在父布局的左边

3 res目录有几项Resource 分别作用是什么 

drawable 存放图片和selector和shape等资源文件
layout 存放布局
mipmap 存放适配好的图pain
valuse 存放一些用到的字符串或者颜色和样式
xml存放一些配置文件

4 处理触屏事件的方法 和他们之间的关系 

onTouchevent 当onTouchenent处理的时候 就是返回true的时候就onClickListener就会不处理了
事件先由父布局分发下来 父容器如果拦截的话 就在父容器的onTOuchevent里处理 否则就向下传递 直到子view 子view如果也不处理的话就会以冒泡的形式传给父容器并且默认消费

5 margin和padding的区别  

margin是指从自身边框到另一个容器边框之间的距离,就是容器外距离。在CSS中padding是指自身边框到自身内部另一个容器边框之间的距离,就是容器内距离。

6 简述mvp和mvc mvc中的c后来放到了mvp中的那里

后来的c没有了 转换成了p的接口
mvp的v之中只有简单的set和get方法 没有任何逻辑了
http://blog.csdn.net/mp624183768/article/details/57074472



7 view的刷新机制 

Invalidate()方法和postInvalidate()都可以在主线程中调用而刷新视图。

8 handler原理机制 

http://blog.csdn.net/mp624183768/article/details/54969659



9手写算法 冒泡 插入排序 快速排序 

冒泡很简单~~
    private static void maoPao(int[] arrs) {
        for (int i = 0; i < arrs.length-1; i++) {
            for (int j = 0; j <  arrs.length-1-i; j++) {
                if(arrs[j]>arrs[j+1]){
                    int temp=arrs[j];
                    arrs[j]=arrs[j+1];
                    arrs[j+1]=temp;
                }

            }
        }
        System.out.println(Arrays.toString(arrs));
    }
快速就用到了递归
  private static void quickSort(int[] arrs) {
        if(arrs.length>0){
            //如果数组不为空
            quickSortRecurSion(arrs,0,arrs.length-1);
        }
        System.out.println(Arrays.toString(arrs));

    }

    private static void quickSortRecurSion(int[] arrs, int low, int high) {
        if(low<high){
            //将list数组一分为二
            int  middle=getMiddle(arrs,low,high);
            //对低字表进行排序
            quickSortRecurSion(arrs,low,middle-1);
            //对高字表进行排序
            quickSortRecurSion(arrs,middle+1,high);

        }

    }

    private static int getMiddle(int[] arrs, int low, int high) {
        //数组第一个作为中轴
        int temp=arrs[low];
        while (low<high){
            while (low<high&&arrs[high]>=temp){
                high--;
            }
            //比较轴小的记录移到低端
            arrs[low]=arrs[high];
            while (low<high&&arrs[low]<temp){
                low++;
            }
            //比中轴大的记录移到高端
            arrs[high]=arrs[low];
            //返回中轴的位置

        }
        //中轴记录到尾
        arrs[low]=temp;
        return low;
    }

插入排序就是从数组第三个开始往前插入
  private static void insertSort(int[] arrs) {
        for (int i =0 ; i < arrs.length; i++) {
            //待插入数据
            int temp=arrs[i];
            int j=0;
            for (j=i-1;j>=0;j--){
                //判断是否大于temp 大于则后移一步i
                if(arrs[j]>temp){
                    arrs[j+1]=arrs[j];
                }else{
                    break;
                }

            }
            arrs[j+1]=temp;

            System.out.println(i+":"+ Arrays.toString(arrs));
        }

    }






10 写出你所了解的设计模式

 http://blog.csdn.net/mp624183768/article/details/58035572

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值