- 博客(617)
- 资源 (1)
- 收藏
- 关注
原创 用几种不同的语言输出:Hello world!!!(C、C++、Java、Python、JavaScript)
用几种不同的语言输出:Hello world!!!(C、C++、Java、Python、JavaScript)
2019-10-24 23:56:51 12662 3
原创 Java——聊聊<? extends T>和<? super T>的含义及区别
Java——聊聊<? extends T>和<? super T>的含义及区别
2022-10-09 15:06:54 4849 5
原创 Java——聊聊JUC中的锁(synchronized & Lock & ReentrantLock)
聊聊JUC中的锁(synchronized & Lock & ReentrantLock)
2022-09-11 17:56:39 3949 2
原创 Zookeeper——分布式锁的概念理解 & 应用举例
文章目录:1.前言2.原生Zookeeper实现分布式锁3.Curator框架实现分布式锁案例4.Zookeeper常见面试题1.前言什么叫做分布式锁呢? 比如说"进程 1"在使用该资源的时候,会先去获得锁,"进程 1"获得锁以后会对该资源保持独占,这样其他进程就无法访问该资源,"进程 1"用完该资源以后就将锁释放掉,让其他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。那么我们把这个分布式环境下的这个锁叫作分布式锁。.
2022-05-09 15:59:10 5449 6
原创 Zookeeper——服务器动态上下线、客户端动态监听
文章目录:1.前言2.实操步骤2.1 服务端代码2.2 客户端代码2.3 测试1.前言某分布式系统中,主节点可以有多台,可以动态上下线,任意一台客户端都能实时感知到主节点服务器的上下线。2.实操步骤首先,我这里还是像前几篇zookeeper的文章一样,考虑到电脑的8G内存以及性能,我这里就不显示zk集群了,还是以zk单机版来演示。先到zk客户端的根节点下,创建一个 servers 节点。[zk: localhost:2181(CONNECTED) 1
2022-05-09 11:52:49 5342 2
原创 Zookeeper——客户端API的相关方法操作
文章目录:1.前言2.实操步骤2.1 创建zk客户端,完成与服务端的连接2.2 创建节点信息2.3 获取子结点并监听节点变化2.4 判断节点是否存在3.浅谈写数据原理3.1 写流程之写入请求直接发送给Leader节点3.2写流程之写入请求直接发送给Follower节点1.前言首先,在上一篇博客中,主要是对zookeeper集群的相关操作,那么由于我的笔记本是 8G 内存的,所以开三台Linux还是可以的,但是再开个IDEA了话就炸了,所以我这里针对zookee.
2022-05-08 16:57:33 5240 3
原创 Zookeeper——客户端命令行的相关指令操作
文章目录:1.命令行指令语法2.指令实操2.1 ls查看节点信息2.2 create创建永久节点(不带序号)2.3 get获取节点的值2.4 create -s创建永久节点(带序号)2.5create -e -s创建短暂节点(带序号、不带序号)2.6 set设置修改节点的值2.7 监听器原理、ls -w监听子节点 (路径变化)、get -w监听节点的值2.8 delete删除节点、deleteall递归删除节点1.命令行指令语法2.指令实操首..
2022-05-08 15:05:09 5723 2
原创 Zookeeper——集群搭建 & 选举机制
文章目录:1.前言2.步骤详解3.选举机制3.1 第一次启动3.2非第一次启动1.前言继上一篇文章中,我学过了Zookeeper的一些概念、配置文件以及Linux下本地启动。那么这篇文章来讲讲关于Zookeeper集群的相关操作步骤。2.步骤详解首先我们需要准备三台机器,这里就对我原有的Linux进行链接克隆,再克隆两台,一共三台就可以了。克隆完之后,我们首先需要对克隆的这两台机器的ip、主机名做一下修改。修改 ip 命令如下:👇👇👇 我这里的三台机器分别是 .
2022-05-07 17:03:59 5747 2
原创 Zookeeper——简介 & 下载 & Linux下配置安装启动 & 解读相关配置参数
文章目录:1.什么是Zookeeper?1.1 Zookeeper工作机制1.2 Zookeeper特点1.3 Zookeeper数据结构1.4 Zookeeper应用场景1.4.1 统一命名服务1.4.2 统一配置管理1.4.3 统一集群管理1.4.4 服务器动态上下线1.4.5 软负载均衡2.Zookeeper下载3.Linux下配置安装启动4.Zookeeper配置文件的相关参数1.什么是Zookeeper?课件相关资料全部来自 尚硅谷!!
2022-05-05 18:07:57 5860 4
原创 SpringBoot整合Dubbo的第三种方式——XML配置 + @ImportResource
1.文档参照dubbo配置官方文档2.三个工程2.1 公共接口工程参考这篇文章:SpringBoot整合Dubbo的第一种方式2.2 服务提供者首先我们注释掉配置文件中的相关内容,只留下应用名(不留也可以)。spring.application.name=boot-user-service-provider#dubbo.application.name=boot-user-service-provider##dubbo.scan.base-packages=c
2022-04-29 16:42:17 7863 7
原创 SpringBoot整合Dubbo的第二种方式——API(自定义Configuration配置类)
1.文档参照dubbo配置官方文档2.三个工程2.1 公共接口工程参考这篇文章:SpringBoot整合Dubbo的第一种方式2.2 服务提供者首先我们注释掉配置文件中的相关内容,只留下应用名(不留也可以)。spring.application.name=boot-user-service-provider#dubbo.application.name=boot-user-service-provider##dubbo.scan.base-packages=c
2022-04-29 16:08:58 5555 3
原创 SpringBoot整合Dubbo的第一种方式——application.properties + @DubboService + @DubboReference
1.文档参照dubbo配置官方文档2.三个工程2.1 公共接口工程这个工程中存放的是一些公共的Java Bean、相关接口信息。其中UserService接口是针对服务提供者的,OrderService接口是针对服务消费者的。<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> &l
2022-04-29 14:24:00 7917 2
原创 MySQL高级篇——锁的概述与案例应用
文章目录:1.锁的概述2.MySQL并发事务访问相同记录2.1 读-读情况2.2 写-写情况2.3 读-写或写-读情况2.4 并发问题的解决方案3.锁的不同角度分类3.1 从数据操作的类型划分:读锁、写锁3.2 从数据操作的粒度划分:表级锁、页级锁、行锁3.2.1 表锁——读锁、写锁3.2.2表锁——意向锁3.2.3行锁——记录锁3.2.4行锁——间隙锁3.2.5行锁——临键锁3.2.6行锁——插入意向锁3.2.7页锁3.3 从...
2022-04-24 17:37:11 5850 2
原创 MySQL高级篇——事务的隔离级别与简单应用
1.数据并发所存在的问题针对事务的隔离性和并发性,我们怎么做取舍呢?先看一下访问相同数据的事务在 不保证串行执行 (也就是执行完一个再执行另一个)的情况下可能会出现哪些问题: 1.1 脏写对于两个事务 Session A、Session B,如果事务Session A 修改了 另一个 未提交 事务Session B 修改过 的数据,那就意味着发生了 脏写。1.2 脏读对于两个事务 Session A、Session B,Session A 读取 了已经被 Session B 更
2022-04-22 14:32:24 6450 2
原创 MySQL高级篇——事务的概述与简单应用
文章目录:1.事务概述2.事务的ACID特性3.如何使用事务?3.1 显式事务3.2 隐式事务4.实操案例1.事务概述首先,我们可以查看一下各种存储引擎对事务的支持情况。 仅有INNODB是支持事务的。事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。 事务处理的原则:保证所有事务都作为 一个工作单元 来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交( commit ),那么这些修改就 永久
2022-04-21 15:40:24 6213 2
原创 MySQL高级篇——索引解决查询相关的优化问题
文章目录:1.数据准备2.内外连接优化2.1 外连接优化2.2 内连接优化3.子查询优化4.ORDER BY排序优化5.GROUP BY分组优化6.LIMIT分页查询优化7.优先考虑覆盖索引8.其它查询优化策略8.1 EXISTS和IN的区分8.2COUNT(*)与COUNT(具体字段)效率8.3关于SELECT(*)8.4LIMIT 1 对优化的影响8.5多使用COMMIT1.数据准备准备两张表:type、book,每张表中各添...
2022-04-15 16:10:55 5929 4
原创 MySQL高级篇——索引失效案例
文章目录:1.案例分析1.1 数据准备1.2 全值匹配1.3 最左前缀法则1.4计算、函数、类型转换(自动或手动)导致索引失效1.5范围条件右边的列索引失效1.6不等于(!= 或者<>)索引失效1.7is null可以使用索引,is not null无法使用索引1.8like以通配符%开头索引失效1.9OR前后存在非索引的列,索引失效1.10数据库和表的字符集统一使用utf8mb42.结束语1.案例分析1.1 数据准备这...
2022-04-14 16:50:56 5880 3
原创 MySQL高级篇——EXPLAIN分析查询语句
文章目录:1.关于EXPLAIN2.数据准备3.EXPLAIN中各列的作用3.1 table3.2 id3.3 select_type3.4partition(略):匹配的分区信息3.5type3.6possible_keys和key3.7 key_len3.8 ref3.9 rows3.10filtered3.11 Extra1.关于EXPLAIN官网介绍 https://dev.mysql.com/doc/refman/5...
2022-04-13 16:47:46 6200 2
原创 MySQL高级篇——聊聊MySQL的慢查询日志
文章目录:1.数据库服务器的优化步骤2.查看系统性能参数3.定位执行慢的 SQL:慢查询日志4.查看 SQL 执行成本:SHOW PROFILE1.数据库服务器的优化步骤 当我们遇到数据库调优问题的时候,该如何思考呢?这里把思考的流程整理成下面这张图。 整个流程划分成了 观察(Show status) 和 行动(Action) 两个部分。字母 S 的部分代表观察(会使用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。2.查看系统性能
2022-04-12 17:30:41 5794 2
原创 MySQL高级篇——索引的创建与设计原则
文章目录:1.索引的分类2.创建索引的三种方式2.1 方式一:CREATE TABLE2.1.1 小例子2.1.2 普通索引2.1.3 唯一性索引2.1.4 主键索引2.1.5 单列索引2.1.6 联合索引2.1.7 全文索引2.2 方式二:ALTER TABLE ... ADD INDEX ...2.3 方式三:CREATE INDEX ... ON ...3.删除索引的两种方式3.1 使用ALTER TABLE删除索引3.2 使用DROP IN
2022-04-11 18:32:23 6074 4
原创 MySQL高级篇——索引的数据结构
文章目录:1.为什么使用索引?2.索引的优缺点3.InnoDB中的索引3.1 设计索引3.2 常见索引概念3.2.1 聚簇索引3.2.2 非聚簇索引3.2.3 联合索引4.InnoDB与MyISAM的索引对比5.B-Tree和B+Tree的差异1.为什么使用索引?假如给数据使用 二叉树 这样的数据结构进行存储,如下图所示2.索引的优缺点MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 索引的
2022-04-11 17:50:05 10330 22
原创 MySQL高级篇——聊聊MySQL的存储引擎
文章目录:1.关于存储引擎的相关命令2.存储引擎的详细介绍2.1 InnoDB(重点,具备外键支持功能的事务存储引擎)2.2 MyISAM(重点,主要的非事务处理存储引擎 )2.3 Memory(置于内存的表)2.4 Archive(用于数据存档)2.5 Blackhole(丢弃写操作,读操作会返回空内容)2.6 CSV(存储数据时,以逗号分隔各个数据项)2.7 Federated(访问远程表)2.8 Merge(管理多个MyISAM表构成的表集合)2.9 NDB
2022-04-11 15:33:39 5984 2
原创 JavaSE——为什么重写equals的同时一定要重写hashCode?
文章目录:1.引出话题2.关于equals方法3.关于hashCode方法4.为什么要一起重写这两个方法?5.总结1.引出话题equals 方法和 hashCode 方法是 Object 类中的两个基础方法,它们共同协作来判断两个对象是否相等。为什么要这样设计呢?原因就出在 “ 性能 ” 2 字上。使用过 HashMap 我们就知道,通过 hash 计算之后,我们就可以直接定位出某个值存储的位置了,那么试想一下,如果你现在要查询某个值是否在集合中?如果不通过 hash 方式
2022-04-08 11:27:03 5759 3
原创 MySQL初级篇——存储过程、存储函数的相关概念及应用举例
1.什么是存储过程?含义:存储过程的英文是 Stored Procedure 。它的思想很简单,就是一组经过 预先编译 的 SQL 语句的封装。 执行过程:存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服务器端发出调用 存储过程的命令,服务器端就可以把预先存储好的这一系列 SQL 语句全部执行。 好处: 1、简化操作,提高了sql语句的重用性,减少了开发程序员的压力 2、减少操作过程中的失误,提高效率 3、减少网络传输量(客户端不需要把
2022-04-02 18:37:21 6945 2
原创 MySQL初级篇——视图的相关概念及应用举例
文章目录:1.浅谈数据库对象2.什么是视图?3.视图操作相关SQL4.视图实操SQL5.视图的优缺点1.浅谈数据库对象2.什么是视图?视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的 价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他 人的查询视图中则不提供这个字段。 视图是一种 虚拟表 ,
2022-04-02 17:56:50 7071 2
第1章 Java基础 .docx
2020-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人