自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

转载 计算机实现原理专题--二进制减法器(三)

在计算机实现原理专题--二进制减法器(二)中指出当时的减法器需要人工判断被减数和减数的大小,如果能让计算机来自动判断就更好了。实际上计算机采用了补码来表达有符号数,在之前的java整形数值表示--基础中就说明了,采用补码可将减法变成加法。 对于正数而言它的补码就是原码如21=0001_010...

2019-08-29 21:43:00 919

转载 排序––快速排序(三)

在排序––快速排序(二)中已经给出快速排序的代码框架,但是程序还没考虑特殊情况,现进一步分析: 1、首先排序––快速排序(二)中的划分给出了一个初始的划分框架,并且如果序列中没有重复元素,并且每次都能选中中位数作为轴枢,那么该方案是正确的; 2、假设有重复元素,现规定轴枢元素左边的序列都是...

2019-08-27 23:40:00 178

转载 排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后根据枢轴元素进行划分,将比枢轴元素大的排在右边,小的排在左边; 3、分别对枢轴元素左边和右边的序列重复1和2的步骤进行划分,这是一个递归过程,整个...

2019-08-25 21:46:00 204

转载 计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我们可以人为的判断被减数和减数的大小,所以当被减数大于减数时中间结果一定会上溢也就是多出1位,因此中...

2019-08-23 19:58:00 2769

转载 计算机实现原理专题--二进制减法器(一)

先说说十进制减法,当被减数各列比减数各列小时,就需要从高位借个1过来,比如110-21=89,由于0小于1因此从上一位借1变成10-1=9,然后高位变成10-2=8,最终结果就是89。 假设最多是3位数的减法,为了不产生借位可将原表达式变成a-b=a-b+1000-1000=a-b+999+...

2019-08-20 21:33:00 2428

转载 计算机实现原理专题--二进制加法器

有了逻辑门电路后就可以在此基础上实现二进制加法器了,二进制加法与十进制加法类似满2结果为0并向前进1。 例如0000_0011+0000_0001=0000_0100,我们将二进制的每个比特位分开并相加,第一个1和1相加得0,进位为1,第二个1加0加1得0,进位为1,第三个0加0加1得1,进...

2019-08-17 20:20:00 1120

转载 java 类加载器

class类文件只有通过类加载器加载后才能new出实例对象,因此不同类加载器中的对象和类都是不同的(即使类文件相同)。 java中的类加载器主要包括引导类加载器、扩展类加载器、系统类加载器以及自定义类加载器,并且各个类加载器之间按照树状层级(也称双亲委派)进行组合。引...

2019-08-14 22:22:00 93

转载 排序––快速排序(一)

快速排序没有冒泡、选择、插入排序来得直观,所以一般也很难想到(很佩服改算法的发明人),我认为一种容易理解的方式是与二分查找算法进行类比。肯定有人说一个是排序算法另一个是查找算法显得八杆子打不着,其实不然。 二分查找基于已经有序数组,每次查找时从处于中间位置的元素开始查找...

2019-08-11 21:47:00 107

转载 计算机网络--可靠数据传输原理(一)

偶尔找到“计算机网络 自顶向下方法” 一书,它从可靠数据传输的基本原理慢慢过渡到tcp协议的实现,个人觉得非常不错并且容易把握重点,因此本文也算是学习笔记。 计算机网络本身可能出现数据包受损、丢失、乱序到达等问题,如果在编写网络应用时有一套可靠传输协议,就可以避免这些复杂的底...

2019-08-04 16:44:00 672

转载 计算机实现原理专题--逻辑门

该专题是“编码”一书的学习笔记,通过笔记的形式能让自己更好的理解计算机的实现原理(注意这里说的是实现原理而不是组成原理,千万不要和大学的计算机组成原理混为一谈)。计算机只认0和1,日常生活中的开关就可以表示0和1,由于开关只能直接控制,所以出现了类似于继电器有间接控制能力的元件...

2019-07-31 20:54:00 1690

转载 java中的基本数据类型转换

最近忙里抽闲从lucene的开源代码中提取一些基础工具包,里面涉及到大量的位运算和数据类型转换问题,现就数据类型转换做些总结。基本数据类型转换一共就两种类型,第一种向上转型,第二种为强制向下转型。 1、向上转型也叫自动提升,比较好理解就是宽的数据类型可以兼容窄的数据类型: byte...

2019-07-14 17:21:00 104

转载 Java对象在内存中占用的空间

