自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 阿里云视频点播服务---aliyun-sdk-vod-upload报错(红色波浪线)--- 解决办法

今天使用阿里云的视频点播服务,其中有aliyun-sdk-vod-upload依赖,但是一直没有办法导入成功,看了网上半天的博客,终于解决了这个问题!首先,aliyun-sdk-vod-upload.jar 不是开源的jar导致maven中央仓库是没有的,所以我们在pom中直接依赖是无法成功的。我们要做的就是手动下载引入:1. 阿里云aliyun-sdk-vod-upload.jar下载地址https://help.aliyun.com/document_detail/51992.html?spm=

2020-10-05 15:04:46 1762 2

原创 IDEA jsp 出现报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

今天使用jsp进行数据库连接时,一直报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver在网上看了很多帖子,最后发现犯了一个很简单的错误:项目的jar包(不使用maven时),应该放在WEB-INF下的lib文件夹下,其它地方都不会被tomcat识别!!!...

2020-09-08 16:47:10 295

原创 计算机体系结构

1、 简述:1)计算机体系结构研究的目的,2)计算机系统中并行性的层次划分。a.目的:如何利用现有软硬件技术,以并行、流水机制改变系统的工作方式,通过增加性能结构,综合软硬件技术优势提高计算机系统性能。b.划分(从低层到高层)①指令内并行:②指令级并行:③任务(或过程)级并行④作业(或程序)级并行:2、 术语解释: 1) CISC, 2) RISC, 3)微体系结构,4)系列机,5) Cacbe与主存一致性6)多处理机MESI协议。① CISC:复杂指令集计算机。② RISC:精简指令集

2020-09-06 15:15:15 859

原创 Java 多线程机制(快速了解多线程)

一、简介1、进程与线程进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)程序是一段静态的代码,它是应用软件执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。现代操作系统可以同时管理一个计算机系统中的多

2020-09-06 15:05:25 709

原创 mybatis PageHelper.startPage出现limit错误

问题如下:小编在使用Mybatis分页插件时,一直报这个错误,查找了好久都没有找到问题。这是后台代码:经过小编的不断排查,以及原理探究,终于发现错误的原因!!!第一:PageHelper.startPage是分页开始标志,mybatis会拦截查询的SQL语句,进行+limit (pageNum,pageSize)操作第二:在反复没有问题代码时,请检查你的SQL语句!!!!(细心检查)这是小编的SQL语句:请大家看看这个SQL语句的问题:就是在最后,小编顺手写了个分号这样会导致sql

2020-07-04 17:45:16 5148 1

转载 Mybatis个人简单理解

Mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。配置文件中需要配置数据源、数据库信息、配置SqlSession,标明mapper映射,注解驱动mybatis实现了DAO接口与xm.

2020-05-27 21:11:06 3019

原创 Mysql 主从复制

1.什么是主从复制主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。您看,像在mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起

2020-05-09 16:03:25 166

原创 CAS概述、定义、缺点和优化

1.CAS概述CAS(Compare-and-Swap),即比较并替换,是一种实现并发算法时常用到的技术,Java并发包中的很多类都使用了CAS技术.2. CAS定义CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。3. CAS的...

2020-04-25 20:14:57 620

原创 ArrayList源码解读(JDK8)

首先,我们可以看到,ArrayList继承的是AbstractList抽象类,实现的是List接口ArrayList的成员变量都用private static final来进行修饰,默认的容量是10我们从上面的ArrayList的构造函数可以得知,如果不设置initialCapacity,创建实例对象时,系统默认的capacity为默认的0.接下来,我们来看看ArrayList的add...

2020-04-25 20:09:30 180

原创 操作系统调度的方式

1. 处理机调度的层次1.1 高级调度(作业调度)–>多道批处理系统中调度对象:作业主要功能:根据某种算法,将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程,分配资源,并将他们放入就绪队列。1.2 低级调度(进程调度)–>多道批处理系统,实时调度对象:进程(内核级线程)主要功能:决定就绪队列中哪个进程获得处理机,并由分派程序将处理机分配给被选中的进程.1.3 中...

2020-04-22 09:15:44 1923

转载 JAVA线程类面试题

