自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 文章目录

1.1 PLD、FPGA概述 1.2 FPGA概述 2.1 Verilog HDL基础 2.2 连续赋值、过程赋值 3.1 Xilinx系列产品介绍 3.2 FPGA 配置电路/主模式 从模式 JTAG模式 3.3 SPI串行Flash配置模式 4.0 Xilinx Zynq-7000 SoC Data Sheet: Overview 4.1 Vivado使用技巧(1):了解主界面 ...

2020-09-20 18:13:31 168

原创 java 学习记录-导航

一、基础知识java基础:1.1 基础知识速学,程序练习进制转换 java基础:7.1 继承extends、重写、重载、多态、protected、final java基础:1.2 输入重定向、输出重定向 java基础:8.1 异常 java基础:2.1 方法、重载、随机字符、方法抽象 java基础:8.2 异常 编程练习 java基础:3.1 一维数组、forea...

2019-03-14 16:47:19 718 2

原创 从零理解rpc

首先,要知道rpc(Remote Procedure Call)只是一种定义,表示的是远程调用。啥是远程调用?两台不在一起的电脑A和B,A电脑上存有一些用户数据,b想要查询a上存的用户信息,这个时候,就需要远程调用A暴露出来的接口进行查询。或者说调用A提供的服务进行查询。两个电脑想要通过网络通信,最重要的:二进制!一切信息在网络中都可以看成bit0、bit1,或者说高电平、低电平。接下来,看看rpc是怎么一步一步演进的。先定义一下基本的User结构import java.io.Serializa

2021-08-06 00:13:54 236

原创 内存管理:连续内存分配(固定分区、动态分区、伙伴系统)

文章目录内存保护覆盖(Overlay)碎片整理:分区对换(Swapping)固定分区分配动态分区分配伙伴系统(Buddy system)内存保护需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。两种方法CPU中设置上、下限寄存器。存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器的值对比,判断有无越界采用 重定位寄存器(或基址寄存器) 和 界地址寄存器(限长寄存器) 来实现保护。重定位寄存器中含最小的物理地址值,界地址寄存器含逻辑地址的

2020-10-12 15:46:21 3429 1

原创 内存管理:基础概念(空间分类、链接、装入、地址映射)

操作系统中采用的内存管理方式:重定位(relecation)分段(segmentation)分页(paging)空间分类内存空间(物理空间)内存是由若干个存储单元组成的,每个存储单元有一个编号,编号可唯一标识一个存储单元,称为内存地址(或物理地址)。名空间用汇编语言或高级语言编写程序时,常常用符号名来访问某一单元。把程序中由符号名组成的程序空间称为符号名空间(或名空间)。逻辑空间由源程序经过汇编或编译后,形成目标程序,每个目标程序都是以0为基址顺序进行编址的,原来用符号名访问的单

2020-10-12 09:57:42 1452

原创 计算机启动流程

文章目录1. CPU初始化2. BIOS初始化主引导记录MBR格式分区引导扇区格式3.加载程序系统启动规范note :了解计算机启动的step 1做了什么!简述一句话:加电后,读取BIOS,BIOS读取加载程序,加载程序读内核映像。1. CPU初始化CPU加电稳定后从0xFFFF0读第一条指令:第一条指令是跳转指令CS:IP = 0xf0000 : fff0CPU初始状态为16位实模式PC = 16 * CS + IP最大地址空间1MB2. BIOS初始化别人文章的介绍:BIO

2020-09-25 16:24:21 295

原创 组合逻辑电路 & 时序逻辑电路

