自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 学习使我快乐---CountDownLatch的典型应用

面试官:下面有这么一个场景“模拟100米赛跑,10名选手已经准备就绪,只等裁判一声令下。当所有人都到达终点时,比赛结束!” 该怎么实现?Peter:额… 用多线程;面试官:那请你具体说下把!Peter:GG说起这个我还是在去年面试中遇到的,当时年少无知,不晓得这个,最后去了网上学了一圈才发现这个真是yyds,分享给大家我的理解,欢迎大家提出好的意见,不多说直接上代码。

2023-02-28 16:26:40 303

原创 索引优化案例总结

索引在平时日常开发中经常会遇到,正确合理的索引创建可以提高我们数据库查询的效率和性能;同时,我们也会经常遇到索引失效的问题,对于明明已经创建了索引,却为何没有达到理想的效果,下面是个人对于一些未正确使用所引案例的简单总结分析。...

2022-08-11 16:43:57 351

原创 sql学习分享--使用子查询

使用子查询

2022-02-19 20:19:57 1842

原创 sql学习分享---分组数据

sql学习分享---分组数据

2022-02-18 00:15:26 2302

原创 数据库--sql性能优化学习整理

1.基本概念 1.1 SQL查询的执行流程:这是从网上找来的一张流程图,根据流程图我们可以清晰的了解到一条sql查询流程步骤;可以分为按照通俗的步骤和层级性的概括两种理解:sql执行流程讲述 按照常规步骤理解 层级性概括理解 第一步:客户端通过连接器进行权限校验,将SQL指令传输给MySql服务器。 第二步:服务器收到指令后会先查询缓存(在MySql8.0后好像就取消这个功能了) 第三步:若没有命中缓存,分析..

2021-08-18 17:35:22 374

原创 java实用必备工具库

