• 等级
  • 32230 访问
  • 32 原创
  • 2 转发
  • 116366 排名
  • 4 评论
  • 19 获赞

HashMap源码阅读——红黑树

HashMap源码阅读——红黑树上节我们提到了jdk1.8中引入了红黑树来解决一个桶下链表过长的问题。关键参数HashMap中有三个关于红黑树的关键参数//一个桶的树化阈值//当桶中元素个数超过这个值时,需要使用红黑树节点替换链表节点//这个值必须为8,要不然频繁转换效率也不高staticfinalintTREEIFY_THRESHOLD=8;//一个树的链表还原阈值//当扩容

2018-04-15 15:17:39

使用Matplotlib绘制3D动画

使用Matplotlib绘制3D动图主角是FuncAnimation函数,通过不断地调用func函数来实现动画,还可以使用save(filename,writer=None,fps=None,dpi=None,codec=None,bitrate=None,extra_args=None,metadata=None,extra_anim=None,savefig_kwargs=No

2018-04-15 12:52:36

HashMap源码阅读

HashMap源码阅读(超详细)本文基于Jdk1.8HashMap继承自AbstractMap,实现了Map,Cloneable,Serializable接口,是一个关联数组、哈希表,允许null键/值、非同步、不保证有序(比如插入的顺序)、也不保证序不随时间变化。其底层数据结构是数组称之为哈希桶,每个桶里面放的是链表,链表中的每个节点,就是哈希表中的每个元素。在JDK8中,当链表长度达到8,会转化

2018-04-13 20:06:05

MachineLearning实战及优化

MachineLearning实战及优化引包importpandasaspdimportnumpyasnpimportrandomfromsklearnimportdatasets,linear_model,model_selectionfromsklearn.metricsimportroc_curve,aucimportmatplotlib...

2018-04-06 20:24:00

CopyOnWriteArrayList源码阅读

CopyOnWriteArrayList源码阅读CopyOnWriteArrayList实现了List,RandomAccess,Cloneable,Serializable接口CopyOnWrite容器即写时复制容器。通俗地讲,当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器复制出一个新的容器,然后在新的容器里添加元素,添加玩元素之后再讲原来容器的引用指向新的容器。这样可以做

2018-04-05 13:40:05

volatile与ReentrantLock详解

volatile与ReentrantLock详解volatile上节我们讲了通过Synchronized可以到方法和代码块进行同步。而用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最新的值。volatile很容易被误用,使用它并不能保证操作的原子性。volatile还会禁止指令排序。我们先进行一个简单的高并发测试publicclassCounter{pu

2018-04-04 21:41:25

Vector、Stack源码分析

Vector、Stack源码分析VectorVector继承自AbstractList,实现了List,RandowAccess,Cloneable,Serializable接口,是ArrayList在多线程下的替代选择。Vector大部分方法都与ArrayList实现相同,不同的是需要同步的方法都使用了synchronized关键词进行修饰,所有是同步的。/**按索引顺...

2018-04-03 22:16:05

LinkedList源码分析

LinkedList源码阅读简介LinkedList继承自AbstractSequentialList实现了List,Deque,Cloneable,Serializable接口LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器(List),又可以看作一个双端队列(Queue),同时又可以看作一个栈(Stack)。LinkedList...

2018-03-30 17:18:37

相机模型坐标系关系及转换

相机模型坐标系关系及转换简介相机模型是以后一切标定算法的关键,简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵的过程,由投影过程求出相机的外参数和内参数。四个坐标系世界坐标系(worldcoordinate)(Xw,Yw,ZwXw,Yw,ZwX_w,Y_w,Z_w),也称为测量坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置。世...

2018-03-29 21:06:14

常见排序算法总结

废话不多说,直接看代码importjava.util.ArrayList;publicclassSort{staticint[]a={-1,1,41,3,3,3,1,2,5,23,345,12,3,4,53,2,41};//staticint[]a={2,1,-1};publicstaticvoidmain(String[]args){

2018-03-26 15:30:22

ArrayList源码阅读

ArrayList可变长动态数组继承自AbstractList,实现了List<E>,RandomAccess,Cloneable,java.io.Serializable接口ArrayList继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。ArrayList实现了RandmoAccess接口,即提供了...

2018-03-23 23:07:31

树结构(一)

1.查找树左孩子比父节点小,父节点比右孩子小,即中序遍历可以得到从大到小的有序排列2.二叉查找树二叉树类似下图二叉查找树时间复杂度不是严格的o(logN)在插入有序数组的时候会出现”链表”的形式,即所有节点只存在左子树或所有节点只存在右子树,查找复杂度会退化到o(N)。而且频繁的删除操作,由于使用右子树最小值替代根节点,会导致二叉树失衡,左子树越来越壮大。2.1.添加节点从父节点开始,采用递归方法,

2017-08-23 23:00:23

垃圾回收算法简介

引用计数法(RefrenceCounting)引用计数法是最经典也是最古老的垃圾收集方法。原理:为每个对象配备一个整型计数器,对于一个对象A,只要有任何一个对象引用了A,则A的计数器就加1,当引用失效时,引用计数器就减1,只要对象A的引用计数器值为0,A就不可能在被使用。问题:无法处理循环引用的问题,例如两个对象相互持有对方引用,而不存在任何第三个对象持有他们的引用,他们本...

2016-12-17 17:08:37

一起学Hibernate——总览

Hibernate体系结构hibernate概述数据持久化ORM概念及原理Hibernate编程步骤Hibernate基础实体生成器主键生成策略Hibernate数据类型Hibernate对象生命周期ORM映射一对一一对多(多对一)多对多组件映射继承映射数据库操作CriteriaHQLNativeSQL事务与并发事务传播性事务的隔离级别事务控制

2016-12-04 17:00:39

(十一)Spring详解——AspectJ切入点语法

AspectJ类型匹配的通配符:*:匹配任何数量字符;..:匹配任何数量字符的重复,如在类型模式中匹配任何数量子包;而在方法参数模式中匹配任何数量参数。+:匹配指定类型的子类型;仅能作为后缀放在类型模式后边。示例:java.lang.String匹配String类型;java.*.String匹配java包下的任何“一级子包”下的String类型;如匹配j

2016-11-11 22:52:58

(十)Spring详解——基于@AspectJ的AOP

基于CGLIB,使用方法拦截器的方式首先在配置文件中添加:<!--使用CGLIB代理,支持基于@AspectJ的AOP--><aop:aspectj-autoproxyproxy-target-class="true"/>声明一个切面@Aspect@Aspect@Component("LogAopUtils")publicclassLogAopUtils{@Pointc

2016-11-11 22:16:46

(九)Spring详解——AOP面向切面编程实现

基本概念的介绍连接点(Jointpoint):在Spring中表示方法执行连接点,通俗的来说就是在哪里插入切面代码。切入点(PointCut):一组连接点的集合通知(Advice):在连接点上执行的行为,通知提供了AOP需要在连接点出如何扩展现有行为。包括前置通知(beforeadvice),后置通知(afteradvice),环绕通知(aroundadvice),Spring通过拦截器

2016-11-11 16:26:41

(八)Spring详解——代理实现

场景publicvoidsave(){System.out.println("日志记录");try{System.out.println("事务开始");System.out.println("事务提交");System.out.println("事务结束");

2016-11-10 22:14:09

(七)Spring详解——资源Resource接口

Spring提供了一个Resource接口来统一对底层资源的方便访问,并提供了一些接口方法来完成常见操作。Resouce接口继承自InputStreamSourcegetInputStream:每次调用都将返回一个新鲜的资源对应的java.io.InputStream字节流,调用者在使用完毕后必须关闭该资源。Resource提供接口方法exists:返回当前Resou...

2016-11-10 20:43:27

(六)Spring详解——使用注解替代配置文件

首先修改applicationContext.xml文件加入命名空间以支持注解xmlns:context=”http://www.springframework.org/schema/context”xsi:schemaLocation=”http://www.springframework.org/schema/beanshttp://www.springframework.

2016-11-09 22:54:26

shinerio

shine生活是一种态度
关注
  • 计算机软件/学生
  • 中国 北京 海淀区
奖章
  • 持之以恒