自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

原创 计算机网络详细总结

1. 常见名词1.1 IP地址1、一个IP地址唯一标识一个网络接口;2、IP地址分为IPv4(32位)和IPv6(128位);3、IP地址分为公网IP地址和内网IP地址,公网IP地址可以直接访问,内网IP只能在内网中访问;4、一个物理设备有多少网卡,就有几个IP地址;连接两个网络的设备是路由器或者交换机,它至少有两个IP地址,分别接入不同的网络,让不同网络质检连接起来。5、同一网络中的设备,IP地址前段相同,即网络号相同,通过子网掩码过滤得到网络号:网络号=IP地址&子网掩码;每台设备都

2020-09-28 11:44:03 577 4

原创 MySQL知识点全面整理

1.SQL语言分类DDL 数据库定义语言DML 数据库操作语言DCL 数据库控制语言DQL 数据库查询语言2.数据库设计范式数据库设计只需要满足第三范式:第一范式表中每一列都具有原子性,不可分割;eg:不能在联系方式列中同时存邮箱和电话。第二范式在第一范式的基础上,需要满足:(1)如果表是单主键,那么主键以外的列必须完全依赖于主键;(2)如果表是联合主键,那么主键以外的列必须完全依赖于联合主键。eg:订单ID和商品ID作为联合主键。第三范式在第二范式的基础上,表中的

2020-09-11 13:01:59 365 2

转载 红黑树 b树 b+树

引言二叉查找树的查找的时间复杂度是O(log N),B树和B+树的出现是因为另外一个问题,那就是磁盘IO;众所周知,IO操作的效率很低,那么,当在大量数据存储中,查询时我们不能一下子将所有数据加载到内存中,只能逐一加载磁盘页,每个磁盘页对应树的节点。造成大量磁盘IO操作(最坏情况下为树的高度)。平衡二叉树由于树深度过大而造成磁盘IO读写过于频繁,进而导致效率低下。所以,我们为了减少磁盘IO的次数,就你必须降低树的深度,将“瘦高”的树变得“矮胖”。一个基本的想法就是:(1)、每个节点存储多个元素(2)

2020-09-11 11:14:14 314

原创 Linux实操篇05--实用指令

