自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMq和Kafka对比

Kafka会把收到的消息都。为了优化写入速度Kafak采用了两个技术,。

2023-06-05 19:38:31 1293 1

原创 Java基础八(泛型)

对任何一个不太熟悉泛型的人来说,这个Java泛型题目看起来令人疑惑,因为乍看起来String是一种Object,所以List应当可以用在需要List的地方,但是事实并非如此。如果你把泛型和原始类型混合起来使用,例如下列代码,Java 5的javac编译器会产生类型未检查的警告,例如。面试官可能会要求你用泛型编写一个类型安全的类,而不是编写一个泛型方法。5. 如何编写一个泛型方法,让它能接受泛型参数并返回泛型类型?5.如何编写一个泛型方法,让它能接受泛型参数并返回泛型类型?2.Java的泛型是如何工作的?

2023-05-12 11:37:41 430

原创 Java基础七(重写与重载)

存在于。为了满足里式替换原则,使用,可以让编译器帮忙检查是否满足上面的三个限制条件。下面的示例中,SubClass 为 SuperClass 的子类,SubClass 重写了 SuperClass 的 func() 方法。在调用一个方法时,先从本类中查找看是否有对应的方法,如果没有再到父类中查看,看是否从父类继承来。否则就要对参数进行转型,转成父类之后看是否有对应的方法。

2023-05-11 22:53:28 406

原创 Java基础六(抽象类与接口)

抽象类和抽象方法都使用进行声明。。。

2023-05-11 22:43:18 372

原创 Java基础五(继承)

Java基础五(继承)

2023-04-24 16:55:43 298

原创 Java基础四(浅拷贝 & 深拷贝)

Java基础四(浅拷贝 & 深拷贝)

2023-04-24 10:24:37 50

原创 Java基础三(equals() & hashCode())

两个对象具有等价关系,需要满足以下五个条件:ⅠⅡⅢⅣ多次调用 equals() 方法结果不变Ⅴ对任何不是 null 的对象 x 调用 x.equals(null) 结果都为 false// false;对于。对于。;;将 Object 对象进行转型;判断每个关键域是否相等。

2023-04-23 15:03:11 351

原创 Java基础二(final & static)

Java基础一(final & static)final:数据:声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。对于基本类型,final 使数值不变;对于引用类型,final 使引用不变,也就不能引用其它对象,但是被引用的对象本身是可以修改的。final int x = 1;// x = 2; // cannot assign value to final variable 'x'final A y = new A();y.a = 1;方法

2023-04-23 11:47:49 84

原创 Java基础一(String)

在 Java 8 中,String 内部使用 char 数组存储数据。在 Java 9 之后,String 类的实现改用 byte 数组存储字符串,同时使用 coder 来标识使用了哪种编码。value 数组被声明为final。因为 String 的 hash 值经常被使用,例如。如果一个 String 对象已经被创建过了,那么就会从 String Pool 中取得引用。只有 String 是不可变的,才可能使用 String Pool.String 经常作为参数,。

2023-04-23 11:16:01 387

原创 消息队列面试题-RocketMQ

幂等性:概念:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。要保证消息的幂等性,这个要结合业务的类型来进行处理。下面提供几个思路供参考:同步复制:保证了我们的热数据。也就是说 主和从保持的数据一致性。consumer消费到consume queue中的第一个queue,找到第一个数据,怎么确保是第一个数据呢?因为每一个数据的:8 bytes+4 bytes + 8 bytes 也就是20个bytes,所以在

2023-04-16 17:11:25 435

原创 消息队列面试题-kafka

kafka版本>=2.8时,可以不强制使用zk;kafka版本

2023-04-08 18:47:09 65

原创 Redis大key问题

大key不仅仅是占用内存而已,如果是仅仅内存的问题 那么扩大内存就好了。怎么解决bigkey?详情看以下这个链接:https://www.cnblogs.com/xgqfrms/p/13601959.html1.拆分多个key:2.存到hash中 用hget 但删除会有性能问题redis hash和桶的结构用偏移量存桶里,hash算法 可以定位桶的位置需要区分用户来源的场景:推送违约订单需要区分来源1.比如电柜电量大key:解决方法:。———以电柜编号最后一位分散到不同key。比如电柜编号为10