并行和并发有什么区别?–并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。–并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。–在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。线程和进程的区别?简而言之,进程是程序运行和...

2020-04-14 10:48:14 154

原创 哈希表和 Java 的前世今生(下),掌握HashMap看这一篇就够了!!!

在哈希表和 Java 的前世今生(上),掌握HashMap看这一篇就够了!!! 中,我们讲解了哈希表的原理以及JDK7 HashMap的源码及JDK7中HashMap的注意点。在哈希表和 Java 的前世今生(中),掌握HashMap看这一篇就够了!!!中,我们讲解了JDK8 HashMap的源码,以及其与JDK7 HashMap的区别。五、简单来看一下 HashtableHashMap ...

2020-04-08 22:04:05 275 1

原创 Java的GC机制,引用计数和可达性分析算法,finize()方法,四种回收算法,哪些对象可以作为GC ROOTS对象

JavaGC机制主要完成三件事情:一、哪些内存需要回收。二、什么时候回收。三、如何回收。引用计数法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就+1;当引用失效时,计数器的值就-1;任何时刻计数器的值为零的对象就是不可能再被使用。可达性分析算法通过一系列的“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程中所走的路径称为“引用链”,...

2020-03-16 16:23:24 426

原创 堆排序

堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:  同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个...

2020-03-16 16:12:42 124

原创 快速排序

原理快速排序,说白了就是给基准数据找其正确索引位置的过程.   如下图所示,假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23;然后分别从数组的两端扫描数组,设两个指示标志:low指向起始位置,high指向末尾.   首先从后半部分开始,如果扫描到的值大于基准数据就让high减1,如果发现有元素比该基准数据的值小(如上图中18<=tmp),就...

2020-03-16 15:10:07 149

原创 HTTP1和HTTP2的区别

1. Http1.x缺陷:线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞。2. Http1.0(短连接)缺陷:浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接(TCP连接的新建成本很高,因为需要客户端和服务器三次握手),服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求;解决方案:添加头信息——非标...

2020-03-04 13:28:12 7008

原创 缓存溢出

缓存溢出(Buffer overflow),是指在存在缓存溢出安全漏洞的计算机中,攻击者可以用超出常规长度的字符数来填满一个域,通常是内存区地址。在某些情况下,这些过量的字符能够作为“可执行”代码来运行。从而使得攻击者可以不受安全措施的约束来控制被攻击的计算机。1. 缓存溢出攻击方式1.1 破坏活动记录函数调用发生时,调用者会在栈中留下函数的活动记录,包含当前被调函数的参数、返回地址、前栈指...

2020-02-22 13:11:28 1369

原创 Java的四种引用方式

强引用:是最传统的“引用”的定义,是指在程序代码中普遍存在的引用赋值,即类似“Object obj=new Object()”这种引用关系。无论任何情况下,只要强引用关系还存在,垃圾收集器就永远不会回收掉被引用的对象。(只要强引用关系存在,收集器就不会回收)软引用:是描述一些还有用,但非必须的对象。只被软引用关联着的对象,在系统将要发生内存溢出异常前,会把这些对象列进回收范围之中进行第二次回收...

2020-02-22 10:29:40 245

原创 MySQL索引详解及优化策略

1. 索引介绍索引是存储引擎用于快速查找记录的一种数据结构。索引优化是对查询性能优化最有效的手段。索引可以包含一个或多个列的值。如果索引包含多个列,那么列的顺序也十分重要,因为MySQL只能高效地使用索引的最左前缀列。1.1 索引优点索引可以让服务器快速定位到表的指定位置:最常见的B-Tree索引,按照顺序存储数据,所以MySQL可以用来做ORDER BY 和 GROUP BY操作.总结...

2020-02-19 21:39:58 595

原创 操作系统线程和进程的同步机制和通信机制

现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的。由这4种方法组合优化就有了.Net和Java下灵活多变的,编程简便的线程进程控制手段:临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)1. 线程间的同步通信机制1.1 临界区通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任...

2020-02-14 10:51:56 941

原创 HTTP协议

