ECAI首页 双栏图片排版方式 工具分享 需要图片双栏放置在标题下,摘要上方 \begin{strip} \centering \includegraphics[width=1\textwidth]{fig1.pdf} \captionof{figure}{xx} \labe
从零实现Mybatis框架(一) 后端开发 从零实现Mybatis框架(一) 调用一个dao的接口到方法执行 从一个dao下的接口,到调用就能返回数据查询结果中间到底发生了什么?java本身接口是不能实例化的,必须要有具体的类,而一个类要直接使用只能使用其静态方法,要么对其类进行实例化对象。所有有点清楚的概念是,调用dao的接口返回数据,其中
队列源码分析 后端开发 队列源码分析 1. 双端队列ArrayDeque ArrayDeque 是基于数组实现的可动态扩容的双端队列。 1.1 初始化 和HashMap类似的方式, 容量一定是2的幂次方 private static int calculateSize(int numElements) { int
几种常用的散列算法 后端开发 几种常用的散列算法 最近学习HashMap、ThreadLocal、分库分表等源码,发现采用散列算法都不同。散列算法本质上是将一个极大不定范围的数据缩放到指定范围空间中。那么接下来就来了解不同的散列算法以及对应的使用。 除法散列 通过除法得到余数的方式来进行散列,mod M限制到M范围中。 由于编码
时间的囚徒 个人感悟 序 沉迷过去 畅想未来 只有现在 第一章:时间的裂缝 林默站在实验室的中央,盯着眼前那台巨大的机器。它的外形像一颗扭曲的金属心脏,表面布满了闪烁的指示灯和复杂的管道。这是他和团队耗费十年心血打造的「时间观测仪」,理论上,它可以让人类窥探时间的本质。 「准备好了吗?」助手小陈的声音从耳机里传来,带着
Java基础知识和JVM补充 后端开发 Java基础知识和JVM补充 I/O read ->【准备数据 -> 数据就绪 -> 拷贝数据】 (内核) -> read返回 BIO(Blocking i/o) 同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间。如果BIO要处理多个客户端得i/o就只
设计模式--单例模式 后端开发 设计模式--单例模式 单例模式在各个框架中设计或者实际开发经常遇到,主要是保证一个类只有一个示例,减少常用类频繁创建带来的性能损失。 常见的场景有: Spring中的Bean 项目中全局的属性 数据库连接池 Static关键字 一个简单的解决方式是使用static关键字,类加载过程在可以保证没有示例
JAVA并发编程 后端开发 JAVA并发编程 反射和代理 反射和动态代理使用场景非常广。 动态代理:动态代理是Java的一种机制,可以在运行时创建一个代理对象,而不需要在编译时就确定代理类。 反射是指在运行时检查类的信息(如方法、属性、构造函数等)并操作它们的能力。 场景场景有: AOP切面 懒加载 权限控制 日志记录 远程代
HashMap从零分析源码 后端开发 HashMap全解 1. HashCode为什么选择31作为乘数 HashCode是32位的有符号数 public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[]
ArrayList源码分析 后端开发 ArrayList源码分析和队列(数组为基础的数据结构) 数组是一个经常使用的数组结构,存储形式一般分为顺序存储和链式存储,区别在于顺序存储占用一块连续内存空间,而链表是由一个个点组成。 这里我们详细分析一下ArrayList,及List的一个实现类,也是实际过程中使用较多。 ArrayList采用