1.1 指令运行级别0:关机1:单用户(找回丢失密码)2:多用户状态没有网络服务3:多用户状态有网络服务4:系统未使用,保留给用户5:图形界面6:系统重启常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab的id:5:default这一行的数组。1.2 切换到指令运行级别基本语法:init [0/1/2/3/4/5/6问题:如果不小心忘记root密码,如何找回?方法1:如果当前用户具有sudo权限,那么可以直接:sudo su root 然后pa

2020-09-09 19:30:58 192

原创 Linux实操篇04--用户管理

1.1 基本介绍Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。1.1.1 添加用户新建只能在控制台下登录的用户:添加用户:useradd [选项] 用户名为该用户设置登录密码:passwd 123456为该用户指定命令解释程序:usermod -s /bin/bash 用户名为该用户指定用户主目录:usermod -d /home/用户名 用户名查看用户的属性:cat /etc/passwd删

2020-09-09 17:57:42 103

原创 Linux实操篇03--开机/重启和用户登录注销

1 关机和开机命令1.1 基本介绍:shutdownshutdown –h now :立即关机shudown -h 1 :1min后关机shutdown –r now :立即重启halt:等价于关机reboot :重启sync :把内存数据同步到磁盘,在关机前,应该执行保存数据。1.2 用户登录和注销登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用su - 用户名

2020-09-09 17:07:01 134

原创 Linux实操篇02--vi和vim编辑器

基于Ubuntu内核的Linux系统,涉及以下内容vi和vim编辑器1.1 vi和vim基本介绍Linux 系统都会内建vi 文本编辑器。Vim 具有程序编辑的能力,可以看做是Vi的增强版本。1.2 vi和vim常用的三种模式正常模式:以vim 打开一个档案就直接进入一般模式(默认模式)。在这个模式中, 可以使用『上下左右』按键来移动光标,可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理文件数据。插入模式:按下i, I, o, O, a, A,.

2020-09-09 16:51:21 175

原创 Linux实操篇01--远程登录和远程上传和下载文件

基于Ubuntu内核的Linux系统,涉及以下内容Linux实操篇01 远程登录实际开发时,linux服务器是开发小组共享的,正式上线的项目是运行在公网的.因此程序员需要远程登录到ubuntu系统进行项目管理或者开发。远程登录客户端有Xshell5,Xftp5 ,这里使用Xshell5 和Xftp 。远程登录Linux-Xshell5Xshell 是目前最好的远程登录到Linux操作的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。前提:Linux开启了sshd服务.

2020-09-09 15:56:50 264

原创 Linux学习--基础篇

基于Ubuntu内核的Linux系统,涉及以下内容Linux基础Linux实操Linux之JavaEE定制篇

2020-09-09 11:35:20 126

原创 JavaScript学习之面向对象编程-04

学习廖雪峰课程笔记:原地址:https://www.liaoxuefeng.com/wiki/1022910821149312/1023020925712064面向对象编程JavaScript的所有数据都可以看成对象,JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。面向对象的两个基本概念:类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学生类型,但不表示任何具体的某个学生;实例:实例是根据类创建的.

2020-09-02 23:38:50 212

原创 JavaScript学习之标准对象-03

学习廖雪峰课程笔记:原地址:https://www.liaoxuefeng.com/wiki/1022910821149312/1023020925712064标准对象在JavaScript的世界里,一切都是对象。为了区分对象的类型,用typeof操作符获取对象的类型,它总是返回一个字符串:typeof 123; // 'number'typeof NaN; // 'number'typeof 'str'; // 'string'typeof true; // 'boolean'type.

2020-09-02 17:33:48 122

原创 JavaScript学习之函数-02

函数JavaScript的函数可以像变量一样使用,具有非常强大的抽象能力。

2020-09-02 15:20:06 229

原创 JavaScript学习之快速入门-01

JavaScript代码可以直接嵌在网页的任何地方,通常都把JS代码放到中:<html><head> <script> alert('Hello, world'); </script></head><body> ...</body></html>由包含的代码就是JS代码,它将直接被浏览器执行。第二种方式是把JS代码写到一个**.js**文件中,通过引入这个文件:<ht

2020-09-01 15:49:38 231

原创 CSS学习之flex弹性盒--08

1、flex(弹性盒、伸缩盒)flex是CSS中的又一种布局手段,它主要用来代替浮动来完成页面的布局,flex可以使元素具有弹性,让元素可以跟随页面的大小的改变而改变。弹性容器要使用弹性盒,必须先将一个元素设置为弹性容器,通过 display 来设置弹性容器:display:flex 设置为块级弹性容器display:inline-flex 设置为行内的弹性容器弹性元素弹性容器的子元素是弹性元素(弹性项)弹性元素可以同时是弹性容器flex-direction 指定容器中弹

2020-09-01 14:16:06 189

原创 CSS学习之less--07

less是一门css的预处理语言:less是一个css的增强版,通过less可以编写更少的代码实现更强大的样式在less中添加了许多的新特性:像对变量的支持、对mixin的支持… …less的语法大体上和css语法一致,但是less中增添了许多对css的扩展。所以浏览器无法直接执行less代码,要执行必须先将less转换为css,然后再由浏览器执行。例子如下:<!DOCTYPE html><html lang="en"><head> <me

2020-09-01 14:15:58 106

原创 CSS学习之动画--06

1. 过渡(transition)过渡(transition)(eg:transition:all 2s; ),通过过渡可以指定一个属性发生变化时的切换方式,通过过渡可以创建一些非常好的效果,提升用户的体验。transition-property: 指定要执行过渡的属性,多个属性间使用,隔开 ,如果所有属性都需要过渡,则使用all关键字。transition-property: height , width; transition-property: all; transition-

2020-09-01 14:15:48 160

原创 CSS学习之字体--05

字体font-face可以将服务器中的字体直接提供给用户去使用,问题:1.加载速度2.版权3.字体格式字体相关的样式,color 用来设置字体颜色,font-size 字体的大小 (和font-size相关的单位,em 相当于当前元素的一个font-size,rem 相对于根元素的一个font-size),font-family 字体族(字体的格式) serif 衬线字体 sans-serif 非衬线字体

2020-09-01 14:14:35 137

原创 CSS学习之定位--04

1、定位定位是一种更加高级的布局手段,通过定位可以将元素摆放到页面的任意位置,使用position属性来设置定位。position属性可选值:static 默认值,元素是静止的没有开启定位relative 开启元素的相对定位absolute 开启元素的绝对定位fixed 开启元素的固定定位sticky 开启元素的粘滞定位1.1 相对定位当元素的position属性值设置为relative时则开启了元素的相对定位,相对定位的特点:元素开启相对定位以后,如果不设置偏移量元素不会发生任何

2020-09-01 14:14:24 224

原创 CSS设置元素浮动--03

1、元素浮动–float属性通过浮动可以使一个元素向其父元素的左侧或右侧移动,使用 float 属性来设置元素的浮动,可选值:none 默认值 ,元素不浮动left 元素向左浮动right 元素向右浮动注意:元素设置浮动以后,水平布局的等式便不需要强制成立元素设置浮动以后,会完全从文档流中脱离,不再占用文档流的位置, 所以元素下边的还在文档流中的元素会自动向上移动浮动的特点:浮动元素会完全脱离文档流,不再占据文档流中的位置设置浮动以后元素会向父元素的左侧或右侧移动浮动元素默

2020-09-01 14:14:15 1811

原创 CSS盒子模型学习-02

1、文档流网页是一个多层结构,一层叠加一层;通过CSS可以分别为每一层来设置样式;作为用户来讲只能看到最顶上一层;这些层中,最底下的一层称为文档流,文档流是网页的基础。我们所创建的元素默认都是在文档流中进行排列对于我们来说元素主要有两个状态: 在文档流中和不在文档流中(脱离文档流)元素在文档流中的特点:块元素块元素会在页面中独占一行(自上向下垂直排列)默认宽度是父元素的全部(会把父元素撑满)默认高度是被内容撑开(子元素)行内元素行内元素不会独占页面的一行,只占自身的大小

2020-09-01 14:14:02 179

原创 CSS基本语法学习总结 -01

CSS–层叠样式表网页实际上是一个多层的结构,通过CSS可分别为网页的每一层来设置样式,最终用户看到的只是网页的最上一层。总之,CSS是用来设置网页中元素的样式。1、使用CSS修改元素的样式方式一:内联样式(行内样式)-- 标签的style属性在标签内部通过style属性来设置元素的样式;存在问题:使用内联样式,样式只能对一个标签生效;如果希望影响到多个元素,必须在每一个元素中都重复设置一边,非常不方便。注意:开发时绝对不要使用内联样式。<p style="color:red; f

2020-09-01 14:13:50 123

原创 HTML学习总结 --00

HTML超文本标记语言,用来表述网页,可通过HTML格式化文本,添加图片,创建链接,输入表单,框架和表格等;浏览器可以读取和显示.html文件1、什么是HTML不是一种编程语言,而是一种编辑语言标记语言是一套标记标签HTML使用标记标签来描述网页和内容HTML文档包含了HTML标签和文本内容HTML文档也叫web页面2、 HTML文本文件结构< !DOCTYPE html> :声明文档类型为html5< html>xxx< /html>:根元素

2020-09-01 14:13:37 213

原创 Hash相关总结

参考博客:【1】hash冲突解决方法【2】hashCode()函数与equals的作用与区别Hash冲突处理方法:(1)开放定址法(线性探测再散列,二次探测再散列,随机探测再散列)(2)链地址法:将产生冲突的对象链接再同一链表中。(hashmap处理冲突的方法)(3)再哈希法:重复计算hash,直到不发生冲突为止。(3)建立公共溢出区:将所有的冲突数据存在这个地方,不存在表中。简述把任意长度的输入,通过Hash算法变成固定长度的输出,几位Hash值。由于哈希值空间远小于输入空间,故可能发生

2020-08-13 13:41:14 357

原创 将本地项目上传到gitee

安装git客户端到Git官网下载,网站地址:https://git-scm.com/downloads,[安装配置过程请参考] 。创建Gitee/Github仓库这个直接进Gitee/Github界面,注册账号,创建仓库。可复制仓库地址。将创建好的仓库拉取到本地新建一个空文件夹,鼠标右键,点击git bash,在 git bash 中输入:git clone <你的仓库地址>仓库拉取到本地后。可看到空文件夹下多了一个文件夹,即本地仓库,进入本地仓库,可直接将需要上传的项目全部放在这

2020-08-06 17:14:04 143

转载 Windows10家庭版及以下系统安装Docker-compose--亲测有效

docker镜像在创建之后,需要自己手动pull来获取镜像,然后执行run命令来运行。当服务需要用到多种容器,容器之间又产生了各种依赖和连接的时候,部署一个服务的手动操作是令人感到十分厌烦的。docker-compose技术,就是通过一个 .yml 配置文件,将所有的容器的部署方法、文件映射、容器连接等等一系列的配置写在一个配置文件里,最后只需要执行docker-compose up命令就会像执行脚本一样的去一个个安装容器并自动部署他们,极大的便利了复杂服务的部署。docker-compose安装布署

2020-07-29 18:38:29 686

原创 Windows10家庭版安装Docker Toolbox后,再安装Hyper-v的血泪史以及解决方法

问题Windows10家庭版安装Docker Toolbox后,再安装了Hyper-v。之后出现一些列难顶的问题。之后打开Docker Quickstart Terminal,报错如下:VBoxManage.exe: error: Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT)VBoxManage.exe: error: Details: code E_FAIL (0x80004

2020-07-29 15:56:37 600

转载 java编译过程中出现了Exception in thread “main“ java.lang.UnsupportedClassVersionError

由于最开始用的java11,后来卸载安装了java1.8,出现报错:Exception in thread “main" java.lang.UnsupportedClassVersionError解决方法:请参考

2020-07-28 21:32:48 184

原创 Windows10下给Docker toolbox配置阿里云镜像加速+外部IP访问+Docker私有仓库

1.在docker toolbox执行下面的命令进入VM bash  docker-machine ssh default2.执行下面的命令修改profile文件:  sudo vi /var/lib/boot2docker/profile打开文件之后,敲下i (insert)进入插入模式,然后执行第3步。3.在–label provider=virtualbox的下一行添加。(加速地址自己注册一个阿里云账号,可产生专属加速地址https://cr.console.aliyun.com/cn-ha

2020-07-27 18:26:13 466

原创 Docker入门--11

《Spring Cloud与Docker微服务架构实战》周立 --笔记11.1 Docker简介Docker是一个开源的容器引擎,有助于更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可快速地打包,测试,以及部署应用程序,并缩短从编写到部署运行代码地周期。11.2 Docker的架构Docker的架构图:其中包含的组件:Docker daemon(Docker守护进程):Docker daemon是一个运行在宿主机(Doc.

2020-07-27 15:00:23 78

原创 Spring Cloud使用Spring Cloud Sleuth实现微服务跟踪--10

《Spring Cloud与Docker微服务架构实战》周立 --笔记10.1 为什么要实现微服务跟踪微服务之间通过网络进行通信,如果能够跟踪每个请求,了解请求经过哪些微服务(了解信息如何在服务之间流动),请求耗时,网络延时,业务逻辑,耗费时间等标志,就能够更好的分析系统瓶颈,解决系统问题,因此,微服务跟踪很有必要10.2 Spring Cloud Sleuth简介Spring Cloud Sleuth为Spring Cloud提供了分布式跟踪的解决方案,Sleuth中的术语:span(跨.

2020-07-27 13:04:51 84

原创 Spring Cloud使用Spring Cloud Config统一管理微服务配置--09

《Spring Cloud与Docker微服务架构实战》周立 --笔记9.1 为什么要统一管理微服务配置微服务架构中,微服务的配置管理一般有以下需求:集中管理配置不同环境,不同配置运行期间可动态调整修改配置后可自动更新9.2 Spring Cloud Config简介Spring Cloud Config为分布式系统外部化配置提供了服务端和客户端的支持,包括Config Server和Config Client两部分。Config Server用于集中管理应用程序各个环境下的配置,默.

2020-07-27 11:31:01 69

原创 Spring Cloud使用Zuul构建微服务网关--08

《Spring Cloud与Docker微服务架构实战》周立 --笔记8.1 为什么要使用微服务网关从前面的章节知道,不同微服务具有不同的网络地址,,而外部客户端可能需要调用多个服务的接口节能完成一个业务需求。例如,一个电源购票的手机APP,可能调用多个微服务的接口才能完成一次购票业务:如果让客户端直接与各个微服务通信,会有以下问题:客户端会多次请求不同的微服务,增加客户端的复杂性。存在跨域请求,在一定场景下处理相对复杂认证复杂,在一定场景下处理相对复杂难以重构,随着项目的迭代,可能需.

2020-07-24 15:23:12 82

原创 Spring Cloud使用Hystrix实现微服务的容错处理--07

《Spring Cloud与Docker微服务架构实战》周立 --笔记前面Eureka实现类服务的注册与发现,Ribbon实现了客户端侧的负载均衡,Feign是实现了声明式的REST API的调用。这里讨论Hystrix如何实现微服务的容错。7.1 实现容错的手段如果服务提供者响应非常缓慢,那么消费者对提供者的请求就会被强制等待,直到提供者响应或者超时。在高负载情况下,如果不做任何处理,此类问题会最终导致服务消费者的资源耗竭甚至整个系统崩溃。需要考虑的问题:服务提供者不可用时,服务消费者会不会被.

2020-07-22 17:09:55 120

原创 Spring Cloud使用Feign实现REST API的调用--06

《Spring Cloud与Docker微服务架构实战》周立 --笔记在硬编码实现微服务之间的调用时,使用RestTemplate对REST API进行调用,这里采用的是拼接字符串的方式构造URL。但当URL中有很多参数时,使用这种方式很低效,且难以维护。Feign可以更方便地实现REST APP的调用。5.1 Feign简介Feign是Netflix开发的声明式,模板化的HTTP客户端,使得调用HTTP API更加便捷。Spring cloud对Feign进行了增强,使得Feign支持Spri.

2020-07-22 16:07:16 344

原创 Spring Cloud使用Ribbon实现客户端侧负载均衡--05

《Spring Cloud与Docker微服务架构实战》周立 --笔记启动所有微服务时,Eureka Client会把自己的网络信息注册到Eureka Server上。实际生产环境中,每个微服务一般会部署多个实例,那么服务消费者如何将请求分摊到多个服务提供者的实例上?–负载均衡器Ribbon5.1 Ribbon简介负载均衡器Ribbon有助于控制HTTP和TCP客户端行为,为Ribbon配置服务提供者列表后,Ribbon就可基于某种负载均衡算法,自动帮助服务消费者去请求。在Spring Clou.

2020-07-20 15:12:49 78

原创 Spring Cloud微服务注册与发现--04

《Spring Cloud与Docker微服务架构实战》周立 --笔记服务发现简介前面我们知道硬编码提供者地址存在许多问题,在微服务架构中,服务发现组件可以解决这些问题,让服务消费者无需修改配置就可动态获取服务提供者网络信息。提供这种能力,服务发现组件的架构图为:服务发现组件,服务提供者,服务消费者三者之间的关系为:(1) 所有微服务启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件存储这些信息。–服务注册,服务注册表(2) 服务消费者可从服务发现组件查询服务提供者的网络地址.

2020-07-18 20:03:59 90

原创 Spring Boot硬编码实现服务之间的调用(MySQL+Mybatis持久层框架)--03

之前使用Spring Boot建表时,没有配合使用Mybatis框架,直接在顶层包编写一个类,利用JdbcTemplate和@PostConstruct注解进行数据表的建立和初始化。引入了Mybatis框架后,原来的DatabaseInitializer 类不能成功的建表,导致报错。查了资料后,决定在此记录一下。在eclipse中新建一个Spring Boot工程,具体建表方法如下:工程目录大家命名可随意,我这里是为了实现一个服务提供者而命名。引入所需依赖–pom.xml文件<?xml

2020-07-18 13:26:50 223

原创 微服务开发框架Spring Cloud简介--02

《Spring Cloud与Docker微服务架构实战》笔记1.1 Spring Cloud简介Spring Cloud是在Spring Boot的基础上构建的,用于快速构建分布式系统的通用模式工具集。使用Spring Cloud开发的应用程序非常适合在Docker或者PaaS上部署。Spring Cloud特点(1)约定优于配置 (2)适用于各种环境,例如本地和云环境。(3)隐藏了组件的复杂性,提供声明式,无xml配置方式(4)轻量级组件Spring Cloud/Spring Boo.

2020-07-17 15:47:02 105 1

原创 微服务架构概述--01

微服务架构概述 《Spring Cloud与Docker微服务架构实战》第二版周立--笔记1.1 单体应用架构存在的问题一个war包包含的所以应用程序,称为单体应用,对应着单体架构。单体的UI和若干业务模块被包含在一个war包中,扩展时只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩。并且单体应用往往使用统一技术平台解决所有问题,引入新框架或新技术非常困难。以电影售票系统为例,电影售票系统单体架构示意图:随着业务需求的发展,功能逐渐增多,单体架构很难满足业务快速变化的需要,为了解决单体

2020-07-17 15:21:23 131

原创 Zookeeper与Tomcat占用8080端口

Zookeeper占用8080端口Zookeeper启动时会启动jetty,jetty占用了8080端口,与Tomcat冲突。在Zookeeper安装目录下的conf文件夹内,修改zoo.cfg文件,加上:admin.serverPort=自己设置不冲突的端口(我设置的8081)...

2020-07-17 11:10:55 727 1

基于FPGA的可调时钟(利用8051内核)

将8051内核下到FPGA中,实现对LCD的控制,实现可调时钟。

2018-12-26

51单片机实例20例

适合初学者,基于单片机开发板的51单片机实例代码20例

2018-03-14

空空如也

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

TA关注的人

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