1. 概念在前面的文章,我们知道TCP/IP四层模型中,下三层是主要负责数据的传输处理,但是没有涉及到解析,关于解析主要由应用层来处理。HTTP协议是应用层协议,是一个属于应用层的面向对象的协议,由于其间接,快速的方式,适用于分布式超媒体信息系统.1.1 HTTP协议的主要特点支持客户、服务器模式。简单快速。客户面向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有:GET,...

2020-02-12 11:12:43 301

原创 https 和 http 的区别

在网络的学习中,我们频繁的接触到HTTP这个协议。从概念上来说,超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。我们知道,HTTP就是浏览器和服务器进行交互数据时,双方都要遵守的数据格式规范。举个例子:两个人写信,需要都遵守一些规则才能互相看懂对方的意思——开头是对方称呼,结尾是自己的...

2020-02-12 10:43:56 167

原创 DNS(域名解析协议)详解

在前面的几篇文章中都提到了DNS这个概念:ICMP协议详解从输入URL到页面展示过程以上几篇文章是笔者对计算机网络相关知识的简要概括,有兴趣的读者可以看看.1. DNS协议...

2020-02-07 13:53:26 649

原创 ARP协议

1. 概念我们知道,以太网设备比如网卡都有自己唯一的MAC地址,它们是以MAC地址传输以太网数据包的,但是它们却识别不了IP包中的IP地址,所以我们在以太网中进行IP通信的时候就需要一个协议来建立IP地址与MAC地址的对应关系,以使数据包能发到一个确定的地方去,这就是ARP(地址解析协议)ARP协议建立了主机 IP地址 和 MAC地址 的映射关系。在网络通讯时,源主机的应用程序知道目的主机的...

2020-02-07 13:24:10 678

原创 IP协议详解

1. IP协议1.1 概念IP协议是TCP/IP协议簇中的核心协议,也是TCP/IP的载体。所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠的,无连接的数据传送服务。不可靠指它不能保证IP数据报能成功到达目的地。IP仅提供最好的传输服务。当发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息给信...

2020-02-07 11:48:23 2431

原创 ICMP协议详解

ICMP协议是一个网络层协议。 一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。所以我们就需要一种协议来完成这样的功能–ICMP协议。1. ICMP协议的功能ICMP协议的功能主要有:确认IP包是否成功到达目标地址通知在发送过程中IP包被丢弃的原因如下图所示:我们需...

2020-02-06 20:27:08 1062

原创 Redis的List的使用场景

list类型是简单的字符串列表,按照插入顺序排序。每个列表最多可以存储 2^32 - 1 个元素(40多亿).list类型主要有以下应用场景:消息队列:list类型的lpop和rpush(或者反过来,lpush和rpop)能实现队列的功能,故而可以用Redis的list类型实现简单的点对点的消息队列排行榜: list类型的lrange命令可以分页查看队列中的数据. 但是只有定时计算的排行榜...

2020-02-05 11:56:18 3364

原创 如何设置请求的编码以及响应内容的类型

