目录1 接口回调1.1 接口回调概念1.2 向上转型1.3向上转型与接口回调的区别1.4 用Java接口实现回调函数的等价功能1.5 通过例子深入理解 1 接口回调 1.1 接口回调概念 什么是接口回调 接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就
泛型之前 在面向对象编程语言中,多态算是一种泛化机制。例如,你可以将方法的参数类型设置为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法将会更具有通用性。此外,如果将方法参数声明为接口,将会更加灵活。 通过继承设计通用程序 在Java增加泛型类型之前,通用
目录 02 HTTP 必知必会03 Servlet容器04 Tomcat系统架构-连接器05 Tomcat系统架构-容器06 Tomcat请求过程流转07 Tomcat启动流程7.1 Catalina 组件7.2 Server 组件7.2 Service 组件7.3 Engine组件 08 NioEndpoint组件:Tomcat如何实现非阻塞I/O?8.1 LimitLatch8.2 Acceptor8.3
Bee简单易用:单表操作、多表关联操作,可以不用写sql,极少语句就可以完成SQL操作;10分钟即可学会使用。 Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化。高级需求,还可以方便自定义SQL语句。 Bee框架的常用配置在bee.properties 文件里。 Bee的最
问题定义 在区间[lo, hi)查找元素e search语义约定: 如果成功,返回e的位置;如果失败,返回不大于e的最大元素的位置 只有版本C符合语义约定 版本A到版本B的改进是为了平衡向左和向右走时的查找次数,使得在最坏情况下查找次数得到改善,而最好情况下版本A还是最好的(不过最好情况一般不会遇
Makefile选做 将前面所得的文件依次放入不同的文件夹,重新编译链接即可 重新编译时要把头文件的地址通过 -I 参数输入 建立项目目录 静态库 动态库 编写makefile文件 成功运行
编码和解码 字符集和编码 常见编码规范 乱码的由来 解码过程:用一种编码方式将二进制码转换为字符 编码过程:用一种编码方式将字符转换为二进制码 URL的编码和解码 URL采用ASCII字符集进行编码,所以如果URL中包含非ASCII字符集中的字符,要对其进行编码。URL中有一些保留
承接上文深入理解K8S网络原理上 Service 应用是K8s集群内部可见的而我们发布的应用需要外网甚至公网可以访问K8s如何将内部服务暴露出去? 四层网络只有Node节点网络可以对外通讯现在问题是第2层的Service网络如何通过第0层Node节点网络暴露出去呢? 需要再思考一个问题
Kafka 架构深入 1. 工作流程及文件存储机制 1.1 工作流程 Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic的。 topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产
文章目录 Java 运行时数据区域程序计数器Java 虚拟机栈本地方法栈堆方法区运行时常量池直接内存Java对象的创建对象的内存布局对象的访问定位 垃圾收集判断一个对象是否可被回收引用类型垃圾收集算法 垃圾收集器内存分配与回收策略Minor GC和Full GC内存分配策略Full GC 的
javascriptRemke之深入迭代器 前言:"迭代"意为按照顺序反复多次执行一段程序,ECMAscript6中新增了两个高级特性:迭代器与生成器,使用这两个特性能更高效地实现迭代,本文主要围绕迭代器详细展开叙述。 一、何为迭代 迭代即重复执行某段程序,最简单的一种迭代即计数循环。 1 for(l
正文 博主利用闲暇时间,花了近三个月将Android开发中最常用、面试被问频次最高的18类源码整合成了一套系统知识笔记PDF,共计487页,18个章节!相信看完这份文档,你将会对Android开发中的各类核心源码有着更深入、更系统的理解。 由于内容较多,避免影响到大家的阅读体验,在此只截图展示目录
访问主存 数据流通过称为 总线(bus) 的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU和主存之间的数据传送都是通过一系列步骤来完成的,这些步骤称为 总线事务(bus transaction)。读事务(read transaction) 从主存传送数据到CPU。写事务(read transaction) 从CPU传送数据到主
canvas --(重点) canvas画图位置 创建画布三步骤 通过标签创建画布(注意:不能使用css给画布设置样式 只能使用内联或者js) 通过js获取画布 let c3 = document.getElementById('c3') 通过js获取画笔对象 let ctx = c3.getContext("2d") 绘制文字 let c3 = document.getEl
结构化数据、非结构化数据与半结构化数据 文章的开始,聊一下结构化数据、非结构化数据与半结构化数据,因为数据特点的不同,将在技术上直接影响存储引擎的选型。 首先是结构化数据,根据定义结构化数据指的是由二维表结构来逻辑表达和实现的数据,严格遵循数据格式与长度规范,也称作为行数
vertical-align定义行内元素(inline和inline-block)的基线相对于该元素所在行的基线在垂直方向上的对齐方式,即与匿名文本大写字母X底边对齐,默认值baseline,当属性值为数值或百分比时正负值均可。 属性值介绍: baseline表示元素基线和父元素基线对齐 sub表示降低元素的基线到父元素合适
上图中绿色为顶线,蓝色中线,红色基线,粉色底线。 基本概念 行高:上下文本行基线间的距离,图中粉线之间的距离 行距:文本的底线到下一行文本的顶线之间的距离,距离上等于距离上等于line-height和font-size的差值,图中粉线到绿线的距离 半行距:半行距即行距的一半,距离上等于line-height和fon
一、HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。 是一种允许文件通过网络在多台主机上分享
es基本查询 添加索引 put /new_test { "mappings": { "properties": { "author": { "type": "text" }, "characters": { "type": "text" },
1.Mapreduce操作不需要reduce阶段 1 import org.apache.hadoop.conf.Configuration; 2 import org.apache.hadoop.fs.FileSystem; 3 import org.apache.hadoop.fs.Path; 4 import org.apache.hadoop.io.LongWritable; 5 import org.apache.hadoop.io.NullWritable; 6 im
目录 第三章、线程同步 3.1 线程同步机制 3.2 锁 3.2.1 锁的作用 3.2.2 锁相关的概念 3.3 内部锁:synchronized关键字 3.3.1 synchronized同步代码块 3.4 轻量级同步机制:volative关键字 3.4.1 volatile的作用 3.4.2 volatile非原子特性 3.4.3 常用的原子类进行自增自减操作 3.5 C
跳跃链表及其应用是非常热门的问题,深入了解其中奥秘大有裨益,不吹了,快开始品尝这美味的知识吧! 跳跃链表的基本概念 初识跳表 跳跃列表是一种数据结构。它允许快速查询一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(log n),优于普通队列的O(n)。 跳跃列表由
1.virtual DOM 传统页面开发模式中,都是对真实的dom进行操作,耗费大量的性能。而react将真实dom树转换成虚拟dom,每一次更新都与原来的虚拟dom进行diff比对来进行更新,对于改变的部分来进行批量更新,节约了性能。 通过虚拟dom转换成真实dom,方便和其他平台的集成,react组件可以映射为对
深入理解Java幂等性 1. 概念理解 幂等:是一个数学概念,表示N次变换和1次变换的结果相同。 幂等操作:其特点是任意多次执行所产生的影响均与一次执行的影响相同(不会改变资源状态,对数据没有副作用)。 幂等性:一系列操作都是幂等操作。 幂等接口:幂等接口认为,外部调用者会存在多次调用的场
Spring框架学习总结** 前言 Spring知识点归纳,总结复盘便于记忆 一、(1).Spring是什么? Spring是2003年兴起的一个轻量级的java开发框架,一个分层的JavaEE的轻量级开源框架,Spring的核心是控制反转(IOC)和面向切面(AOP)。 一、 (2).Spring的好处: 1.降低组件之间的耦合度,实现