自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在Linux上安装Redis

什么是redis?Redis是一种基于键值对(key-value)的NoSQL数据库,主要的数据类型包括String(字符串),hash(哈希),list(列表),set(集合),zset(有序集合),bitmaps(位图),GEO(地理信息定位)等。注意:如果面试问Redis数据类型,前五个是基础,必须答对,后面两个是亮点。...

2021-07-08 15:14:32 389

原创 中南财经政法大学电子信息837软件综合设计

专业课C语言3道题,占50分,数据结构5道题,占100分,一共八个大题,没有选择题。在程序设计题目上(前三题),数组、字符串、双重循环比较重要,官网推荐书目为谭浩强的C语言。建议把谭浩强的C语言课后习题都刷一遍(太难的,太长的可以跳过),基本的C语言程序一定要会写。后期可以多练练程序设计题,推荐在牛客网、CSDN上找些题目来练习。在数据结构题目上(后五题),链表、树、图的基本操作要掌握,常见的查找算法、排序算法基本每年必考,书籍推荐天勤或王道数据结构。数据结构不会考很难,链表之后的算法程序要掌握,天

2021-04-13 15:07:08 5410 9

原创 Docker可视化之Portainer

什么是portainer?Docker图像化界面管理工具!提供一个后台面板供我们操作docker run -d -p 8088:9000 \--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer通过8088端口,访问portainer设置密码进入,然后选择本地...

2021-01-31 11:45:40 555

原创 阿里云服务器上部署安装JDK、Tomcat、MySQL(Linux)

一、下载并安装JDK1、下载JDK(或直接用yum或wegt命令安装)在官网下载jdk,地址为https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载成功,然后在Xshell中找到Xftp,在Xftp中进行文件的传输。2、安装JDKtar -zxvf jdk-8u271-linux-x64.tar.gz //解压vim /etc/profile ...

2021-01-04 14:49:55 1102

原创 八、Spring框架

Spring 是一个开源框架,为简化企业级应用开发而生。Spring 可以是使简单的 JavaBean 实现以前只有 EJB 才能实现的功能。Spring 容器的主要核心是:IOC和DIIOC是控制反转,是把传统上由程序代码直接操控的对象的调用权交给容器,由容器来实现对对象组件的装配和管理。DI是依赖注入,是对IOC更准确的描述,即由容器动态的将某种依赖关系注入到组件中。AOPAOP是面向切面编程,是面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等。

2020-05-19 18:07:35 339

原创 如何解决高并发秒杀的超卖问题

众所周知,秒杀最大的一个问题就是解决超卖的问题。 第一种解决超卖如下方式如下 update goods set num = num - 1 WHERE id = 1001 and num > 0我们假设现在商品只剩下一件了,此时数据库中num = 1;但有100个线程同时读取到了这个num = 1,所以100个线程都开始减库存了。但你会最终会发觉,其实只有一个线程减库存成功,其他99个线程全部失败。为何?这就是MySQL中的排他锁起了作用。排他锁又称为写锁...

2020-05-18 23:02:30 2769 1

原创 七、操作系统

进程的通信方式?效率最高的通信方式是什么?管道:管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的道端读出数据。信号量:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一 种锁机制,防止某进程正在访问共享资源时,其它进程也访问该资源。因此,主要作为 进程间以及同一进程内不同线程之间的同步手段。消息队列:是一个在系统内核中用来保存消息的队列,它在系统内核中是以消息链表的形式出现的

2020-05-17 22:49:53 178

原创 五、计算机网络

目录OSI七层协议TCP的三次握手和四次挥手TCP和UDP的区别TCP 第三次握手失败的情况 TCP 是如何处理的?为什么连接的时候是三次握手,关闭的时候却是四次握手?TCP 是如何保证可靠传输数据的?HTTPget和post请求的区别?从一个 URL 到获取页面的过程HTTP1.0和HTTP1.1HTTP状态码HTTPSHTTP和HTTPS的区别Cookie和Session的区别session 和 cookie 的关系?禁用 cookie 后对

2020-05-17 14:04:16 246

原创 四、多线程和锁

进程和线程线程和进程的区别?进程是资源分配的最小单位,线程是 CPU 调度的最小单位。 进程有自己的独立地址空间,线程没有 进程和线程通信方式不同 (线程之间的通信比较方便。同一进程下的线程共享数据,比如全局变量,静态变量,通过这些数据来通信不仅快捷而且方便,当然如何处理好这些访问的同步与互斥正是编写多线程程序的难点。而进程之间的通信只能通过进程通信的方式进行。) 进程上下文切换开销大,线程开销小;对进程进程操作一般开销都比较大,对线程开销就小了 一个进程挂掉了不会影响其他进程,而线程挂掉了

