自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常用数据结构基本知识总结!

线性结构特点线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。线性结构有两种不同的存储结构,既顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的。链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素中存放数据元素以及相邻元素的地址信息(指针)。数组与链表数组将多个元素存放在连续的地址中,从下标0开始标记每个元素的顺序。数组是需要提前声明空间的,在Java中用如下方式定义数组,都是声明了数组的空间,当访问的下标超

2021-01-31 15:54:57 410

原创 This beta version of Typora is expired,一劳永逸解决typora过期

This beta version of Typora is expired,一劳永逸解决typora过期

2022-08-02 10:33:44 544

原创 Oracle Rac基础

Oracle Rac基础RAC(real application clusters)工作原理Cache Fusion后台程序共享存储OPS与RAC区别RAC(real application clusters)整个集群系统由Oracle Clusterware(集群就绪软件)和Real Aplication(RA)两大部分组成。一个Oracle Rac数据库有多个服务器节点组成,每个服务节点上面都有自己独立的OS,ClusterWare,Oracle RAC数据库程序等,每个节点都有自己的网络监听器

2021-12-22 11:33:39 964

原创 Oracle基础

Oracle基础简介数据库存储结构物理结构逻辑结构InstanceSGA(System Global Area)shared poolDatabase buffer cacheRedo log bufferlarge poolstream pooljava pool缓存管理后台进程PMONSMONDBWnLGWRCKPTARCnPGA(Porcess Global Area)stack spaceuser session datasort areacursor statusUGA(User Global A

2021-12-21 14:46:53 833

原创 MongoDB

MongoDB数据结构基本命令操作索引执行计划覆盖索引Java操作集群副本集选举原则分片MongoDB是NoSQL数据库的一种,是一种文档型数据库,它使用的是一种类似于JSON的数据结构既BSON。工作于27017端口。与Reids一样MongoDB也是为了解决大数据时代的新需求(三高,3V)。MongoDB不支持事务,常用于数据量大,读写操作频繁,价值较低的数据(如游戏中的经验等,物流中的订单变更等等)数据结构在MongoDB中,表可以理解为collection,一个collection中有多行

2021-12-09 18:22:44 587

原创 Linux基础知识(二)

Shellshell是一个命令行解释器,用于接收应用用户或程序的命令。解析器有:/bin/sh和/bin/bash,sh时bash的一个软件连接,默认为bash,在开头写#!/bin/bash,指定解析器,像include一样。Bash shell是Linux默认的shell,bash会将输入过的命令记录到~/.bash_history中,可以直接通过history查看,还可以通过上下键找到输入过的命令, 可以通过type查看是否为内置命令。变量规则使用一个定义过的变量,只要在变量名前面加$

2021-12-03 16:09:22 1126

原创 Linux基础知识(一)

文件目录树/bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。/home:用户的主目录,

2021-11-28 14:30:29 3989

原创 ETL简介

ETL简介ETL(Extract-Transform-Load数据仓库技术)数据抽取 Extract数据的清洗转换 Transform数据装载 LoadETL(Extract-Transform-Load数据仓库技术)ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。数据抽取 Extract数据的抽取是从各个不同的数据源抽取到ODS(Operational Data Store,操作型数据存储)。

2021-11-26 17:32:27 1794

原创 为什么MySQL使用B+树?

首先需要理解磁盘IO的原理磁盘读取硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头。将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分),扇区是磁盘的最小组成单元。硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。block:块是虚拟出来的,是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。由于扇区的数量比较小,数目众多在寻址时

2021-01-31 16:05:41 610

原创 Spring基础理论知识

架构Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。core提供了框架的基本组成部分,包括 IoC 和依赖注入功能。spring-beans提供 BeanFactory,工厂模式的微妙实现,它移除了编码式单例的

2021-01-28 19:53:07 621

原创 还不会Mybatis?看完这篇就无敌!

什么是 MyBatis?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。学习文档:https://mybatis.org/mybatis-3/zh/index.html使用步骤1. Maven依赖&l

2021-01-27 13:02:00 372

原创 2021年了还不会Nginx???没事,看完包会!(手动狗头)

Nginx官方文档:http://nginx.org/en/docs/Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器。反向代理正向代理:正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服

2021-01-26 12:07:00 330 1

原创 MongoDB超级快速学习!!!

基本概念MongoDB是NoSQL数据库的一种,是一种文档型数据库,它使用的是一种类似于JSON的数据结构既BSON。工作于27017端口。MongoDB不支持事务,常用于数据量大,读写操作频繁,价值较低的数据(如游戏中的经验等,物流中的订单变更等等)数据结构在MongoDB中,表可以理解为collection,一个collection中有多行既Document。每一列被成为域filed,同时MongoDB不支持表连接。MongoDB最小存储单位就是document,数据在MongoDB中以

2021-01-24 15:38:36 210

原创 最完整的MySQL知识!掌握MySQL知识