2023-04-08 16:26:03 585

原创 mysql与pgsql的区别

Pgsql中文文档。

2023-04-05 20:09:09 647

原创 springBoot面试题

EnableAutoConfiguration 自动去扫描所有能使用的配置类 进行启用。

2023-03-28 09:54:48 56

原创 spring面试题

。读未提交:产生的问题是:会产生脏读、幻读、不可重复读问题读已提交:产生的问题是:幻读、不可重复度问题可重复度:产生的问题是:幻读问题

2023-03-27 16:48:06 247

原创 zookeeper面试题

zookeeper面试题

2023-03-26 17:31:20 84

原创 dubbo面试题

可以简单来阐述一下:首先A服务要调用B服务的接口,那么A服务会发送请求(序列化对象),dubbo的负载均衡策略来找到能相应该请求的具体服务器 比如服务器1,AB之间建立好连接/通讯(netty通讯),建立好链接后,服务器1得到请求,服务器1去解析该请求(也就是反序列化),实现该请求,处理完请求后,将结果又通过这个通信(netty通讯)将结果返回给A服务,A服务接受到结果后反序列化得到最后的结果。简单阐述:dubbo服务引入的过程:(以下为自己理解 不一定全对 )默认采用懒汉式的方式进行服务的引入:当服务被注

2023-03-26 17:26:09 454

原创 Dubbo--笔记1

Dubbo–笔记1

2023-03-25 13:46:02 261

原创 RocketMq如何保证消息的可靠性

消息的发送方式有哪几种?存储消息的可靠性面临哪些挑战?消费消息的确认机制是怎样的?本文通过分析消息流转的整个过程,介绍RocketMQ是如何保证消息的可靠性的。分布式系统中一个重要的。常用的。由于分布式系统网络的不可靠,可能就会出现消息丢失的现象,那么RocketMQ是如何最大限度的保证消息不丢失的呢?那就需要从消息的产生到最终消费的整个过程来分析,。

2023-03-21 16:31:52 152

原创 spring面试题

面试题

2023-03-03 00:03:32 47

原创 redis--过期删除策略

1.过期数据:2.删除策略:2.1.定时删除:2.2 惰性删除:expireIfNeeded这个函数,在调用任何对数据操作的时候,内部都将先调用这个函数,这个函数就是检查是否数据过期的,也就是所有的get操作都与这个函数挂钩的,也就是只要拿数据 都是执行这个函数。2.3 定期删除:简单来说 ,就是每秒中执行若干次serverCron操作,在这个serverCron操作中会对所有的数据进行轮训访问(databaseCron操作),在访问的时候会对每一个库中的key进行轮训

2022-02-27 17:30:11 95

原创 redis事务+锁

1.事务的基本操作:2.事务的注意事项:3.锁:

2022-02-27 16:16:07 32

原创 RabbitMQ笔记

RabbitMQ笔记第一种模型:直连模型:一个生产者对应一个消费者第二种模型:work queue:一个生产者对应多个消费者:这多个消费者默认是采用均分的策略来消费消息的。但是也是可以通过一些设置来达到能者多劳的功能的。这个设置看那个笔记即可。第三种模型:fanout(广播模型):实现了一条消息能被多个消费者消费可以有多个消费者(每个消费者都绑定一个临时队列)每个消费者有自己的queue(队列)每个队列都要绑定到exchange(交换机)生产者发送消息,=只能发送给交换机,交换机来

2020-09-30 16:21:54 299

原创 趋势科技-9.22

趋势科技-9.221,把字符串按照规则进行输出。如:输入:A0BB1C2D3E4输出:BBCCDDDEEEE.import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.nextLine(); StringBuilder sb = new Str

2020-09-22 19:58:26 163

原创 leetcode(array)--39. 组合总和

leetcode(array)–39. 组合总和1,题目:2,思路:以 target = 7 为 根结点 ,创建一个分支的时 做减法 ;每一个箭头表示:从父亲结点的数值减去边上的数值,得到孩子结点的数值。边的值就是题目中给出的 candidate 数组的每个元素的值;减到 00 或者负数的时候停止,即:结点 00 和负数结点成为叶子结点;所有从根结点到结点 00 的路径(只能从上往下,没有回路)就是题目要找的一个结果。3,代码: import java.util.ArrayDeque