2020-05-17 10:15:25 502

原创 三、容器类和集合框架面试题

目录HashMap什么是HashMap?HashMap的数据结构HashMap的扩容机制HashMap的工作原理HashMap的线程安全问题为什么要使用ConcurrentHashMap?ConcurrentHashMap的结构?HashMap 为什么引入红黑树?JDK1.8 的 HashMap 有哪些优化?HashMap什么是HashMap?HashMap是一个散列表,它存储的内容是键值对(key-value)映射。它的key、value都可以为空,此外

2020-05-16 21:40:09 230

原创 二、JVM面试题

Java内存模型Java虚拟机中共有五大内存区域程序计数器,Java虚拟机栈,本地方法栈,java堆,方法区程序计数器:是一块很小的内存空间,用于存储当前线程执行字节码文件的行号指示器。虚拟机栈:是描述Java方法执行过程的内存模型,每个方法被执行时都会创建一个栈桢,栈桢中存储了局部变量表,操作数栈,动态链接,方法出口等。本地方法栈:和虚拟机栈作用类似,区别是虚拟机栈为Java方法服务,本地方法栈为Native方法服务。Java堆:JVM运行过程中创建的对象和生成的数据都存储在堆

2020-05-16 18:05:24 204

原创 一、Java基础面试题

目录1. == 和 equals 的区别?2. 拆箱和装箱分别是什么?分别应用在什么场景?3.Java基础类型与封装类型的区别4. Stringstr="abc" 与 Stringstr=newString(“abc”) 一样吗?为什么?5.Java面向对象的特征6.java中重载与重写的区别7. throw 和 throws 的区别?8.编译时异常与运行时异常的区别9.深拷贝和浅拷贝区别是什么?10.值传递和引用传递的区别是什么?11.什么是 java 序列化?

2020-05-16 14:18:22 436

原创 六、数据库

➢数据库事务的四大特性原子性:要么都做,要么都不做。一致性:转账为例。用户A和B两者的钱总共是2000,那么他们两个之间无论怎么转账,最后总金额都是2000。隔离性:多个事务并发执行时,互不影响持久性:事务一旦提交对数据库的修改永久保存➢事务隔离级别以及各级别下的并发访问问题事务并发访问引起的问题及如何避免:1、更新丢失:事务A在对数据进行更新操作,事务B也在对同一数据更新操作并完成了提交,然后事务A遇到异常进行回滚导致事务B的更新丢失。解决办法: MySQL所有事务隔离级..

2020-05-13 11:16:04 310

原创 SpringMVC的流程

具体处理过程如下:1、用户发送请求到DispatcherServlet类进行处理。 2、DispatcherServlett收到请求后,调用HandlerMapping处理器映射器,请求获取Handler。 3、HandlerMapping类根据request请求的URL等信息查找能够进行处理的Handler,以及相关拦截器interceptor并构造HandlerExecutionChain。 4、HandlerMapping类将构造的HandlerExecutionChain类的对象返回给..

2020-05-13 09:59:40 100

原创 http协议和rpc协议比较

总结:RPC主要用于公司内部服务调用,传输效率高(TCP,报文小),性能消耗低(高效的二进制传输、字节小、序列化耗时少),服务治理方便。1、传输协议:  RPC:可以基于HTTP协议,也可以基于TCP协议  HTTP:基于HTTP协议2、传输效率:  RPC:使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减小报文体积,提高传输效率  HTTP:如果是基于http1.1的协议,请求中会包含很多无用的内容,如果是基于HTTP2.0,那么简单的封装下可

2020-05-13 00:23:46 540 1

原创 mysql中int(5)和int(10)的区别是什么?

实际没啥区别。。这个5和10并不是最大5位,最大10位的意思。好比选择了int(5),并且当你选择了0填充的话。你的数据假设存了123,那么你的显示会是00123,(有些操作mysql的工具看不出来)。执行查询后这个效果。当id=2 or 3时候,以0位占位。当id=4的时候,显然他也是可以存放超过5位的。...

2020-05-13 00:21:36 1151

原创 索引失效的情况

1、条件中用or,即使其中有条件带索引,也不会使用索引查询注意:要想使用or,又想索引生效,只能将or条件中的每个列都加上索引2、对于多列索引,不是使用的第一部分,则不会使用索引3、like查询是以%开头4、如果列类型是字符串,那一定要在条件中将数据使用引导引用起来,否则不使用索引5、如果mysql估计使用全表扫描要比使用索引快,则不使用索引...

2020-05-12 23:56:36 1340

原创 MySQL中NULL和空字符串的区别

相信很多用了MySQL很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问:字段类型是NOT NULL,为什么可以插入空值? NOT NULL的效率比NULL高? 判断字段不为空的时,到底要select * from table where column <>还是要用select * from table wherecolumn is not null呢?带着上面几个疑问,我们来深入研究一下NULL 和NOT NULL到底有什么不一样。首先,我们要搞清楚“空字...