java实用必备工具库,高效率完成开发很多对编程感兴趣的朋友不知道是否会有这样的感触,敲了很多年代码,才发现有很多工具类库,这些工具类库可以大大的简化代码量,从而提升开发效率,下面和大家分享一下我所了解的工具类库。1. java自带工具方法1.1 List集合拼接成以逗号分隔的字符串 @Test public void test1(){ //如何把list集合拼接成以逗号分隔的字符串a,b,c (---Arrays.asList:该方法是将数组转化成List集合的方法)

2021-07-02 23:59:48 363

原创 功能案例-----发红包\抢红包简单案例

发红包\抢红包简单案例--目录1.定义类--用户类/群主类/成员类2.定义方法--- 发红包方法:send() / 收红包方法:recieve()3.结果测试:1.定义类–用户类/群主类/成员类首先我们要定义相关的类,一般发红包,抢红包涉及到的对象可以简单的分为发红包的人,收红包的人两种,所以我们可以定义三个类,用户类/成员类/群主类。第一步我们需要定义一个用户类来存储一些相关的属性。其次发红包,抢红包得流程肯定还需要一个群主来发红包,一个普通成员来收红包,所以我们在定义一个群主类来用于发红包,定义

2021-02-19 15:29:28 296

原创 SQL学习笔记-------第八天(触发器实现多表同步更新学生信息)

触发器实现多表同步更新学生信息--目录1.什么是触发器?2.创建触发器3.查看和删除触发器4.小结1.什么是触发器?触发器是由一段代码块组成,当表中的数据发生变化(如INSERT、UPDATE 或 DELETE )时,会自动唤醒调用触发器中的代码,从而起到了保证业务规则和数据的完整性的作用。比如在网上商城系统中,当商家的一个商品被用户购买时,在订单表生成数据的同时,需要从商家库存表中减去该商品。还有当一个商家账户注销时,删除用户表中该商家记录的同时,还需要将商家对应的商品数据,销售订单记录和库存记

2021-02-05 16:41:53 1743

原创 SQL学习笔记----第七天(事务处理机制在批量 SQL 中的作用)

事务处理机制在批量 SQL 中的作用--目录1.事务的作用和特点1.事务的作用和特点在数据库世界里一直流传着这样一个经典故事:客户A在银行账户上向客户B转了500元钱,这个操作对我们来说很简单,一步就可以完成,但在银行系统的数据库中却需要两步:在客户A的银行账户上减去500元在客户B的银行账户上增加500元事务处理的一个重要作用(也叫特性)就是保证数据库中多条语句能完整执行,被定义为一个事务的批量 SQL,要么全部执行,要么全部不执行。事务一般须满足以下四特性:...

2021-01-15 10:59:20 216

原创 SQL学习笔记----第六天(索引为什么会使查询效率更快)

索引为什么会使查询效率更快--目录前言1.什么是索引?2.单值索引和组合索引2.1单值索引创建:2.2 组合索引创建2.3 删除索引以及创建唯一索引、查询索引3.小结前言优点:1、大大加快数据的检索速度;2、创建bai唯一性索引,保证数据库表中每一行数据的唯一性;3、加速表和表之间的连接;4、在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。缺点:1、索引需要占物理空间。2、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。1.

2021-01-12 15:10:01 656

原创 SQL学习笔记----第五天(使用字段约束保证学生信息准确性)

使用字段约束保证学生信息准确性--目录前言1.主键约束PRIMARY KEY2.外键约束FOREIGN KEY3.唯一约束 unique4.非null值约束not null5.检查约束:6.默认值约束DEFAULT7.删除约束8 小结前言字段约束用于限制插入表的数据的类型和数值,以保证这些数据的正确性和完整性,在关系型数据库中一般存在以下六种约束:非空值约束 NOT NULL主键约束 PRIMARY KEY唯一约束 UNIQUE外键约束 FOREGIN KEY检查约束 CHECK默认值约束

2021-01-04 14:03:16 264 1

原创 SQL学习笔记----第四天(SQL实战:全国高校信息及学生成绩分析统计)

SQL实战:全国高校信息及学生成绩分析统计--目录前言1.高效信息统计2.学生成绩统计3.小结前言前面笔记我们学习整理了很多种 SQL 查询知识,包括:子查询、多表关联、With子句、自带函数及它们的应用场景,下面我们通过两个实例进一步加深对这些知识的理解。1.高效信息统计在日常工作中,数据库工作者经常会遇到各种各样的数据统计需求,这些需求大部分可以通过 SQL 语句完成。当接到这样一个需求:**统计出高校数量在100以上的省份,并输出省份名称和高校数量。**看到这个需求时,首先分析需求:由于涉及

2021-01-03 11:05:26 616 1

原创 SQL学习笔记----第四天(Null 替换函数在日常统计中的应用)

Null 替换函数在日常统计中的应用--目录前言1.SqlServer中的isnull的函数2.MySQL中的ifnull函数3.Oracle中的nvl函数4.PostgreSQL中的coalesce函数小结前言在日常统计过程中,当表字段值存在 null 时, null 和其他值一起运算的结果也为 null,为统计工作带来了不便,比如在 MySQL 中执行 SQL 脚本:select 1+null结果集:为了避免统计值出现null值的情况,主流数据库都提供了替换null的函数,下面我们从四种主流数

2021-01-03 10:37:12 317

原创 SQL学习笔记----第三天(如何新增更新和删除学生成绩记录)

如何新增更新和删除学生成绩记录--目录前言1.1 新增记录1.2更新记录3.删除记录小结前言在一个数据库中,特别是OLTP(On-Line Transaction Processing 联机事务处理过程)的系统中,数据路记录的增删改查几乎是时刻发生的,这些操作也正体现了关系型数据库的主要功能,今天和大家一起了解一下表记录的增删改查操作。1.1 新增记录在数据库中记录的新增、更新和删除分别使用insert、update、delete完成,在更新和删除表记录之前,需要有一张表以及表中有待更新和删除的数

2021-01-02 17:32:09 6719 3

原创 SQL学习笔记----第二天(学生信息表自增字段的使用)

学生信息表自增字段的使用--目录前言一、MySQL中使用自增字段二、SqlServer中使用自增字段三、Oracle中使用自增字段总结前言我们在设计数据表时,使用自动增长字段可以简化子弹数据的生成,在开发实践中,经常将主键设置为自动增长字段,不同的数据库自动增长字段实现是不同的,下面我们来一起详细了解下一、MySQL中使用自增字段首先了解下怎么在MySQL中创建自增字段,在MySQL中创建自增字段,在MySQL中创建自增字段比较简单,只需要在字段后面加上auto_increment 即可:cre

2020-12-31 17:05:20 885

原创 SQL学习笔记----第一天(通过With子句检索学生选课名字、高校归属城市名)

通过With子句检索学生选课名字、高校归属城市名----目录前言一、With子句二、With后面跟多个子句总结前言本节使用With子句来完成一些比较复杂的查询功能一、With子句with子句一般出现在复杂的查询中,有助于将更复杂的大型查询分解为更简单的查询,增加SQL代码的可读性,每一个with子句查询可以看作一个视图,数据暂存在内存中。with子查询不但可以在select语句中使用,而且也支持在delete、update、insert语句中,并且with子句必须在使用之前定义,定义格式为:w

2020-12-29 17:29:50 222

原创 redis------第九天学习笔记(切片集群:数据增多了,是该加内存还是加实例?)

redis------第9天学习笔记(切片集群:数据增多了,是该加内存还是加实例?)在网上看到这样一个需求:要用Redis保存5000万个键值对,每个键值对大约512B,为了能快读部署并对外提供服务,我们采用云主机来运行Redis实例。那么,该如何选择云主机的内存容量呢?粗略的计算一下,这些键值对所占的内存空间大约是25GB。所以,当时我想到的第一个方案就是:选一台32GB内存的云主机来部署Redis,而且还留有7GB,可以保证数据的正常运行,同时,我还采用RDB对数据做持久化。以确保redis实例

2020-11-24 15:08:30 147

原创 redis------第八天学习笔记(哨兵集群:哨兵挂了,主从库还可以切换吗?)

redis------第八天学习笔记(哨兵集群:哨兵挂了,主从库还可以切换吗?)上次我们学习了哨兵机制,他可以实现主从库的自动切换。通过部署多个实例,就形成了一个哨兵集群。哨兵集群中的多个实例共同判断,可以降低对主库下线的误判率。但是我们还要考虑一个事情:如果有哨兵实例在运行时发生了故障,主从库还能正常切换吗?实际上,一旦多个实例组成了哨兵集群,即使有哨兵实例出现故障挂掉了,其他哨兵还能继续协作完成主从库切换的工作,包括判断主库是不是处于下线状态,选择新主库,以及通知从库和客户端。如果你部署过哨兵

2020-11-13 19:44:20 280

原创 redis------第七天学习笔记(哨兵机制:主库挂了,如何不间断服务?)

redis------学习笔记(哨兵机制:主库挂了,如何不间断服务?)上次学习了主从库集群模式。在这个模式下,如果从库发生了故障,在这个模式下,如果从库也发生故障了,客户端可以继续向主库或者其他从库发送请求,进行相关的操作,但是如果主库发生故障,那就直接影响到从库的同步,因为从库没有相应的主库可以进行数据复制操作了。而且,如果客户端发送的都是读操作请求,那还可以由从库继续提供服务,这在纯读的业务场景下还能被接受,但是,一旦有写操作请求了,按照主从库模式下的读写分离要求需要由主库来完成写操作。此时,也

2020-11-11 20:32:22 237

原创 多线程-----每日学习笔记

多线程理解学习:多线程百度百科:多线程(multithreading),是指从软件或硬件上实现多个线程并发执行的请求具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫做“线程”(Thread),利用它编程的概念就叫做“多线程处理”。进程与线程区别:进程:一个程序就是一个进程例如我正在运行的微信,网易云等都属于一个进程。线程:线程是运行在计

2020-11-10 12:02:03 238 2

原创 Redis学习笔记----------第六天(数据同步:主从库如何实现数据一致)

Redis学习笔记----------第六天(数据同步:主从库如何实现数据一致)前几节学习笔记我们已经学习了AOF和RDB,如果Redis发生了宕机,它们可以通过回放日志和重新读入RDB文件的方式恢复数据,从而保持尽量少丢失数据,进而提升可靠性。不过,即使使用了这两种方法,也依然存在服务不可用的问题。比如说,我们在实际使用时只运行了一个Redis实例,那么如果这个实例宕机了,它在恢复期间,是无法服务新来的数据存取请求的那么我们总说的Redis具有高可靠性,又是什么意思呢?其实,这里有两层含义:一是

2020-11-07 11:06:52 193 1

原创 Redis学习笔记----------第五天(内存快照:宕机时,Redis如何实现快速恢复)

Redis学习笔记----------第五天(内存快照:宕机时,Redis如何实现快速恢复)上次的学习中,主要学习了Redis避免数据丢失的AOF方法。这个方法的好处就是每次执行只需要记录操作命令,需要持久化的数据量不是很大。一般而言,只要采用的不是always的持久化策略,就不会对性能造成太大危险。但是也因为记录的是操作命令,而不是实际的数据,所以。用AOF方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志特别多,Redis就会恢复的很缓慢,影响到正常使用。这当然不是理想的结果,那么

2020-11-05 21:09:16 201 1

原创 redis---第四天学习笔记(AOF日志:宕机了,Redis如何避免数据丢失? )

redis—第四天学习笔记(AOF日志:宕机了,Redis如何避免数据丢失? )如果有人问:“你会把Redis用在什么业务场景下?”我想你肯定很大的概率说:“我会把它当做缓存用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。”没错,这确实是Redis的一个普遍使用场景。但是这里也会存在一个不可忽略的问题,就是一旦服务器宕机,内存中的数据将全部丢失!对于上述所说的问题,我们很容易的想到的一个解决方案是,从后台数据库恢复这些数据,但是这种方式会存在两个问题:一是,需

2020-10-28 16:29:05 312

原创 Redis-----第三天学习笔记(为什么单线程Redis能这么快?)

Redis-----第三天学习笔记(为什么单线程Redis能这么快?)今天主要来讨论大家都很关心的问题:“为什么单线程的Redis能那么快?”首先我们要先理清一个事实,我们通常说Redis是单线程,**主要是指Redis的网络IO和键值对读写是由一个线程来完成的,这也是Redis对外提供键值存储服务的主要流程。**但Redis的其他功能,比如说持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。所以,严格的来说,Redis并不算是单线程,但是我们一般把Redis称为单线程高性能。我之前一直

2020-10-25 11:32:00 127

原创 redis----第二天学习笔记(数据结构:快速的redis有哪些慢操作?)

redis----第二天学习笔记(数据结构:快速的redis有哪些慢操作?)提到Redis,相信大家脑子里马上就会联想到它的“快”,但大家有考虑过Redis的快,快在哪里吗?实际上,这里有一个重要的表现:它接收到一个键值对操作后,能以微妙级别的的速度找到数据,并快速完成操作。数据库的种类有这么多。为什么Redis能有这么突出的表现呢?一方面,这是因为它是内存数据库,所有操作都在内存上完成;内存的访问速度本身就很快。另一方面,这也归功于它的数据结构。这是因为键值对是按一定的数据结构来组织的,操作键值对

2020-10-21 22:18:09 164

原创 redis----第一天学习笔记(基本架构:一个键值数据库包含什么)

redis----第一天学习笔记(基本架构:一个键值数据库包含什么)Redis是典型的键值数据库,今天主要是学习构建一个简单的键值数据库。如果想我们想要深入了解redis,就必须要对他的总体架构和关键模块有一个全局的认知,然后再深入到具体的技术点,简单来说就是建立一种“系统观”。今天主要是通过构造一个简单的键值数据库,并通过剖析这个简单的键值数据库,来迅速抓住学习和调优Redis的关键。我把这个简单的键值数据库称为SimpleKV。(这个与Github上的SimpleKV不是一个项目,我们说

2020-10-19 13:56:04 281 1

原创 功能案例----java实现语音播报功能

功能案例----java实现语音播报功能根据自己最近的写的项目,总结整理了关于java语音播报功能的方法,可分为两种形式一种是通过自己写出一个语音播报方法的工具类,然后从前端获取文本数据,最后跳到控制层进行语音播报方法的调用,但是这种方式需要外部导入jacob这个jar包以及dll文件的位置设置,主要是通过java工具类来实现;(但是这种导入Jacob包的方法只适合在window的开发环境使用,因为里面的dll文件只支持在Windows环境下的com组件运行,而Linux系统不适用)另一种就是通过

2020-09-20 12:37:16 5220 3

原创 学习笔记--------Linux系统部署redis

1.下载安装包首先在官网上下载好Redis在linux系统下的安装包:https://redis.io/download2.导入Linux系统内/安装/部署进入到Xshell控制台(默认当前是root根目录),输入wget 将上面复制的下载链接粘贴上,如下命令:如果自己的机器可以访问外网可以按照上述方法复制链接,然后进入linux直接使用下面命令:`wget http://download.redis.io/releases/redis-5.0.7.tar.gz`然后敲击回车等待安装:如

2020-09-09 19:53:01 93

原创 Spring快速学习笔记---SpringIOC和DI与常见的设计模式(单例模式)

在我们学习Spring的过程中,我们经常看到Spring的IOC(控制反转)和DI(依赖注入)。在Spring的环境下这两个概念其实差不多,因为控制反转是通过依赖注入来实现的。1.SpringIOC和DIIOC是指我们代码里需要的实现的对象创建、维护对象间的关系,然后反转给容器来帮忙实现。所以我们需要创建一个容器,并且需要用一种描述来使容器知道需要创建的对象与对象之间是什么关系。注入依赖的目的只是起到解耦合的作用,进而体现出一种“组合”的理念。//Spring IOC容器负责创建Bean,并通.

2020-08-29 11:23:33 226

原创 创建git公钥方法

如何快速有效的创建一个公钥:简单说一下公钥的作用: Git使用https协议,每次pull, push都要输入密码,所以每次输入都很麻烦;使用git协议,然后使用ssh密钥。这样可以省去每次都输密码,是大部分程序员的最佳选择。公钥我们一般是给服务器的,他们到时候在权限中加入我给的公钥,然后当我从远地仓库中下载项目的时候,我在git clone 某些代码的时候,那个服务器我通过他的绑定的公钥来匹配我的私钥,这个时候,如果匹配,则就可以正常下载,如果不匹配,则失败. 大多数 Git服务器都会选择使用 SS

2020-08-18 19:07:26 1174

原创 面试干货分享(经验总结+本人遇到的实际面试问题)

面试经验分享(个人真实经历)本文是个人面试的真实经验,在这里与大家分享,希望可以帮到最近正在求职的小伙伴们,如有逻辑或者答案不对的地方,欢迎大佬们指正,我们一起进步哈!Java基础面试题肯定是要掌握的(不然初试就凉凉)所谓的初试,大部分是那些hr沟通后进行的电话面试,或者是在第一次电话联系中和你说明他们公司需求后的情况下随机问的一些问题,目的是测试你是否有任职这个岗位的基础能力(说白了我感觉是在试水),下面分享一下我初试问到的问题:一. 电话面试真实被问过的问题(平均面试时间大约在20分钟左右):

2020-08-14 17:32:48 895

jdk1.7.0_17 实测可用

jdk1.7 64位 windows.zip

2022-02-18

空空如也

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

TA关注的人

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