2020-09-09 10:27:18 158 1

原创 笔试练习--华为

笔试练习–华为1.有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述:输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100

2020-09-07 12:26:01 339

原创 leetcode(tree)--257.二叉树的所有路径

leetcode(tree)–257.二叉树的所有路径1,题目:2,思路:方法一:深度优先:思路与算法最直观的方法是使用深度优先搜索。在深度优先搜索遍历二叉树时,我们需要考虑当前的节点以及它的孩子节点。如果当前节点不是叶子节点,则在当前的路径末尾添加该节点,并继续递归遍历该节点的每一个孩子节点。如果当前节点是叶子节点,则在当前路径末尾添加该节点后我们就得到了一条从根节点到叶子节点的路径,将该路径加入到答案即可。方法二:广度优先:思路与算法:我们也可以用广度优先搜索来实现。我们维护一

2020-09-04 14:51:05 84

原创 leetcode(135)--分发糖果

leetcode(135)–分发糖果1,题目:2,思路:解题思路:规则定义: 设学生 A 和学生 B 左右相邻,A 在 B 左边;左规则: 当 ratings_B>ratings_Aratings B >ratings A 时,B的糖比 A 的糖数量多。右规则: 当 ratings_A>ratings_Bratings A>ratingsB 时,A 的糖比 B 的糖数量多。算法流程:先从左至右遍历学生成绩 ratings,按照以下规则给糖,并记录在 left 中:

2020-09-02 17:10:49 190

原创 科大讯飞(7.31)