2020-05-12 23:44:00 516 1

原创 BIO、NIO、AIO

IO多路复用: 调用系统级别的select\poll\epoll

2020-05-09 23:40:00 107

原创 volatile、synchronized、ReentrantLock

synchronized对象锁1、同步代码块synchronized(this |Object)2、同步非静态方法synchronized method类锁1、同步代码块synchronizd(class)2、同步静态方法synchronized static methodsynchronized和ReentrantLock的区别总结synchronized是关键字,ReentrantLock是类ReentrantLock可以对获取锁的等待时间进行设置,避免死锁Re.

2020-05-09 15:35:06 317

原创 线程和进程相关

线程和进程有什么区别?线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。(别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。)...

2020-05-08 16:39:11 213

原创 GC相关

判定对象是否为垃圾的算法➢引用计数算法判断对象的引用数量:通过判断对象的引用数量,来决定对象是否可以被回收每个对象实例都有一个引用计数器,被引用则+1 ,完成引用则-1如果一个对象引用计数为0,则表示此刻该对象没有被引用,可以被当作垃圾收集优点:执行效率高,程序执行受到的影响较小缺点:无法检测出循环引用的情况(如父对象有个对子对象的引用,子对象又反过来引用父对象,那么他们的引用...

2020-05-07 21:17:30 151

原创 Java内存模型

首先Java虚拟机中共有五大内存区域:程序计数器,Java虚拟机栈,本地方法栈,java堆,方法区

2020-05-07 09:27:09 107

原创 谈谈ClassLoader

类从编译到执行的过程编译器将Robot.java源文件编译为Robot.class字节码文件ClassLoader将字节码转化为jvm中的Class<Robot>对象jvm利用Class<Robot>对象实例化为Robot对象ClassLoader的种类➢BootStrapClassLoader : C+ +编写,加载核心库java.*➢ExtC...

2020-05-06 23:12:36 113

原创 谈谈你对Java的理解

谈谈你对Java的理解平台无关性:一次编译到处运行垃圾回收:不用手动释放内存语言特性:泛型、反射、lamda表达式面向对象:封装、继承、多态类库:本身自带的集合和并发库异常处理平台无关性如何实现?Java源码首先被编译成字节码,再由不同平台的JVM进行解析,Java 语言在不同的平台上运行时不需要进行重新编译,Java虚拟机在执行字节码的时候,把字节码转换...

2020-05-06 14:06:07 1988 1

原创 Redis持久化

Redis持久化一、RDB(快照):保存某个时间点的全量数据快照save:阻塞redis的服务器进程,直到RDB文件被创建完成( 基本不用)bgsave:Fork出一个 子进程来创建RDB文件,不阻塞服务器进程。自动化触发rdb持久化1.根据redis. conf配置里的save m n定时触发(bgsave)2.主从复制时,主节点自动触发3.执行debug reload...

2020-05-05 11:12:54 275

原创 如何通过Redis实现异步队列

用Redis实现异步队列:用list作为队列RPUSH作为生产者生产消息,LPOP作为消费者消费消息缺点:没有等待队列里有值就直接消费弥补:可以通过在应用层引入sleep机制去调用LPOP重试;如果不用sleep机制,可以使用BLPOP key[key..] timeout 阻塞直到队列有消息或者超时缺点:一个生产者对应一个消费者如何做到生产一次,能让多个消...

2020-05-05 09:08:58 632

原创 如何通过Redis实现分布式锁

分布式锁需要解决的问题➢互斥性(任意时刻,只能有一个客户端获取锁)➢安全性(锁只能由持有该锁的客户端删除)➢死锁(获取锁的客户端因为某些原因宕机而未能释放锁,其他客户端就无法获取锁)➢容错(当一些redis结点宕机的时候,客户端仍然能获取锁或释放锁)如何通过Redis实现分布式锁SETNX key value :如果key不存在,则创建并赋值➢时间复杂度: 0(1)➢返回...

2020-05-05 00:12:32 151

原创 Redis简介

缓存中间件一Memcache和Redis的区别Memcache :代码层次类似Hash➢支持简单数据类型➢不支持数据持久化存储(一旦服务器宕机,数据是无法保存下来的)➢不支持主从➢不支持分片(将大数据分布到多个节点的分区方案)Redis➢数据类型丰富➢支持数据磁盘持久化存储➢支持主从➢支持分片为什么Redis能这么快10W+QPS ( QPS即query p...

2020-05-04 17:35:00 94

原创 锁模块

目录常见问题➢MyISAM与InnoDB关于锁方面的区别是什么➢数据库事务的四大特性➢事务隔离级别以及各级别下的并发访问问题 ​➢InnoDB可重复读隔离级别下如何避免幻读➢RC、 RR级别下的InnoDB的非阻塞读如何实现常见问题➢MyISAM与InnoDB关于锁方面的区别是什么MyISAM默认用的是表级锁,不支持行级锁。InnoDB默认用的...

2020-05-03 22:17:12 312

原创 数据库架构

如何设计一个关系型数据库?划分为两大部分:第一部分为存储部分,相当于文件系统,将数据持久化到存储设备中第二部分为程序实例,对存储进行逻辑上的管理程序实例分为8个模块:1.存储管理:将数据的逻辑关系转化为物理存储关系。2.缓存机制:优化执行效率。3. SQL解析:解析SQL语句。...

2020-05-02 23:29:41 347

原创 索引模块

如何设计一个关系型数据库?划分为两大部分:第一部分为存储部分,相当于文件系统,将数据持久化到存储设备中第二部分为程序实例,对存储进行逻辑上的管理程序实例分为8个模块:1.存储管理:将数据的逻辑关系转化为物理存储关系。2.缓存机制:优化执行效率。3. SQL解析:解析SQL语句。4.日志管理:记录操作。5.权限划分:进行多用户管理。6.容灾机制:灾难恢复。...

2020-05-02 23:23:48 379

原创 socket相关

Socket简介两个进程能进行通信,最基本的要求是能够唯一的标识一个进程。在本地进程通信中,可以使用pid来唯一标识一个进程,但是pid只在本地唯一,网络中两个进程pid冲突还是有的。IP层的ip地址:唯一标识一台主机。TCP协议+ 端口号:唯一标识主机的一个进程IP地址和端口号组成所谓的socket可以利用ip地址+协议+端口号来唯一标识网络中的一个进程。...

2020-05-02 15:35:10 154

原创 HTTP和HTTPS相关

HTTP简介超文本传输协议http的主要特点支持客户、服务器模式 简单快速 灵活 无连接

2020-05-02 10:45:06 326

原创 TCP的滑动窗口

TCP使用滑动窗口做流量控制与乱序重排保证TCP的可靠性 保证TCP的流控特性

2020-05-02 00:00:38 107

原创 TCP和UDP的区别

1、(面向连接vs无连接)TCP是面向连接的通讯协议(三次握手;四次挥手),UDP是面向无连接的通讯协议。2、(可靠性)TCP有交付保证,如果消息在传输中丢失,那么它将重发;udp没有交付保证,一个数据包在运输过程中可能丢失。3、(有序性)TCP利用序列号保证消息的顺序交互,UDP不保证有序性4、(速度)tcp速度慢,适合传输大量数据;udp速度快,适合传输少量数据。5、(重量级v...

2020-05-01 23:49:06 133

原创 TCP的三次握手和四次挥手

TCP FlagsACK确认序号标志SYN同步序号,用于建立连接FIN finish标志,用于释放链接 TCP3次握手:TCP4次握手:为了终止连接。(1)客户端发送一个FIN,用来关闭客户端到服务器的数据传送FIN_WAIT_1状态。(2)服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。serv...

2020-05-01 10:11:55 140

原创 网络基础知识详解

OSI七层协议:1.物理层:传输比特流(0101, 单位比特。数模转换和模数转换),定义物理设备标准。2.数据链路层:定义了如何格式化数据以进行传输,和控制对物理介质的访问。该层将比特数据组成为帧。( 交换机)3.网络层:将网络地址翻译成对应的物理地址,决定如何将数据从发送方路由到接受方(路由器;单位是数据包。有IP协议)4.传输层:解决主机间的数据传输。(传输协议, 流量控制,接...

2020-04-30 22:55:32 1355

原创 度小满笔试

2020.04.20 度小满后端笔试第一题/** * 1、题目描述: * 在机器学习中有一种流行的池化操作,而在池化操作中,3*3极大值池化应用十分广泛。什么是3*3极大值池化呢?设原矩阵是n*m的, 则3*3极大值池化就是枚举矩阵中的所有3*3的子矩阵,分别求最大值并顺次拼接而成,处理过后的矩阵是(n-2)*(m-2)。 * * 例如,原矩阵是[[1,2,3,4],[5,6,7,...

2020-04-21 23:24:00 981

原创 兴业数金笔试

4.16日参加兴业数金的笔试40道单选题,10道多选,2个问答题,1个编程题.整体还不错,编程题只A了57%?晚上复盘一下问答题1、多线程同步和互斥有几种实现方法,都是什么? 线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另外一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。 线程互斥是指对于共享的进程...

2020-04-17 00:14:54 23675 7

空空如也

空空如也

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

TA关注的人

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