自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (一)搭建springboot+vue前后端分离项目--前端vue搭建

vue 是一款用于构建用户界面的 JavaScript。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript。...

2022-08-30 09:11:21 837

原创 elements设置中文

注意:项目中 Element-Plus 无论用不用 CDN 都需要安装。安装好 Element-Plus 下面的配置才会在开发环境生效。如果使用CDN打包,项目中需要单独引入element-plus的中文js文件。在 main.js 文件中,如下配置。...

2022-08-30 09:10:30 680

原创 vue启动时自动跳转到127.0.0.1,自动打开 http://0.0.0.0:8080/

最近在做一个vue项目,vue-cli启动的node服务,试用localhost或者127.0.0.1可以正常访问,但是如果想用本机ip访问的话,需要修改一个设置,

2022-08-30 08:58:59 1240

原创 链表总结-虚拟结点

链表按类型可分为:单链表,双链表和循环链表;单链表中的指针域只能指向节点的下一个节点。双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。循环链表:链表和数组显著的区别是数组的存储方式。数组是在内存中是连续分布的,但是链表在内存中可不是连续分布的。链表是通过指针域的指针链接在内存中各个节点。所以链表中的节点在内存中不是连续分布的 ,而是散乱分布在内存中的某地址上,分配机制取决于操作系统的内存管理。对于链表的设计,可以参考:707设计链表虚拟结点法是链表中常用的一种解

2022-07-07 15:16:55 1154

原创 (一)JVM的简单了解--java的平台无关性

在了解JVM之前,我们要思考一个小问题,面试过程中,我们会遇到面试官 广度不难发现,我们谈对java的理解可以参照面向对象思想面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式,java的每一个特性都可以看成是java中的一个对象,不同的对象中有不同的方法和数据,而对于平台无关性这一特性,JVM则可以看作是其中的主方法如果把java看成是一个工厂,java的平台无关性则是一个小的车间,那么JVM即可看成一个机器,那么这个

2022-06-30 17:08:02 716

原创 (一)java实现二叉树并实现遍历

树的相关知识可参考:二叉树抽象数据类型(二)二叉树的遍历:1.递归遍历只需要调整输出位置即可;2.非递归遍历非递归遍历需要借助栈,以中序遍历为例;将左边的子树全部取出压入栈中...

2022-06-19 19:22:01 817

原创 (七)Redis分布式锁的实现

(一)分布式锁概念:在Java中synchronized关键字和ReentrantLock可重入锁在我们的代码中是经常见的,一般我们用其在多线程环境中控制对资源的并发访问,但是随着分布式的快速发展,本地的加锁往往不能满足我们的需要,需要做集群,一个应用需要部署到几台机器上然后做负载均衡分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性分布式锁的特征:互斥性:互斥是所得基

2022-05-02 16:47:27 860

原创 (六)redis数据类型

(一)redis支持五种数据类型redis当中一共支持五种数据类型,分别是:string字符串list列表set集合hash表zset有序集合首先连接redis,发送ping,回送pong,即为连接成功;(二)String操作:最基本的数据类型,二进制安全;SET key value 设置指定 key 的值;如图 set name “redis”,即为设置键为redis,值为redis的数据;GET key 获取指定 key 的值如下,get n

2022-04-28 16:49:33 143

原创 (五)centos7安装redis并配制环境

安装redis进入root用户:su输入密码后进入root用户,便于后序操作;安装gcc环境:yum install -y gcc下载并解压安装包:wget http://download.redis.io/releases/redis-5.0.3.tar.gztar -zxvf redis-5.0.3.tar.gz切换到redis解压目录下,执行编译cd redis-5.0.3make安装并指定安装目录:make install PREFIX=/usr/local/

2022-04-28 14:35:16 167

原创 (四)Redis简介