本文主要结合lucene中RamUsageEstimator类来谈谈Java对象在内存中占用的空间大小。 注意这种计算方式适用于OpenJDK和Oracle JDK两个版本,其它版本可能有所不同。 从整体来看,java对象由对象头、实例数据、对齐填充3个部分组成,其中对齐填充是指对象头的占...

2019-07-13 19:40:00 334

转载 谈谈lucene倒排索引的存储方式(二)

在谈谈lucene倒排索引的存储方式(一)中只说明了倒排索引位置相关信息的存储,并没有详细说明如果需要对位置信息进行随机访问,那么它的索引该如何设计。lucene采用的是多级跳跃链表的方式,先说说跳跃链表基本思想(其实在前面文中也提过),假设给定一堆排过序的数字,并且数据量很大...

2019-07-10 20:35:00 305

转载 谈谈lucene倒排索引的存储方式(一)

lucene的倒排索引存储包括词的索引数据存储、词的位置存储以及写入过程,这3个部分是比较复杂的准备分开描述,先谈谈位置的存储方式: 词的位置具体包括每篇文档中的词频、位置以及附带的payload(这里先忽略掉norm信息的存储),这3块lucene分别采用了3个输出流进行写入,具体写入过程...

2019-07-06 12:52:00 856

转载 java并发编程专题--再谈等待与唤醒

线程的等待与唤醒有两种方式:一、wait与notify;二、signal与await。两种方式的主要区别在于是否对等待的条件进行分区。第1种方式没有对不同等待条件的线程进行分区,这样在某些情况下就会降低效率,在"生产者消费者专题"中已经说过,第2种则解决了该问题。 唤醒是无记忆的也就是说先唤...

2019-07-04 21:38:00 137

转载 java并发专题-谈谈ReentrantLock的lockInterruptibly方法

lockInterruptibly方法是说线程在等待获取锁的同时还能响应线程interrupt方法的中断请求。换句话说就是存在等待获取锁的同时还不能响应线程interrupt方法的中断请求的情况,synchronized内置锁便是,请看测试代码: public class LockInter...

2019-07-03 19:15:00 249

转载 一致性专题之cpu缓存一致性(三)

本篇聊聊熟悉了cpu缓存一致性对编程有什么帮助。 1、数据对齐访问 在一致性专题之cpu缓存一致性(一)中强调过先将要读写的数据当成1个字节。这是因为对于short、int、long、以及小数组而言可能会跨2个cache line,这样cpu在读写时就要涉及到2个cache li...

2019-06-29 20:34:00 131

转载 一致性专题之cpu缓存一致性(二)

在一致性专题之cpu缓存一致性(一)中主要描述了缓存与内存的映射方式,该篇主要描述cache line的状态: 1、状态M表示该缓存行中数据有修改,并且与内存中的数据不一致; 2、状态E表示该缓存行中数据有修改,并且与内存中的数据一致; 3、状态S表示该缓存行中数据与内存中的数据一致,并...

2019-06-29 19:00:00 182

转载 java网络编程tcp协议之setSoLinger

setSoLinger是当socket在关闭时对当前未发送给对方数据的一种控制方式。 1、setSoLinger(true, 0),表示不管当前有没有还未发送给对方的数据就直接关闭链接。 2、setSoLinger(true, 1),表示等待1秒如果还有未发送给对方的数据也直接关闭链接。 ...

2019-06-28 19:54:00 252

转载 一致性专题之cpu缓存一致性(一)

只要涉及到缓存的业务场景就一定会出现数据一致性问题。对于该问题,从微观的角度来看cpu与内存之间建立了N级缓存来提高效率,从宏观的角度来看分布式存储使用数据副本机制来提高数据的安全性和访问效率,不同的业务场景解决的技术手段不同,本文主要讨论cpu的缓存一致性问题。由于对cpu内部结构的详细情况...

2019-06-25 20:11:00 359

转载 线性代数-总结(一)

线性代数的核心内容就是线性变换,前面主要从静态和动态两个方面进行描述,奇异值分解应该比矩阵对角化更为一般,矩阵对角化只是它的特殊情况而已,而对称矩阵更是特殊的存在。到目前为止个人认为只是通过“线性代数及其应用一书”把线性变换的主要内容给讲明了,还有很多方面未提及。总结内容如下: 1、向量本身...

2019-06-15 21:13:00 195

转载 谈谈lucene的存储模型

现在除了lucene的倒排索引存储方式没有分析之外,对于document、词向量、docValues的存储方式都已经分析过了,本篇不是分析倒排索引的存储方式,而是分析lucene的数据模型。lucene既支持行存储模式又支持列存储模式,在行存储模式中同一个字段可以对应多个值并且多个值可以是不同...

2019-06-13 19:59:00 280

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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