MySQL约束用于限制表中的数据,保证表中数据的准确和可靠。not null 非空,不能为null。default 默认,用于保证该字段有默认值。primary key 主键,用于保证唯一性。unique 唯一,但是可以为null。foreign key 外键,用于限制两个表的关系,在从表添加外键,用于引用主表中的值。超键、候选键、主键、外键超键在关系模式中,能够唯一标识元组的属性集称为超键。比如:学生(学号,姓名,性别,专业编号,年龄)其中可以通过学号来确定一名学生,但是通过姓

2021-01-23 23:35:37 179

原创 不懂并发?看完就超神!!!Java并发基础(六)

并发面试题sleep和wait、yield的异同wait 方法是属于 Object 类中的,wait 过程中线程会释放对象锁,只有当其他线程调用 notify 才能唤醒此线程。wait 使用时必须先获取对象锁,所以在调用wait()时,该线程必须已经获得锁即必须在 synchronized 修饰的代码块中使用,那么相应的 notify 方法同样必须在 synchronized 修饰的代码块中使用,如果没有在synchronized 修饰的代码块中使用时运行时会抛出IllegalMonitorStateE

2021-01-23 15:29:37 139

原创 不懂并发?看完就超神!!!Java并发基础(五)

concurrenthashmaphashtable、vector和collections底层都是使用synchronized的重量级锁实现的线程安全,性能不如使用轻量级锁的集合类。而collections使用装饰器模式将原本线程不安全的比如map、list等通过synchronized变为线程安全的,但是其性能任然不好。hashmap在多线程下的问题jdk7并发死链由于jdk7在插入链表时是使用头插法,在扩容时会进行迁移,迁移过程会先记录下old table的e和next,但在多线程下,可能会

2021-01-23 15:24:06 168 1

原创 不懂并发?看完就超神!!!Java并发基础(四)

JUCfastfail快速失败机制是Java集合一种错误检测机制,在多线程下使用线程不安全的集合,每次在修改集合时都会将modCount++,而在遍历集合是会检查mod。AQS 重点Abstract Queued Synchronizer,阻塞式锁和相关同步工具的框架,用来构建锁和同步器的,AQS底层使用模板模式,Reentrantlock,semaphore等都都需要重写指定的方法。isHeldExclusively()//该线程是否正在独占资源。只有用到condition才需要去实现它。t

2021-01-23 15:14:41 94

原创 不懂并发?看完就超神!!!Java并发基础(三)

线程池ThreadPoolExecutor线程池状态七个构造方法参数线程池中主要分为核心线程,救急线程,阻塞队列,核心线程会不断执行任务,任务执行完后会接着执行任务(一直存在),而救急线程是在阻塞队列满后,就会接下任务的线程(抢救),corePoolSize指定core thread的数量,而maximumPoolSize就是core thread和救急线程的总和。keepalivetime、unit表示救急线程的生存时间和时间单位,救急线程在执行完任务后会等待keepalivetime指定

2021-01-23 14:43:13 232

原创 不懂并发?看完就超神!!!Java并发基础(二)

wait、notifywait和notify调用的前提是它们在调用之前是owner,如果在没有获得锁就调用会报错(所以需要使用syn)。一般使用motifyall,因为notify不能指定唤醒会造成虚假唤醒。● wait(),notify(),notifyAll() 和 synchonized 需要搭配使用, 用于线程同步● 线程被notify后,会从wait的地方开始继续执行。● 当一个线程在执行synchronized 的方法内部,调用了wait()后, 该线程会释放该对象的锁,然后该线程

2021-01-23 14:27:12 123

原创 不懂并发?看完就超神!!!Java并发基础(一)

多线程基本概念参考课程:全面深入学习java并发编程,java基础进阶中级必会教程进程与线程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。并行与并发并行:在同一时刻一个进程的一条指令执行,只是由于多个进程被快速轮转,使得在宏观上好像是多个进程同时进行。并行:在同一时刻内多个进程的多条指令在多个处理器上同时执行,这种情况下才

2021-01-22 13:56:29 125

原创 HTTP协议详解

HTTP工作原理HTTP(Hyper Text Transer Protocol),基于TCP/IP的应用层协议,工作于C/S服务架构,用于服务器和客户端之间传送超文本(超文本就是用超链接的方法,将各种不同时空的文字信息组织在一起的网状文本,)的传送协议。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容,超文本有许多种格式,其中最为广泛运用的是HTML。HTTP工作于客户端-服务端架构上,HTTP默认端口号为80,但是你也可以改为8080或者其他端口,HTTP是明文数据传输。HTTP是

2021-01-18 11:31:09 726

原创 Redis完整快速入门 看完就无敌!!!!!!

RedisNoSQL优点:易扩展,NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性,数据之间无关系,不需要设计数据库,这样就非常容易扩展,NoSQL数据库都具有非常高的读写性能。大数据时代3V:海量Volume,多样Variety,实时Velocity。3高:高并发,高可扩,高性能。4种类型键值(Key-Value)存储数据库:这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。列存储数据库:这部分数据库通常是用来应对分布式存