(一)Redis概念:为什么由Redis:提高应用的相应速度,减少后端的压力主流的应用架构:缓存中间件:Memcache和RedisMemchache:代码层次类似于Hash,其支持简单数据类型,不支持数据持久化存储,不支持主从,不支持分片Redis:数据类型丰富,支持数据磁盘持久化和存储,支持主从,支持分片;redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库Redis可以10w+QPS(QPS即query per secon

2022-04-28 12:31:02 262

原创 (一)Java实现五子棋(联机版)游戏

(一)设计思路:游戏效果如下图所示:游戏描述:游戏采用Java设计,采用了面向对象思想,采用哈希表Hashtable建立客户端和服务器端的通信,l多线程并发处理任务;随时对游玩法描述:玩家首先连接客户端,游戏框架如下:总共有四个大的类:服务端,客户端,用户类,以及游戏主题类...

2022-04-25 20:54:44 5916 5

原创 Hashtable和HashMap的区别

(一)Hashtable和HashMap简介Hashtable和HashMap的底层都是数组+链表实现:Hashtable:(1)Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射。(2)Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。(3)HashTable直接使用对象的hashCode。public class Hashtable<K,V> extends Dictionary<

2022-04-25 11:26:12 558

原创 JAVA多线程并发中线程池简介和简单实现

(一)(二)利用Exectors创建不同场景下的线程池:newScheduledThreadPool 创建“可调度线程池”newSingleThreadExecutor 创建“单线程化线程池”newFixedThreadPool 创建“固定数量的线程池”newCachedThreadPool 创建“可缓存线程池”...

2022-04-23 11:36:44 953

原创 JAVA实现闯关小游戏(一)

(一)游戏设计思路:如图为游戏效果演示: JAVA自制小游戏从入门到入土 这个游戏是用java语言实现,采用了swing技术进行了界面化处理,利用了BufferedImage缓冲区减少闪烁,设计思路用了面向对象思想。此游戏为闯关游戏,类似于超级玛丽,但更加自由一些;画面采用后现代主义抽象风格,音乐采用的星露谷物语里的专辑,有竖琴演奏;游戏框架:1.继承JFrame创建窗口:

2022-04-21 11:17:31 4693 2

原创 (三)数据库系统-锁模块

(一)MyISAM与InnoDB的区别:MyISAM是MySQL的默认数据库引擎,由早期的ISAM所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)InnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一。InnoDB由Innobase Oy公司所开发,与传统的ISAM与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能;主要区别:1.锁方面:MyISA

2022-04-18 21:58:06 407

原创 (二)数据库索引优化

有关树的的基本知识可参考:二叉树抽象数据类型及遍历实现(一)索引的数据结构使用索引的原因:避免全表扫描,提高检索效率可以作为索引:主键,唯一键1.普通查找:二叉搜索树:有左子树和右子树优点:利用二叉查找;时间复杂度为O(log n)缺点:数据库要进行插入和删除,当对其操作后其高度可能会发生变化,时间复杂度增加,I/O访问时间增加,性能下降;具体代码实现可参考:二叉搜索树,平衡二叉树二叉树主要用于组织内存中规模较小的目录,在检索过程中平均要对外存使用log2 n次访问对于较大的

2022-04-17 16:22:04 1229

原创 二叉树的应用---4.B+树

(一)B+树及其查找:B+数可以保持数据的稳定有序,其插入和修改具有较稳定的时间复杂度,在B+树中,对数据的引用指向叶子结点,内部结点的关键字只是充当划分子树的分界值:其定义和B-树相同:树中每个结点最多有m个子树根结点最少有两个子树除了根结点以外的非叶子结点最少有m/2个子树所有叶子结点都出现在同一层其中有n+1个子树的非叶子结点的信息如下图:通常B+树上有两个指针,一个指向根结点,另一个指向关键字最小的叶子结点,如图所示:B+树查找的过程和b-树相似,但查找时,无论非叶子

2022-04-16 15:42:27 544

原创 二叉树的应用---3.B-树

(一)B-树的定义:在大规模数据查找中,大量的数据储存在外存磁盘,查找是要从磁盘读取数据,磁盘I/O读写的基本操作单位是块(block)。磁盘上的数据有一个三维地址唯一标识:柱面号,盘面号,块号磁盘的读写要一下三个步骤(1).根据柱面号使磁头移动到所要的柱面上,称为定位(2).根据盘面号来确定盘面上的磁道(3)盘面确定后盘片开始旋转,将指定块号的磁道端记下;数据的查找由三个时间端组成:(1)查找时间(2)等待时间(3)传输时间;I/O时间主要花在查找时间上,当使用二叉树查找时,若要找值为8的

2022-04-16 11:38:34 429

原创 二叉树的应用---2.平衡二叉树

