iCoding91

if u like it~ just do it~ it's that simple~

TreeMap源码分析-java8

1.特征分析 TreeMap是基于NavigableMap的红黑树的实现。 默认排序方式:对key升序排序。 TreeMap是非线程同步的。 支持浅拷贝,序列化 红黑树put节点时,分有无比较器分开讨论,这主要是从性能角度考虑的。 代理模式:定义在subMap中的方法,将其...

2018-03-23 22:38:53

阅读数 159

评论数 0

TreeSet源码分析-java8

1.特点分析 TreeSet是基于TreeMap的NavigableSet实现,所以要想理解好TreeSet,必须研究TreeMap。 TreeMap对其的实现中,key作为存储set中元素的位置,而value始终都是一个static final常量。 时间复杂度为:log(n)的方法...

2018-03-22 12:20:49

阅读数 321

评论数 0

拼凑面额dp

1.题目 给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。 2.代码 import java.util.*; public class Main{ public s...

2018-03-22 11:46:22

阅读数 203

评论数 3

AbstractSet源码分析-java8

1.3个方法 2.Hash值 hash=sum(每个元素的hash值) 如果元素为null,则默认hash值为0. 3.removeAll(Collection 4.源码分析 package sourcecode.analysis; /** * ...

2018-03-21 21:29:07

阅读数 96

评论数 0

Set接口源码分析-java8

1.toArray()和toArray(T[] a) 将set实例转为String[]的方式如下: Set<String> x=new HashSet<String>; String[] y = x...

2018-03-21 19:08:21

阅读数 153

评论数 0

TopK问题

TopK问题 说明: 1)求最小k个数,使用大顶堆; 2)求最大k个数,使用小顶堆。 实现代码如下 import java.util.ArrayList; //第k小,则构造大顶堆 public class Main{ public sta...

2018-03-21 17:40:54

阅读数 65

评论数 0

Cookie和Session的对比分析

宏观概括 1.Cookie和Session都是常用的会话跟踪技术。 2.Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中。 3.Cookie是客户端浏览器保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。 ...

2018-03-20 23:40:34

阅读数 205

评论数 0

HTTP问题总结

HTTP相关内容 1.HTTP协议简介 HTTP协议是一种网络协议。网络协议:计算机通信网络中两台计算机之间进行通信必须遵守的规定or准则。 HTTP协议属于应用层协议。 HTTP协议在传输层使用的是可靠的数据传输协议TCP协议。 TCP/IP协议族中和HTTP协议关系比较...

2018-03-20 18:01:59

阅读数 491

评论数 0

Java8函数式编程的宏观总结

1.java8优势 通过将行为进行抽象,java8提供了批量处理数据的并行类库,使得代码可以在多核CPU上高效运行。 2.函数式编程的核心 使用不可变值和函数,函数对一个值进行处理,映射成另一个值。 3.Lambda表达式 一种紧凑的、传递行为的方式。 4. 静...

2018-03-18 23:13:27

阅读数 449

评论数 0

语法练习笔记-java8

1.类说明 Album:专辑类,包含了专辑名称,专辑上所有曲目的列表,参与创作本专辑的艺术家列表 Artist:乐队类,包含了乐队名字,乐队成员,乐队国籍 Track:专辑中的一支曲目,包含了曲目名称,曲目时长 Albums:提供了4个专辑,以及一些功能方法,主要是为了在测试时,直...

2018-03-18 21:14:48

阅读数 91

评论数 2

第28章《访问者模式》

1.定义表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的前提下定义作用于这些元素的新操作。 2.适用场景适用于数据结构相对稳定,又有易于变化的算法的系统(就是element稳定,visitor经常变化) 3.优势由于把数据结构和数据结构上的操作进行了解耦,也就是把处理从数据...

2018-03-15 23:31:42

阅读数 80

评论数 0

ArrayList源码分析-java8

1.特点总结: 可存储元素null 调用无参构造器创建实例,默认容量capacity=10 自动扩容倍数:1.5 和Vector类等价,区别是 ArrayList不是线程安全的. 4个重要的private static final类型实例变量: EMPTY_ELEME...

2018-03-15 20:22:37

阅读数 163

评论数 0

第27章《解释器模式》

1.定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 2.适用场景 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这一就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。...

2018-03-13 21:50:48

阅读数 77

评论数 0

ListIterator接口源码分析-java8

1.ListIterator VS Iterator: ListIterator是对接口Iterator的继承 Iterator只有4个操作方法:hasNext,next,remove,forEachRemaining,其中forEachRemaining是JDK8新增方法 ListIte...

2018-03-13 19:29:11

阅读数 68

评论数 0

AbstractList源码分析-java8

1.说明 AbstractList是List的骨架实现 唯一构造器.(通常由子类构造函数隐式调用,因为protected修饰,且无参数,所以可以被子类使用) 2个私有内部类:Itr,ListItr。Itr实现了Iterator接口;ListItr继承了Itr,且实现了ListItera...

2018-03-12 12:01:32

阅读数 101

评论数 0

《Effective Java》读书笔记

1.静态工厂方法 相对公有构造器的优势 有名字。静态工厂方法可以根据功能定义名字,但构造器名字都是类名。 不必每次调用时都创建对象。如果经常请求创建相同的对象,并且创建对象的代价很高,则这项技术可以极大的提高性能。 可以返回原返回类型的任何子类型。这样在选择返回类时,更加灵活。 在创...

2018-03-11 23:47:40

阅读数 211

评论数 0

CountDownLatch源码分析

1.java.util.concurrent中高级的工具分为三类 Executor Framework 并发集合(Concurrent Framework) 同步器 本文章是对常用同步器CountDownLatch进行介绍 2.同步器 定义:是一些使线程能够等待另一个线程...

2018-03-11 19:39:46

阅读数 92

评论数 0

List接口-java8

1.List接口特性: List接口定义中元素可以为null,但是对接口的不同class实现却不一定。 方法调用带来了内存空间损耗(和母list元素不共享内存): toArray() 方法调用可能带来内存空间损耗: toArray(T[] a) java8新增default方法: re...

2018-03-11 11:08:56

阅读数 196

评论数 0

HashMap源码分析

1.HashMap特点 key和value都允许为null 实现方式:数组+链表+红黑树 非线程安全(这一点区分于HashTable,二者除去这一点,其它基本一致) rehash条件:entry个数>负载因子*capacity 负载因子默认值:0.75 容量(bucket...

2018-03-08 23:30:13

阅读数 174

评论数 0

函数接口BiConsumer

package sourcecode.analysis; /** * @Author: cxh * @CreateTime: 18/3/8 15:54 * @ProjectName: JavaBaseTest */ import java.util.Objects; /** * to...

2018-03-08 16:27:17

阅读数 3003

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