科大讯飞:1,有面值1,5,10,50,100,分别对应变量:a、b、c、d、e若有k元钱,最少多少张纸币能找零,若不能则输出-1。public static void main(String[] args) { Scanner sc=new Scanner(System.in); int[] a=new int[5]; Map<Integer,Integer> map=new HashMap<>(); int

2020-08-15 21:51:03 267

原创 拼多多笔试

拼多多:1,掷色子走路. 给了离终点的距离. 给了接下来还能走几步和每一步的步数.(比如距离终点3, 下一步走5步, 则是走到终点再倒退2步). 如果中间某一步恰好停在终点. 返回 “paradox”. 否则返回最后距离终点的距离以及折返的次数.10 4 // 距离终点10, 还能走4步6 3 3 3 // 每次分别走 6 3 3 3步将返回 1 2 // 距离终点距离1, 往回走了2次. 第一次走6步距离4, 第二次走3步距离1, 第三次走1步回2步距离2, 第四次走2步回1步距离1代码:

2020-08-15 21:25:59 426

原创 携程笔试

8.15携程:1,有长度为a和b的2种规格的瓷砖,现从这些瓷砖中任取k块儿来铺路,请按递增的顺序输出所有可能的铺成道路的长度。输入描述:输入为3个数,每行一个数,第一个数表示a,第二个数表示b,第三个数表示k。输出描述:输出结果为一个数组,数组中的值从小到大排列。如[3,4,5,6],若数组为空,则输出[],若有相同的结果则去除重复的。如:输入:123输出:[3,4,5,6]public class Main{ public static void main(String[] ar

2020-08-15 21:06:33 1239

原创 MySQL(十四)--关于一些东东

MySQL(十四)–关于一些东东1,关于MySQL的日志类型:这个看MySQL书的605-606页的笔记。还有这两个链接:https://blog.csdn.net/lzh_00/article/details/90299354?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159525242219195188443691%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522

2020-07-20 21:44:41 111

原创 MySQL(十三)--有关于范式

MySQL(十三)–有关于范式第一范式:第一范式:所有属性都是不可分割的原子值。也就是每个属性都是不可再分的。例如下图就不符合第一范式的要求实际上,1NF是所有关系型数据库的最基本要求,你在关系型数据库管理系统(RDBMS),例如SQL Server,Oracle,MySQL中创建数据表的时候,如果数据表的设计不符合这个最基本的要求,那么操作一定是不能成功的。如果我们要在RDBMS中表现表中的数据,就得设计为下图的形式:第二范式(2NF):第二范式:在第一范式的基础上,要求非主属性都要和码

2020-07-20 21:39:37 808

原创 MySQL(十二)--关于数据库连接池

MySQL(十二)–关于数据库连接池1,什么是连接池?数据库连接池负责分配,管理和释放连接,它允许应用程序重复使用一个现有的数据库连接,而不再重新建立一个。2,为什么要用连接池?一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完毕都关闭连接,这样会造成系统的下降。解决方案是:在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态地对池中的连接进行申请,使用和释放。对于>连接池中连接数的并发请求,应该在请求队列中排队等待,并且应用程序可以根据

2020-07-20 20:02:16 2299

原创 MySQL(十一)--MySQL主从复制

MySQL(十一)–MySQL主从复制一、什么是主从复制:主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。DDL:操作数据库、表、列等(这些对象进行操作),使用的关键字:CREATE、 ALTER、 DROPDML:DML是对表中的数据进行增、删、改的操作。不要与DDL混淆了二 、为什么要做主从复制?数

2020-07-20 17:48:11 198

原创 MySQL(十)--数据库左连接,右连接

MySQL(十)–数据库左连接,右连接前提:先创建语句(也就是先有表,再会有表的链接):一、内连接(inner join):select * from a_table a inner join b_table b on a.a_id = b.b_id;结果为:二、左连接(左外链接)(left join/left outer join):select * from a_table a left join b_table b on a.a_id = b.b_id;结果为:说明:左连接/

2020-07-20 11:59:04 522

原创 MySQL(九)--关于分库分表带来的问题

MySQL(九)–关于分库分表带来的问题分库分表能有效的缓解单机和单库带来的性能瓶颈和压力,突破网络IO、硬件资源、连接数的瓶颈,同时也带来了一些问题。下面将描述这些技术挑战以及对应的解决思路。1、事务一致性问题:分布式事务:当更新内容同时分布在不同库中,不可避免会带来跨库事务问题。跨分片事务也是分布式事务,没有简单的方案,一般可使用"XA协议"和"两阶段提交"处理。分布式事务能最大限度保证了数据库操作的原子性。但在提交事务时需要协调多个节点,推后了提交事务的时间点,延长了事务的执行时间。导致事务

2020-07-20 11:01:36 514

原创 MySQL(八)--关于分库分表

MySQL(八)–关于分库分表一.为什么要分库分表?我们的数据库数据越来越大,随之而来的是单个表中数据太多,以至于查询速度过慢,而且由于表的锁机制导致应用操作也受到严重影响,出现数据库性能瓶颈。MySQL中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操纵。但出现这种情况时,我们可以考虑分表或者分区。分库分表是两个不同的概念,分表是为了避免单表的数据量太大,执行S

2020-07-20 10:17:57 338

原创 MySQL(七)--关于慢查询

MySQL(七)–关于慢查询MySQL服务器处理查询请求的整个过程:客户端发送SQL强求给服务器服务器检查是否可以在查询缓存中命中该SQL服务器端进行SQL解析,预处理,再由优化器生成对应的执行计划根据执行计划,调用存储引擎API来查询数据将结果返回给客户端查询性能低下最基本的原因是访问的数据太多。一,如何优化慢查询?1,首先开启慢查询日志:如:long_query_time(多长时间视为慢查询)slow_query_log(是否开启了慢查询日志,off表示未开启)slow_qu

2020-07-19 22:08:09 5184

原创 MySQL(六)--MySQL两种引擎的索引实现

MySQL(六)–MySQL两种引擎的索引实现InnoDB和MyISAM的特点及区别:InnoDB:支持事务操作(并且实现了SQL标准的四种隔离级别)支持行级锁(查询速度快)和表级索不支持全文索引(没有保存表的行数)是聚簇索引(因为索引文件和数据哎同一个文件下)是数据库默认的存储引擎MyISAM:不支持事务不支持行级锁和外键若表建立时指定存储引擎是MyISAM,则生成表时会生成3个文件:.frm文件存储表定义.MYI文件存储索引文件.MYD文件存储数据表中的数据是非

2020-07-19 18:51:49 437

空空如也

空空如也

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

TA关注的人

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