240 发简信
IP属地:北京
  • 交换a,b的值,不使用temp

    LeetCode-48-旋转图像

    给定一个 *n *× n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋...

  • 请问如果应用的最低兼容版本是21的话,是不是意味着我不需要引入v4的依赖包呢?

    android support v4支持包要点分析,api介绍

    ***转载、引用请标明出处*** http://www.jianshu.com/p/d36a1e5bf246 本文出自zhh_happig的简书博客http://www.ji...

  • serializable的迷人之处在于你只需要对某个类以及它的属性实现Serializable 接口即可。Serializable 接口是一种标识接口(marker interface),这意味着无需实现方法,Java便会对这个对象进行高效的序列化操作。

    这种方法的缺点是使用了反射,序列化的过程较慢。这种机制会在序列化的时候创建许多的临时对象,容易触发垃圾回收。

    Parcelable方式的实现原理是将一个完整的对象进行分解,而分解后的每一部分都是Intent所支持的数据类型,这样也就实现传递对象的功能了

    这是关键总结。

  • public class Solution {
    private static final float hashTableLoadFactor = 0.75f;
    private LinkedHashMap<Integer, Integer> map;
    private int cacheSize;

    // @param capacity, an integer
    public Solution(int capacity) {
    // write your code here
    this.cacheSize = capacity;
    int hashTableCapacity = (int) Math.ceil(cacheSize / hashTableLoadFactor) + 1;
    map = new LinkedHashMap<Integer, Integer>(hashTableCapacity, hashTableLoadFactor, true) {
    // (an anonymous inner class)
    private static final long serialVersionUID = 1;

    @Override
    protected boolean removeEldestEntry(Map.Entry<Integer, Integer> eldest) {
    return size() > Solution.this.cacheSize;
    }
    };
    }

    // @Return an integer
    public int get(int key) {
    // write your code here
    Object result = map.get(key);
    if (result == null) {
    return -1;
    }
    return (int)result;
    }

    // @param key, an integer
    // @param value, an integer
    // @Return nothing
    public void set(int key, int value) {
    // write your code here
    map.put(key, value);
    }
    }

    lintcode-LRU缓存策略

    使用双链表和hashtable数据结构,双链表负责更新最近访问的数据节点到头部,hashtable负责查找、修改或添加、删除

  • 120
    Android Vector曲折的兼容之路

    Android Vector曲折的兼容之路 两年前写书的时候,就在研究Android L提出的Vector,可研究下来发现,完全不具备兼容性,相信这也是它没有被广泛使用的一个...

  • serializable的迷人之处在于你只需要对某个类以及它的属性实现Serializable 接口即可。Serializable 接口是一种标识接口(marker interface),这意味着无需实现方法,Java便会对这个对象进行高效的序列化操作。

    这种方法的缺点是使用了反射,序列化的过程较慢。这种机制会在序列化的时候创建许多的临时对象,容易触发垃圾回收。

    Parcelable方式的实现原理是将一个完整的对象进行分解,而分解后的每一部分都是Intent所支持的数据类型,这样也就实现传递对象的功能了

    这是关键总结。

    序列化Serializable和Parcelable的理解和区别

    本文出自 “阿敏其人” 简书博客,转载或引用请注明出处。 一、android为什么要序列化?什么是序列化,怎么进行序列化 why 为什么要了解序列化?—— 进行Android...

  • 你真的理解AIDL中的in,out,inout么?

    前言 这其实是一个很小的知识点,大部分人在使用AIDL的过程中也基本没有因为这个出现过错误,正因为它小,所以在大部分的网上关于AIDL的文章中,它都被忽视了——或者并没有,但...

  • 写的很好。支持原创,这里写下我的一点理解:
    Book addBookIn(in Book book);
    Book addBookOut(out Book book);
    Book addBookInout(inout Book book);
    对于tag为in的参数,则服务器会接收该参数,但是对于该参数的修改,不会导致客户端该对象的发生变化,而对于tag为out的参数,服务器端接收不到从客户端传递的值,但是对于该参数的修改会导致客户端该对象发生变化。同样,tag为inout的参数,任何一方的改变都会导致对方的值发生变化。

    你真的理解AIDL中的in,out,inout么?

    前言 这其实是一个很小的知识点,大部分人在使用AIDL的过程中也基本没有因为这个出现过错误,正因为它小,所以在大部分的网上关于AIDL的文章中,它都被忽视了——或者并没有,但...