(一)平衡二叉树的概念:由于二叉搜索树的时间复杂度最好为O(logn),最差为O(n),因此有了AVL树,即平衡二叉树,其时间复杂度为O(logn),其定义为:1.平衡因子:二叉树中某结点的右子树的高度和左子树的高度差为该结点的平衡因子2.平衡二叉树满足(1)树中任一结点的平衡因子的绝对值不超过1(2)任一结点的左子树和右子树均是平衡二叉树如图所示即为一个平衡二叉树:如图是一个非二叉树:由于二平衡二叉树是一种特殊的二叉搜索树,其查找操作与二叉搜索树类似,不再考虑;(二)平衡二叉树的插入

2022-04-15 17:39:45 2455

原创 二叉树的应用---1.二叉搜索树

(一)二叉搜索树的定义:该树的每一个结点都有一个作为搜索依据的关键码,对于任意结点而言,其左子树上的结点的关键码均小于右子树的关键码,如图所示(二)二叉搜索树的查找:常用的算法是分割查找法:思想:1.若根结点的关键码等于查找的键值2.若键值小于根结点的关键码的值,则继续在左子树中查找,若键值大于结点的关键码值,则继续在右子树中寻找template<class T>BinarySearchTreeNode<T>*BinarySearchTree<T>::se

2022-04-15 10:07:27 531

原创 二叉树抽象数据类型及遍历实现

(一)树的基本定义:树是n个结点组成的有限集合;1.n=0时,它是一个空树2.n>0时,所有结点中存在一个根结点,其余结点可分为m个互不相交的子集合,每个集合都是一个满足定义的树如图即为一棵树:树的基本术语:结点:树中的每一个元素都称为一个结点边:用<m,n>表示从m到n的某个连线代表m与n之间有某种关系,这种关系称为边双亲结点和孩子结点:其中m是n的双亲结点,n是m的孩子节点兄弟结点:两个结点有一个共同的双亲结点,两个结点为兄弟结点叶子结点:没有孩子结点的结点

2022-04-14 17:05:38 1768

原创 (一)数据库基本架构

(一)关系数据库:基本的思维导图:(二)数据库基本设计:首先需要存储模块,即文件系统:若频繁调用IO会降低读取速率,因此数据库中将块和页作为读取模式其次是数据实例,对储存进行实例化的管理:其中索引管理和锁管理是最重要的存储管理:数据的逻辑关系转换为物理的存储缓存机制:优化执行效率SQL解析:将SQL进行解析日志管理:对操作进行记录权限划分:进行多用户管理容灾机制:考虑异常情况索管理:优化查询速率锁管理:使得数据库支持并发操作索引模块:1.使用原因:若使用全表扫描,

2022-04-11 16:47:01 807

原创 (八)OSI网络模型及实现(TCP/IP)

(一)OSI七层协议模型:第一层 物理层:机械,电子,定时接口通信信道上的原始比特流传输第二层 数据链路层:物理寻址,同时将比特流转变为逻辑传输线路第三次 网络层 控制子网的运行,如逻辑编址,分组传输,路由选择,此层数据称为数据包:第四次 传输层 解决数据间的传输和质量问题,接收上一层的数据,在必要时把数据进行分割,并将这些数据交给网络层,保证这些数据能有效到达对端:第五层 会话层:在不同的机器之间的用户建立及管理会话:第六层 表示层: 信息的与方法和语义及它们的关联,如加密解密,转换

2022-04-11 14:33:36 1268

原创 (七)Socket简介及客户端服务端代码实现

