Android面试指南

一.java/android重要基础知识:
1.重要连接
https://github.com/GeniusVJR/LearningNotes
https://github.com/Mr-YangCheng/ForAndroidInterview
https://github.com/lizhangqu/corelink
2.java常见垃圾回收算法
a.引用计数算法(相互引用问题) b.标记清除算法(内存碎片和线程卡顿问题)c.标记-压缩算法 d.节点拷贝算法
3.http1.0 1.1 2.0协议特点
1.0keep-alive默认是false,一次连接只能发一次请求,1.1keep-alive默认是true可以一次连接发多次请求,解决了请求等待问题 2.0请求延迟做了优化
4.okhttp优点
a.支持连接同一服务器地址共享同一个socket b.通过连接池来减小响应延迟 c.缓存Response减小相同接口重复请求 d.支持http,https请求 缺点:Response在子线程需要自己同步到主线程
5.Volley优点
a.google推出的适合进行数据量不大,但通信频繁的网络操作 b.Response回调在主线程 缺点:不支持https
6.java算法排序
a.冒泡法排序

public static void bubbleSort(int[] numbers) {   
    int temp; // 记录临时中间值   
    int size = numbers.length; // 数组大小   
    for (int i = 0; i < size - 1; i++) {   
        for (int j = i + 1; j < size; j++) {   
            if (numbers[i] < numbers[j]) { // 交换两数的位置   
                temp = numbers[i];   
                numbers[i] = numbers[j];   
                numbers[j] = temp;   
            }   
        }   
    }   
}  

b.快速排序

int main(void)
{
    int a[6] = {-2, 1, 0, -985, 4, -93};
    int i;

    QuickSort(a, 0, 5); //第二个参数表示第一个元素的下标  第三个参数表示最后一个元素的下标

    for (i=0; i<6; ++i)
        printf("%d  ", a[i]);
    printf("\n");

    return 0;
}

void QuickSort(int * a, int low, int high)
{
    int pos;

    if (low < high)
    {
        pos = FindPos(a, low, high);
        QuickSort(a, low, pos-1);
        QuickSort(a, pos+1, high);
    }   
}

int FindPos(int * a, int low, int high)
{
    int val = a[low];

    while (low < high)
    {
        while (low<high  && a[high]>=val)
            --high;
        a[low] = a[high];

        while (low<high && a[low]<=val)
            ++low;
        a[high] = a[low];
    }//终止while循环之后low和high一定是相等的

    a[low] = val; 

    return high; //high可以改为low, 但不能改为val 也不能改为a[low]  也不能改为a[high]
}

c.二分法(二分法一定是有序的,即先排序在查找)

    public int BinarySearch(int[] array, int T)
        {
            int low, high, mid;
            low = 0;
            high = array.Length - 1;
            while (low <= high)
            {
                mid = (low + high) / 2;
                if (array[mid] < T)
                {
                    low = mid + 1;
                }
                else if (array[mid]>T)
                {
                    high = mid - 1;
                }
                else 
                {
                    return mid;
                }
            }
            return -1;
        }
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值