2021-01-15 14:53:36 1026 1

原创 Docker快速入门!!!

DockerDocker是一个开源的应用容器引擎,基于Go语言。参考课程:【狂神说Java】Docker最新超详细版教程通俗易懂容器与VM容器直接在Linux上运行,同时还与其他容器共同宿主机的kernel,容器之间相互隔离,占用的内存小于其他任何可执行应用,这使得Docker轻量化。相反VM则需要以运行一个完整的客户机操作系统,并使用hypervisor通过虚拟路径访问主机资源。Docker在Centos7的安装若存在Docker,需要先卸载Docker:yum remove docke

2021-01-15 13:58:42 74

原创 RIP协议详解

RIP协议详解RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(Bellham-Ford)(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。RIP应用于OSI网络七层模型的应用层,使用UDP 520端口。在实际中已经很少使用,其最大优点就是简单。报文格式工作过程RIP使用reque

2021-01-02 17:24:55 18975

原创 OSPF详解

OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),其核心思想是SPF,使用著名的迪克斯彻(Dijkstra)算法来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。在OSI模型中工作于网络层,在TCP/IP层中工作于应用层。IP协议89。工作过程每台路由器向邻居发送Hello包形成邻居关系,邻居之间还会定时发送Hello数据包来维

2021-01-02 12:34:53 5408

原创 TCP UDP详解

TCP:面向连接的、可靠的、基于字节流的传输层通信协议。UDP:无连接、不可靠的、面向报文的。TCP报文格式TCP传输控制协议,面向连接的,可靠的,基于字节流的传输层协议。TCP报文封装在IP数据部分中。① URG:当URG=1时,注解此报文应尽快传送,而不要按本来的列队次序来传送。与“紧急指针”字段共同应用,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。② ACK:只有当ACK=1时,确认序号字段才有效。③ PSH:当PSH=1时,接收方应该尽快将本报文段立即传送给其应用层。

2021-01-01 15:55:54 482

原创 DHCP详解

DHCP介绍BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。DHCP:动态主机配置协议 为大量客户机自动分配地址,提供集中管理 减轻管理和维护成本、提高网络配置效率,分配内容:网卡的 IP 地址、子网掩码、对应的网络地址、广播地址、默认网关地址、DNS 服务器地址等。DHCP有三种机制分配IP地址:自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DH

2020-12-31 21:10:14 581

原创 DNS详解

DNS服务器域名系统(Domain Name System)万维网上作为域名和IP地址相互映射的一个分布式数据库。DNS基于UDP,DNS请求和回答报文使用的UDP数据报经过端口53。根域名服务器→顶级域名服务器→二级域名服务器DNS Resolver - 递归解析器主要是接收客户端发出的域名解析请求,并发送 DNS query 查询请求。对于客户端来说它不需要任何操劳,等待 DNS Resolver 告诉自己域名转IP的结果就好。权威解析服务器DNS权威服务器保存着域名空间中部分区域的数据。

2020-12-31 20:54:16 293

原创 OSI七层模型与TCP/IP四层模型

OSI七层与TCP/IP四层实际中执行TCP/IP标准TCP/IP:①开放的协议标准,免费使用,并且独立于特定的计算机硬件与操作系统;②独立于特定的网络硬件,可以运行在局域网、广域网,更适用在互联网中;③统一的网络地址分配方案;④标准化的高层协议,可以提供很多可靠的用户服务。OSI物理层提供传输介质为数据链路层提供物理连接,实现计算机节点之间的比特流的透明传输。集线器,中继器工作于本层。数据链路层数据链路层由MAC(介质访问控制子层)和LLC(逻辑链路控制子层)组成。逻辑链路控制子层对在

2020-12-31 20:32:30 300

原创 ThreadLocal面试突击!超级详细

声明本文用于面试总结,没有基础的同学,可以看这个视频:java基础教程由浅入深全面解析threadlocal什么是ThreadLocal?大意:ThreadLocal类提供线程局部变量,这些变量与其他普通共享变量在于,每一个线程都有自己独立的一份进行过初始化复制的变量,ThreadLocal的实列通常在类中是private static的,这样做是希望将实列的状态与Thread关联。结构演变在JDK8前,ThreadLocal中会维护一个ThreadLocalMap,这个ThreadLocal

2020-12-29 22:37:39 363

原创 综合解读TCP为什么三次握手

TCP为什么三次握手首先可以先参考下面这篇文章参考。TCP 为什么三次握手而不是两次握手(正解版)以下都为个人理解。结论先行:三次握手本质目的是同步连接双方的序列号(seq)和确认号(ack)并交换 TCP窗口大小信息。也可以理解为文章TCP 为什么三次握手而不是两次握手(正解版)中的结论为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起

2020-11-15 12:37:30 241

空空如也

空空如也

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

TA关注的人

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