Uninote
Uninote
用户根目录
工作日志

me

  • 能够被确定不会更改的变量,和不能被更改的变量加上final修饰, 可以避免一些奇怪的bug
  • 尽量使类中所有的变量都是私有的,只能通过方法来访问它们
  • 数组标识:要用"int[] packets",而不是"int packets[]",后一种永远也不要用

注释

/**
     * Tracks connecting to the first proxy.
     *
     * @param proxy     the proxy connected to
     * @param secure    {@code true} if the route is secure,
     *                            {@code false} otherwise
     */
    public final void connectProxy(final HttpHost proxy, final boolean secure) {
        Args.notNull(proxy, "Proxy host");
        Asserts.check(!this.connected, "Already connected");
        this.connected  = true;
        this.proxyChain = new HttpHost[]{ proxy };
        this.secure     = secure;
    }

线性表

  • 数组如何实现随机访问?随机元素的地址 = 连续内存空间的基础地址 + 随机元素 * 数据类型的大小
  • 数组查询数据的时间复杂度是多少?O(1)?其实描述准确的话应该是通过下标随机访问是O(1),因为如果通过二分查找就是O(logn)了
  • 数组删除和修改速度低效的背后原因是什么?
  • 如果能确定数组长度,但是又是使用的arrayList,那么一定要创建定长容器,因为ArrayList底层是数组,数组要扩容必须要找到另一个连续的内存空间,然后将数据复制过去,这个过程ArrayList帮我们做了,所以ArrayList在扩容的时候也会去copy数据并且复制数据,而且还要申请内存地址,申请内存地址是很耗时的。
  • 为什么数组是从0而不是从1?,因为内存的寻址公式为 元素的地址 = 连续内存空间的基础地址 + 元素位置 * 数据类型的大小, 如果是从1开始那么久便成了 元素的地址 = 连续内存空间的基础地址 + (元素位置-1) * 数据类型的大小

链表

SpringCloud

缓存相关

点赞(0) 阅读(284) 举报
目录
标题