03 2021 档案
摘要:单生产和消费模式 在Java中,负责产生数据的模块的是生产者,负责使用数据的模块是消费者,生产者消费者解决数据的平衡问题,即先有数据才能使用,没有数据时消费者需要等待。 例如:有一个饭店,它有一个厨师和一个服务员,服务员必须等厨师把菜做好了,通知到服务员才能上菜,然后返回继续等待,厨师代表生产者,服
阅读全文
摘要:ThreadLocal的使用 除了控制资源访问外,还可以通过增加资源来保证线程安全,ThreadLocal主要解决为每个线程绑定自己的值,相当于增加了一个副本,在进行数据库访问的时候,多个线程需要自己独立的 static 成员变量吗,那就需要使用ThreadLocal。 什么是Lock显示锁 锁分为
阅读全文
摘要:什么是等待通知机制 在单线程中,要执行的操作需要满足一定条件才能执行,可以把这个操作放在if语句块中。 在多线程编程中,可能A线程的条件没有满足只是暂时的,稍后其他的线程B可能会更新条件使得A线程的条件得以满足,可以将A线程暂停,直到它的条件得到满足之后再将A线程唤醒 Atomic{ while(条
阅读全文
摘要:字符和字符串 1.1 ASCLL码 键盘中有一些字符数字,还有在屏幕总无法打印出来的,用于控制计算机的字符,上下键,Delete等等 由于计算机硬件只能识别0101这样的二进制数,所以用一定规则映射成0101这样的二进制数 常用控制字符共128个 =7位的二进制编码=27=128 一个bit表示0和
阅读全文
摘要:进位计数制 1.1 最古老的技术方法 数值想要表示的数字越大,罗马数值就不行了 1.2 十进制计数法 十进制:975=9x102+7x101+5x100 1.3 r进制计数法 以小数点为中心,左边为正,右边为负,由此类推得其他进制 为什么计算机会使用二进制计数: 了使用两个稳定状态的物理器件表示 0
阅读全文
摘要:BCD码 BCD:用二进制编码的十进制 每四个二进制数对应16种状态的十种,还剩下6种 1.1 8421码的映射关系: 985十进制数在计算机中是用:1001 1000 0101二进制位保存的 计算机中5+8 是怎么样计算的 ? 但是在8421码中没有1101这个范围,8421码中1010~1111
阅读全文
摘要:定点数的表示 定点数:小数点的位置不固定 浮点数:小数点的位置不固定 1.1 无符号数 整个机器字长的全部二进制均为数值位,没有符号位,相当于数的绝对值 1001 1100(二进制)=156(十进制) 表示范围: 8位二进制数:28种不同状态 0000 0000 ~1111 1111=0-255=2
阅读全文
摘要:循环冗余校验码 1.1 循环冗余校验码的基本思想 数据发送、接受方约定一个“除数”,数据出错导致余数改变,导致检测错误 K个信息位+R个校验位作为“被除数”,添加校验位后需保证除法的余数为0 收到数据后检查余数是否为0 对应CRC码:101001 001 可检测出所有奇数个错误 可检测出所有双比特的
阅读全文
摘要:海明效验码 1.1 海明码思路简介 在奇偶校验中,通过给有效信息位前面添加一个奇偶校验位,能发现奇数位错误,但无法确定是哪一位出错,因为一个校验码只有一个bit,只能表示对和错两种状态 **海明码**设计思路:将信息位分组进行偶校验->多个校验 每一组携带一个校验码 多个校验位可以携带多种状态信息,
阅读全文
摘要:奇偶校验码 1.1 校验原理 在信息B传输过程中,01变成了00,另一台机器收到之后,并不能识别是否错误,这时候增加一个bit用于识别数据是否有误。 由若干个代码组成的一个字叫码字 将两个码字逐位进行对比,具有不同位的个数称为两个码字间的距离 比如00 和 01 有一个不一样,码字距离就为1,100
阅读全文
摘要:加减运算 1.1 原码的加减运算 原码的加法运算: 正+正 →绝对值做加法,结果为正 负+负 →绝对值做加法,结果为负 正+负 →绝对值大的减绝对值小的,符号同绝对值大的数 负+正 →绝对值大的减绝对值小的,符号同绝对值大的数 原码的减法运算:减数符号取反,转变为加法 正-负->正+正 负-正->负
阅读全文
摘要:移位运算 1.1算数移位 源码的算术移位:符号位置保持不变,仅对数值进行移位 右移:高位补0,低位舍弃。若舍弃的位=0,则相当于/2,若舍弃的不等于0,就会丢失精度 把0000101.0 向右移动一位 000010.1 小数点后面的会1被舍弃,导致精度不足 左移:低位补0,高位舍弃,若舍弃的位=0,
阅读全文
摘要:计算机的层次结构 1.1 五层 下层是上层的基础,上层是下层的结构 1.2 三种级别的语言 机器语言:二进制代码 汇编语言:助记符 高级语言:C/C++、Java 编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序(只需翻译一次) 解释程序:将源程序的一条语句翻译成对应机器语言的语句
阅读全文
摘要:原码、补码、移码的作用 原码的作用 加法-用加法器完成 减法-用减法器完成(计算机中减法指令比较复杂) 补码的作用 可将补码操作转变为等价的加法。ALU中无需集成减法器。执行加法操作时,符号位一起参与运算。 a的补数=模-a的绝对值 计算88-66=0101 1000-0100 0010=0101
阅读全文
摘要:计算机的性能指标 1.1 存储器的性能指标 主存储器: MAR位数反应存储单元的个数(支持最多多少个) MDR位数=存储字长=每个存储单元的大小 总容量=存储单元个数*存储字长 1Byte=8bit Eg:MAR为32位, MDR为8位,求总容量 因此MAR为32位,就代表232次方 总容量=232
阅读全文
摘要:轻量级同步机制:volatile关键字 volatile的作用 关键作用是使变量在多个线程之间可见 public class VolatileText { public static void main(String[] args) throws InterruptedException { Stu
阅读全文
摘要:Java内存模型 线程同步 线程同步机制是一套适用于协调线程之间的数据访问机制,该机制可以保障线程安全 java平台提供的线程同步机制包括:锁、volatile关键字、final关键字,static关键字、以及相关API如object.wait/object.notify 锁概述 线程安全问题的产生
阅读全文
摘要:多线程创建方式一:继承Thread类 创建:继承Thread类,重写里面的Run方法 启动:创建子类对象,调用start方法 public class StartThread extends java.lang.Thread { @Override public void run() { for (
阅读全文
摘要:索引常见模型 先介绍比较常见简单的数据索引:哈希表、有序数组、搜索树 哈希表 哈希表是一种以键值存储数据的结构,只用输入key就能找到value。 哈希表就是把key放在一个位置,把值经过计算均匀的分布在数组里,多个 key 值经过哈希函数的换算,会出现同一个值的情况。处理这种情况的一种方法是,拉出
阅读全文

浙公网安备 33010602011771号