(一)Socket概念:socket时TCP/IP协议的抽象,是操作系统对外开放的接口socket起源于unix,京客户端和服务端各自管理一个文件,是其能分别对文件进行读写操作socket的通信流程:(二)代码实现:编写TCP和UDP实现服务端与客户端的通信:TCP实现:import java.net.ServerSocket;import java.net.Socket; public class TCPServer{ public stati

2022-04-10 20:21:48 4113 1

原创 (六)HTTP与HTTPS

(一)HTTPS简介:SSL(security sockets layer):为网络通信提供安全及数据完整的性的一种安全协议是操作系统对外API,SSL3.0后更名为TLS采用身份验证和数据加密保证网络通信的安全和数据完整性一般的加密方式:1.对称加密:机密和解密使用同一种算法2.非对称加密:加密使用的密钥和解密使用的不一样3.哈希算法:将任意长度的信息转换为固定长度的值,不可逆4.数字签名:证明某个消息或文件时由某人发出的HTTPS数据传输流程:1.浏览器将支持的加密算法

2022-04-10 16:12:20 134

原创 (四)生产者消费者模式

(一)生产者消费者模式原理:在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。生产消费者模式如下图:(二)代码实现生产者是一堆线程,消费者是另一堆线程,内存缓冲区可以使用List数组队列,数据类型只需要定义一个简单的类就好。最关键就是内存缓冲区为空的时候消费者必须等待,而内存缓冲区满的时候,生产者必须等待。其他时候可以是个动态平衡: 首先设置Market类:其中变量有:Max(仓库最大值),List(用于存放数据)方法有

2022-04-08 15:19:31 9620 2

原创 (五)HTTP简介

(一)Http基本概念:HTTP:超文本传输协议:支持客户/服务器模式:工作于客户端服务端架构之上,浏览器作为客户端通过URL向浏览器服务端和WEB服务端发送请求,WEB服务端根据请求发送相应信息简单快速:只需要传输请求方法和路径灵活:允许传输任意类型的对象无连接:限制每次连接只处理一个请求无状态:对于事物处理无记忆能力HTTP的请求结构:分为三个部分:请求行,请求头部,请求正文:请求头部的空行是必须的对某个HTTP请求抓包:第一行为请求行,GET为请求方法,之后是URL,协议版

2022-04-08 09:29:35 1960

原创 (四)TCP的滑动窗口

(一)TCP滑动窗口的目的RTT:发出一个数据包到收到对应ACK所花的时间RTO:重传时间间隔Tcp要处理批量数据,则要知道实际的网络处理速度,才不会导致网络堵塞导致丢包,因此Tcp使用滑动窗口做流量控制与乱序重排,可动态调整大小1.保证Tcp的可靠性2.保证TCP的流控特性滑动窗口体现TCP面向字节流的机制(二)TCP滑动窗口数据的计算过程对于发送方:LastAck指向最大的ACK段,即已确认的最大序列LastByteSent指向已发送的最后一个字节的位置,该位置已发出,但

2022-04-07 18:48:59 1584

原创 (三)TCP和UDP的比较及代码实现

(一)UDP的特点:报文结构:source port 为源端口,Destination port 为目的端口Length为数据包长度,Checksum为奇偶校验值面向非连接数据报头文只有八个字节,额外开销比较小不维护连接状态,支持向多个客户端发送相同的消息吞吐量只受限于生成速率,传输速率,机器性能尽最大努力交付,不保证可靠性,不需要维持复杂的链接表面向报文,不对应用程序提交的信息进行分析(二)TCP和UDP的区别:面向连接和无连接:TCP为面向连接,UDP为一个点向多个点发

2022-04-05 14:23:24 1771

原创 (二)TCP 的四次挥手

(一)TCP的四次挥手挥手是为了终止来连接:第一次挥手:客户端发送FIN包给服务器端,关闭数据传送,客户端进入FIN_WAIT_1状态;第二次挥手:服务器端接受到FIN包后,发送ACK包给客户端,并且确认序号+1,之后进入CLOSE_WAIT状态;第三次挥手:服务器端发送FIN包给客户端,关闭Server到Client的数据传送,并进入LAST_ACK状态,第四次挥手:客户端发送ACK包给服务器端,进入TIME_WAIT状态,,服务器接收到后也进入CLOSE状态客户端主动关闭,服务器端被动关

2022-04-05 13:55:11 3471

原创 (一)计算机网络:TCP的三次握手

(一)传输控制协议TCP:面向连接的,可靠的,基于字节流的传输层通信协议将应用层的数据流分割为报文段并发送给目标节点的TCP层数据包都有序号,对方收到则发送ACK确认,未收到则重传使用校验和来检验数据传输过程是否有误IP协议:(二)TCP报文头:下图为TCP报文头的图解:**source port ,Destination port:**分别表示源端口目的端口,它们各占用两个字节,TCP和UDP均不包含IP,因为IP属于网络层,但它们均包含端口,因为其属于传输层。线程通信可

2022-04-04 12:05:41 1576

原创 (三)线程锁-Synchronized与ReentrantLock的区别

(一)ReentrantLock:位于java.util.concurrent.locks包和CountDownLatch,FutureTask,Semaphore一样基于AQS实现可以实现比Synchronized更细的控制,如控制公平性调用Lock()后,必须调用unlock()释放锁性能未必比Synchronized,也是可重入ReentrantLock公平性的设置格式:ReentrantLock fairLock=new ReentrantLock(true)参数为true时,

2022-03-29 15:09:30 330

原创 (二)线程锁-synchronized的底层原理与实现

(一)Synchronized在对象中的实现实现Synchronized的基础:java对象头,Monitor对象在内存中的布局:1:对象头,2:示例数据,3:对齐填充其中对象头的结构为:1:Mark word:默认存储对象的hashCode,分代年龄,锁类型,锁标志位等2:Class Metadata Address:类型指针对象的类元数据,虚拟机通过这个指针确定该对象是哪个类的数据。Monitor:每个java对象天生带了一把隐形锁Monitor中的三个队列:EntryLis

2022-03-29 14:14:18 376

原创 (一)线程安全问题-线程锁(synchronized的使用)

(一)线程安全问题诱因存在有共享数据存在有多个线程访问这些共享数据解决方法:同一时刻共享数据只能由一个线程访问,其他线程要等到该线程处理完共享数据后才能对该线程进行操作(二)线程锁-synchronized线程锁的两个特性互斥性:同一时间只能有一个对象持有线程锁,通过这种特性实现多线程的协调机制。同一时间只有一个线程对需要同步的代码块进行访问,也成为原子性可见性:必须确保在锁释放之前,其对于共享变量的修改对下一个获得该锁的线程是可见的,否则另一个线程可能是在本地缓存的某个副本上进行,

2022-03-24 17:14:11 8103 2

原创 (一)计算的本质

计算机本质,图灵机的概念。计算机所解决问题的界限

2022-02-06 23:31:31 947

转载 (四)数据库-SQL基本表的更新和视图

(一)基本表的更新(1)插入数据:插入元组,插入子查询结果values语句insert into SC values('20225','1',null);插入子查询结果:insert into Dep_age(Sdept,Ave_age) select Sdep,avg(Sage) from Student group by Sdep;(2)修改数据1.修改某个元组的值:update Student set Sage=22where Sno='20220';将所

2021-11-30 17:09:17 2452

原创 (三)数据库--SQL数据查询语法

(一)单表查询(1)选择表中的若干列查询全体学生的姓名select id name from student;查询全部列select id name sex,age from student;select *from player;算术表达式(2)选择表中的若干元组关键词distinct去掉重复的行select distinct inst.id from player_2;(二)连接查询(三)嵌套查询(四)集合查询...

2021-11-29 20:25:42 977

原创 (二)数据库--SQL语言使用(快速建表)

(一)SQL语言定义及特点1. SQL定义:SQL是结构化的查询语言,是关系数据库的标准语言SQL的特点综合统一:DDL(集数据定义语言),DML(数据操纵语言),DCL(数据控制语言)高度非过程化面向集合的操作方式以同一种语法结构提高多种服务数据字典数据字典数是关系数据库管理系统内部的一组系统表2.数据定义(1)数据定义的语句SQL数据定义的功能:模式定义,表定义,视图,索引(2)模式的定义和删除模式的定义create schema<模式名>.

2021-11-28 15:08:57 974

原创 (一)数据库-关系数据库

(一)关系 关系即为:单一的数据结构,从用户的角度关系模型中数据的逻辑结构是一张二维表1.域2.笛卡尔积3.关系4.三类关系(二)关系模式: 定义:对于关系的描述(三)关系操作 插入,查询,删除,修改(四)关系的完整性(五)关系代数 1.关系代数语言: 集合运算符: 专门的运算符:连接,选择,投影 连接:自...

2021-11-27 11:30:42 1400

原创 (四)java.迭代函数实现特殊图形的绘制

(一)基本思想:基本思路:通过三角函数计算,给出初始值并不断循环迭代,将得到的点绘制出来,得到特殊图形;需要用到的函数:sin(x),cos(x);(二)迭代的具体实现参数的设置:double temp_x,double temp_y, double a,b,c,d;在for循环中建立三角函数:通过在函数中计算并循环迭代,实现图形的绘制for(int i=0;i<20000;i++){ double tempx=Math....

2021-11-25 22:46:31 570

空空如也

空空如也

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

TA关注的人

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