组合逻辑电路特点:是任意时刻的输出仅仅取决于当前时刻的输入,与电路之前的历史状态无关(即无记忆能力)组合逻辑电路的设计通常包含以下几个步骤:进行逻辑抽象。分析事件的因果关系,确定输入变量和输出变量,列出输入变量和输出变量的逻辑真值表。写出逻辑函数。将真值表转换为对应的逻辑函数式,或者直接画出卡诺图,然后使用第三章中介绍的卡诺图将逻辑函数进行化简。根据化简后的逻辑函数,画出逻辑电路图。常见的组合逻辑电路:多路选择器、编码器、译码器、移位器、比较器、多路选择器最简单的多路选择器(Multi

2020-09-22 14:42:17 11134 1

原创 springboot 2.2.5 错误处理机制(源码分析)

文章目录ErrorMvcAutoConfiguration:错误处理类ErrorPageCustomizer 错误页面定制BasicErrorController:处理默认/error请求响应页面响应JSON首先,官方doc是这样介绍error的:For machine clients, it produces a JSON response with details of the error, the HTTP status, and the exception message. For brow

2020-07-30 13:51:42 353

原创 ArrayList 扩容机制 源码分析

ArrayList 扩容机制创建一个ArrayList时,并不分配空间:private static final int DEFAULT_CAPACITY = 10;private static final Object[] EMPTY_ELEMENTDATA = {};private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMEN...

2020-04-04 12:42:49 162

原创 Java面试——集合

1. 整体框架Collection是存储一组对象的集合容器,它主要有以下三个【接口子类】List (表——对付顺序):可以有重复元素的有序集合,子类有ArraryList 和LinkList Set (集合——独一无二):没有重复元素的集合,存储无序。主要实现了两个实现类:HashSet、TreeSet Queue :为了存储数据而设计的,而不是处理数据,适合做F...

2020-03-30 12:48:13 386

原创 图片专用链接

2020-03-26 23:29:26 336

原创 Spring

1、Spring1.1 简介Spring:春天---->给软件行业带来了春天!2002,首次推出了Spring框架的雏形:interface21框架!Spring框架即以interface21框架为基础,经过重新设计,并不断丰富内涵,于2004年3月24日,发布了1.0正式版。Rod Johnson,Spring Framework创始人,著名作者。很难想象其学历,真的让好多人大...

2020-03-26 22:26:04 281

原创 JavaWeb 注册表单验证

表单 <!--注册表单--> <form id="registerForm" action="user"> <!--提交处理请求的标识符--> <input type="hidden" name="action" value="register"> <table style...

2020-02-15 15:03:51 759 1

原创 操作系统——5.文件系统

第五章 文件系统★ 文件和文件系统文件:数据的有序集合,用户存储信息于辅存的基本逻辑单位。文件系统的功能:提供了对数据的存储手段;提供了对文件操作的功能接口;维护文件属性★ 文件系统中的常用术语域 :基本数据单元,一个域保护一个值,如名字、日期或传感器读取的数值等。记录 :一组相关域的集合,长度固定或可变,如一条记录可能包含学生的学号、姓名、专业、入学日期等。关键字可以唯一标识一...

2019-08-30 10:15:49 333

原创 操作系统——4.设备管理

文章目录第四章 设备管理4.1 I/O系统4.2 I/O控制方式4.3 缓冲管理4.4 设备管理软件层次结构4.5 设备分配4.6 磁盘存储器管理4.7 RAID第四章 设备管理4.1 I/O系统★ 设备管理的基本功能为进程管理计算机系统提供接口;按照相关算法分配和释放I/O设备;实现CPU和I/O设备之间、I/O设备和I/O设备之间的并行操作;实现其它功能,如缓冲区的管理、实现设...

2019-08-30 10:10:55 512

原创 操作系统——3.并发与进程

文章目录第三章 内存管理3.1 程序的装入和链接3.2 存储管理3.3 虚拟存储技术第三章 内存管理3.1 程序的装入和链接★ 高级语言的源代码转化为进程的3个基本步骤:编译:由编译程序(compiler)将用户源代码编译成若个目标模块链接:由链接程序(linker)将目标模块和库函数链接,形成一个完整的装入模块装入:由装入程序(loader)将装入模块装入内存。★ 空间分类名...

2019-08-30 10:04:22 318

原创 操作系统——2.并发与进程

文章目录第二章 并发与进程2.1 进程的概念2.2 操作系统为控制程序所建立的数据结构2.3 操作系统对进程的控制2.4 线程2.5 进程调度2.6 实时系统与实时任务调度2.7 并发控制2.8 互斥与同步的解决策略2.9 生产者/消费者问题2.10 读者、写者问题2.11 进程间的通信2.12 进程死锁第二章 并发与进程2.1 进程的概念★ 进程一个正在执行的程序、正在运行的程序的一个实...

2019-08-30 09:53:20 886

原创 操作系统——1.概述

第一章 概述1.1 操作系统的概念定义:操作系统是一组控制和管理计算机系统资源的程序集合,它合理地组织多道程序运行,是用户与计算机之间的接口。目标:方便性、有效性、可扩展性、开放性基本特征:并发、共享、虚拟、不确定性1.2 发展史串行处理 :无操作系统、操控控制台运行程序、顺序访问简单批处理:监控程序(一批作业自动处理、内存只能存放一道作业)多道批处理:内存中存放多个作业、...

2019-08-30 09:26:19 331

原创 Java进阶:17.1 二叉搜索树

文章目录1、树2、二叉搜索树 BST2.1 二叉树的节点类 Node\2.2 查找节点 find(x)2.3 查找节点 contains(x)2.4 插入节点 insert(x)2.5 找最大/最小值2.6 删除节点 remove() ——方法12.7 删除节点 remove() ——方法23、遍历1、树树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合。它是由...

2019-07-26 14:25:10 224

原创 Java进阶:17.3 伸展树

1、伸展树简介伸展树(Splay Tree)是特殊的二叉查找树(BST)。它的特殊是指,它除了本身是棵二叉查找树之外,它还具备一个特点: 当某个节点被访问时,伸展树会通过旋转使该节点成为树根。这样做的好处是,下次要访问该节点时,能够迅速的访问到该节点。通过之前的学习,知道连续m次查找,对于AVL树来说,共需要O(mlogn)时间。根据局部性原理,我们可以改进AVL树!!-----> 引...

2019-07-25 09:58:57 360

原创 Java进阶:17.2 AVL树

1、AVL树(平衡二叉树):AVL树本质上是一颗二叉查找树,但是它又具有以下特点:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为平衡二叉树。下面是平衡二叉树和非平衡二叉树对比的例图:平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1<=bf<=1;AVL...

2019-07-24 14:26:10 370

原创 向量(Vector)

public class Vector <E>extends AbstractList <E>implements List<E>, RandomAccess, Cloneable, SerializableThe Vector class implements a growable array of objects. Like an array, it...

2019-06-30 14:01:36 258

原创 散列

在java基础部分13.7学习HashMap中,没有很明白散列表的意义。今天再次学习发现,啊!!原来就是这样 懂了~在JAVA中,散列表用链表数组实现。每个列表被称为桶,查找表中位置时,先计算元素的散列码,然后与桶的总数取余,得到的结果就是保存这个元素的桶的索引。这个机制和cache-memory组相联映射机制很像:地址 = 主存块号 % 分组数。在散列表中: 索引 = 散列码 % 桶数...

2019-06-25 10:56:19 352

原创 List、ArrayList、LinkedList

1、List在IDEA中ctrl+alt+U可以查看继承关系图。List的超类为Collection。List在Collection的基础上添加了大量的方法。主要有两种类型的List:ArrayList、LinkedList2、ArrayList3、LinkedList...

2019-06-25 10:16:10 275

原创 Collection

在最开始学习容器时,笔记:java基础:13.1 集合框架 - 概述java基础:13.3 集合框架 - Collection

2019-06-25 09:41:24 186

原创 Java 内部类

要用到内部类:在java开发学习中我们经常会碰到内部类。定义:内部类是定义在一个类中的类。优点:内部类方法可以访问该类定义所在的作用域中的数据。内部类对同一个包中的其他类隐藏起来。想要定义一个回调函数时,使用匿名内部类 比较便捷。内部类又有很多的优势:首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法名称参数相同,你应该怎么办?这时候,...

2019-06-18 21:28:56 208

原创 clone(); 深拷贝、浅拷贝

CloneCloneable 接口如果直接把一个变量赋给另一个变量,例如下面这句,e1,e2将指向同一个引用对象,如果改变e2的值,e1的值同样将被改变。 Employee e2 = e1;因此,为了使e1,e2可以各自改变状态,需要使用clone方法。clone()完全创造出一个新的对象,有自己的新的地址,只不过初始信息是和原对象是一样的。 public Employe...

2019-06-18 19:32:10 414

原创 String.hashcode()

String.java中对hashCode的定义如下: /** * Returns a hash code for this string. The hash code for a * {@code String} object is computed as * <blockquote><pre> * s[0]*31^(n-...

2019-06-18 14:42:20 901

原创 Object.equals()

Objects中的equals方法用于检测一个对象是否等于另外一个对象。判断两个对象是否具有相同的引用源码如下 public boolean equals(Object obj) { return (this == obj); }可以看到,equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是...

2019-06-18 14:13:33 2284

原创 《JAVA核心技术 卷1》阅读笔记

第3章 基本结构JAVA没有无符号类型。Float类型有后缀F,没有后缀F的浮点数是double型。在十六进制中,用p表示指数,而不是e。例如0x1.0p-3&&、|| 按照“短路”方式求值,如果第一个操作数可以确定表达式结果,不计算第二个数&、| 在得到结果前,一定要计算两个操作数的值。>>>运算符用0填充高位,>>用符号位填充...

2019-06-14 09:48:54 278

原创 数据库 完整性约束

数据完整性分为四类:实体完整性:规定表的每一行在表中是惟一的实体。域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完...

2019-05-24 14:57:42 5043 1

原创 java进阶:16.1 JDBC

文章目录第1步,为项目导入mysql-jdbc的jar包。第2步,初始化驱动。第3步,初始化驱动。第4步,数据修改。第5步,关闭连接。 第1步,为项目导入mysql-jdbc的jar包。访问MySQL数据库需要用到第三方的类,这些第三方的类,都被压缩在一个叫做Jar的文件里。为了代码能够使用第三方的类,需要为项目导入mysql的专用Jar包。下载mysql-connector-...

2019-04-19 14:06:42 278

原创 java进阶:15.5 多线程 - 合集

把非线程安全的集合转换为线程安全之前13章学过的集合框架,Java 合集框架为线性表、集合和映射表。Java 合集框架中的类不是线程安全的;也就是说,如果它们同时被多个线程访问和更新,它们的内容可能被破坏。可以通过锁定合集或者同步合集来保护合集中的数据。Collections 类提供6 个静态方法来将合集转成同步版本:同步包装类 ,这些方法使用 synchronized 关键字来 实现同步...

2019-04-15 19:50:04 267

原创 java进阶:15.4 多线程 - 信号量、原子操作

1. 信号量计算机科学中,信号量指对共同资源进行访问控制的对象。在访问资源之前,线程必须从信号量获取许可。在访问完资源之后,这个线程必须将许可返回给信号量。为了创建信号量,必须确定许可的数量,同时可选用公平策略。任务通过调用信号量的acquire() 方法来获得许可,通过调用信号量的release()方法来释放许可。一旦获得许可, 信号量中可用许可的总数减1。一旦许可被释放,信号量中可用许可的...

2019-04-15 19:28:52 506

原创 java进阶:15.3 多线程 - 锁、ReentrantLock

与synchronized类似的,lock也能够达到同步的效果。1. 利用加锁同步锁是一种实现资源排他使用的机制。对于实例方法,要给调用该方法的对象加锁。对于静态方法,要给这个类加锁。如果一个线程调用一个对象上的同步实例方法(静态方法),首先给该对象(类)加锁,然后执行该方法,最后解锁。在解锁之前,另一个调用那个对象(类)中方法的线程将被阻塞,直到解锁。 与 synchroniz...

2019-04-15 16:45:21 255

原创 java进阶:15.2 多线程 - synchronized、线程安全类

如果一个类的对象在多线程程序中没有导致竞争状态,则称这样的类为线程安全的( thread-safe) 。1. 线程同步

2019-04-15 15:39:35 225

原创 java进阶:15.1 多线程 - Thread、Executor

1. 进程、线程概念首先要理解进程(Processor)和线程(Thread)的区别:进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程:单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。一个线程只能属于一个进程,但是一个进程可以拥有多个线...

2019-04-11 16:43:42 759

原创 java基础:14.5 散列 -- HashMap的手动实现

java.util.Map 接口可以使用三个具体的类来创建一个映射表: HashMap 、LinkedHashMap 、TreeMap.java.util.HashMap 使用散列实现java.util.LinkedHashMap 使用LinkedListjava.util.TreeMap 使用红黑树。 1 散列的基本概念回顾一下映射表(map) :键Key - 值Va...

2019-04-10 15:46:03 501

原创 java基础:14.4 栈、队列

栈、栈的JAVA实现、逆序输出 - 进制转换问题、递归嵌套 - 括号匹配问题、递归嵌套 - 栈混洗问题、延迟缓冲2、队列的实现2、栈的实现3、测试4、优先队列

2019-04-08 15:42:23 263

原创 java基础:14.3 线性表的手动实现

实现线性表的方式有两种。一种是使用数组( array) 存储线性表的元素。数组大小是固定的。如果元素个数超过了数组的容量,就创建一个更大的新数组,并将当前数组中的元素复制到新数组中。另一种是使用链式结构( linked structure) 。链式结构由结点组成,每个结点都是动态创建的,用来存储一个元素。所有的结点链接成一个线性表。这样,就可以给线性表定义两种类。为了方便起见,分别称这两种类...

2019-04-08 15:31:29 361

空空如也

空空如也

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

TA关注的人

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