设置请求的编码:request.setCharacterEncoding(String)例如:request.setCharacterEncoding(“utf-8”)设置响应内容的类型:response.setContentType(String) or response.setHeader(String, String)例如:response.setContentType(“text...

2020-02-05 11:44:32 2392

原创 volatile简介

Volatile是java提供的轻量级同步机制,比sychronized开销要小. 如果要使用 volatile 了,那肯定是在多线程并发的环境下(原子性、可见性、有序性).被volatile定义的变量,系统每次使用到它的时候都是直接从主存中读取,而不是各个线程的工作内存.volatile适用于多个变量之间或者某个变量当前值和修改之后值之间没有约束。因此,单独使用volatile还不足以实现计数...

2020-02-05 11:29:07 149

原创 数据库锁的机制

锁机制: 有些业务逻辑在执行过程中要求对数据进行排他性的访问,于是需要通过一些机制保证在此过程中数据被锁住不会被外界修改.悲观锁:悲观的认为在数据的处理过程中极有可能存在修改数据的并发事务,于是将处理数据设置为锁定状态.悲观锁必须依赖数据库本身的锁机制才能真正保证数据访问的排他性.乐观锁:对并发事务持乐观态度,通过更加宽松的锁机制来解决由于悲观锁对数据库系统造成的严重影响.(最常见的乐观锁是通...

2020-02-05 11:19:44 171

原创 数据库常见的优化方法及方案

1. 优化方向SQL以及索引的优化。首先根据需求写出良好的SQL,然后根据SQL在表中建立有效的索引。但是索引不能过多,否则会影响查询效率。合理的数据库设计。根据数据库三范式来进行表的结果设计,设计时应该考虑如何更有效的进行查询.系统配置的优化。例如:mysql数据库的my.cnf文件.补充1.1 字段类型选择少使用INT,多使用TINYINT,SMALLINT,如果非负加上UN...

2020-02-05 10:46:44 709

原创 JDBC的反射,以及作用

通过反射com.mysql.jdbc.Driver类,实例化该类时,会调用该类的静态代码块,该代码块会去DriverManager类中注册自己,DriverManager管理所有已注册的驱动类,当调用DriverManager.getConnection()方法时会遍历所有驱动类,并尝试连接数据库,只要有一个连接成功,就返回Connection对象,否则报异常....

2020-02-05 10:15:19 731

原创 索引的最左前缀原理

通常我们在建立联合索引的时候,也就是对多个字段建立索引,相信建立过索引的同学们会发现,无论是oralce还是mysql都会让我们选择索引的顺序,比如我们想在a,b,c三个字段上建立一个联合索引,我们可以选择自己想要的优先级,a、b、c,或者是b、a、c 或者是c、a、b等顺序。为什么数据库会让我们选择字段的顺序呢?不都是三个字段的联合索引么?这里就引出了数据库索引的最左前缀原理。比如:索引ind...

2020-01-18 11:03:28 606

原创 MySQL索引底层的数据结构与算法

既然我们要探讨索引,那么我们就应该弄清楚索引是什么1. 索引是什么?MySQL官方给索引的定义为:索引是帮助MySQL高效获取数据的排好序的数据结构(索引是数据结构)1.1 索引的本质我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为...

2020-01-18 10:08:12 292

原创 TCP详解之三次握手、四次挥手

在互联网很多岗位的面试中TCP的三次握手、四次挥手都是不可绕过的话题,有很高的热点度.今天我就带大家来看看什么是三次握手、四次挥手.在讲之前,我们先来了解下TCP协议是什么1. TCP协议TCP协议全称: 传输控制协议, 顾名思义, 就是要对数据的传输进行一定的控制.我们来分析分析每部分的含义和作用源端口号/目的端口号: 表示数据从哪个进程来, 到哪个进程去.32位序号:...

2020-01-11 10:23:44 901

原创 设计模式--代理模式

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。1 介绍意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,...

2019-12-30 12:01:36 256 1

原创 你必须知道的计算机网络的基础认识!

1 背景知识1.1 什么是计算机网络计算机网络,是指地理位置不同,具有独立功能的计算机及周边设备,通过在网络操作系统中连接的通信线路,管理和协调网络管理软件和网络通信协议,实现计算机系统的资源共享和信息传输的计算机系统。计算机网络的基本功能是数据通信和资源共享。资源共享包括硬件、软件和数据资源的共享。1.2 网络的分类按照覆盖的地理范围来分:广域网:广域网是一种公共数据网络,其可...

2019-12-29 16:10:49 838

原创 线程的实现

在引入线程的操作系统中,进程是资源分配的基本单位,线程是独立调度的基本单位。在同一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程中的线程时,会引起进程切换。线程分为两种:名称描述用户级线程(User-Level Thread, ULT)由应用程序所支持的线程实现, 对内核不可见内核级线程(Kernel-Level ...

2019-12-25 19:56:23 213

原创 线程私有变量

线程对象也是从一个(线程)类而构建的,线程类作为一个类也可以拥有自己的私有成员。这个成员为此线程对象私有,有时候使用线程私有变量,会巧妙避免一些并发安全的问题,提高程序的灵活性和编码的复杂度。下面举例来说吧,统计一个线程类创建过多少个线程,并为每个线程进行编号。/** * 为线程添加编号,并确所创建过线程的数目 * * @author SWPU 2019-12-24 16:38:31 ...

2019-12-24 16:40:55 563

原创 设计模式--建造者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。...

2019-12-16 23:02:51 132

空空如也

空空如也

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

TA关注的人

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