自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (5)
  • 收藏
  • 关注

原创 MySQL.MySQL执行过程

2024-03-05 14:28:01 460

原创 异步 excel 导出组件设计和实现

异步 excel 导出组件设计和实现

2024-03-05 14:27:10 409

原创 业务sql日志分日志文件

-业务SQL日志 ,用于排查sql错误-->

2024-02-29 11:23:43 434

原创 Arthas 基础学习

是指定输出结果的属性遍历深度,默认值为1,为1时看不到参数的具体值,只能看到类型;:在方法结束之后(正常返回和异常返回)观察,可查看方法的返回值和异常信息,默认打开。命令来反编译代码:jad demo.MathGame。:在方法异常之后观察。用此命令可查看方法抛出的异常。:在方法调用之前观察,用此命令可查看方法的入参。:在方法返回之后观察,可查看方法的返回值。命令可以查看当前系统的实时数据面板。是观察表达式,是一个ognl表达式,观察的方法为Test类下的。

2024-02-29 11:20:30 425

原创 valid注解

验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格。限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction。验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)限制必须为一个不大于指定值的数字。限制必须为一个不小于指定值的数字。限制必须为一个不大于指定值的数字。限制必须为一个不小于指定值的数字。限制必须是一个将来的日期。限制必须为false。

2024-01-30 13:59:49 355

原创 RocketMQ------看这一篇就够了

rocketMq作为低延迟、高并发、高可用、高可靠的分布式消息中间件,其详细知识点非常多,如需深入,建议源码入坑。

2024-01-30 12:48:03 962

原创 HTTP1.0、HTTP1.1、HTTP2.0的关系和区别

在HTTP1.x中,头部元数据都是以纯文本的形式发送的,通常会给每个请求增加500~800字节的负。通信的最小单位,每个帧包含帧头部,至少也会标识出当前帧所属的流(stream id)。免了连接建立和释放的开销,但服务器必须按照客户端请求的先后顺序依次回送相应的结果,以保。举个例子,每个请求是一个数据流,数据流以消息的方式发送,而消息又分为多个帧,帧头部记录。服务器除了对最初请求的响应外,服务器还可以额外的向客户端推送资源,而无需客户端明确的请。既避免了重复header的传输,又减小了需要传输的大小。

2024-01-26 10:42:33 320

原创 kafka工作原理

图示是消费者组内的消费者小于partition数量的情况,所以会出现某个消费者消费多个partition数据的情况,消费的速度也就不及只处理一个partition的消费者的处理速度?所以在实际的应用中,建议!由于该文件采用的是稀疏索引的方式存储着相对offset及对应message物理偏移量的关系,所以直接找相对offset为5的索引找不到,这里同样利用二分法查找相对offset小于或者等于指定的相对offset的索引条目中最大的那个相对offset,所以找到的是相对offset为4的这个索引。

2024-01-26 10:17:32 927

原创 java架构师面试题——软实力篇

回答要沉着,突出个性,强调自己的专业与能力,语气中肯,构、网络、算法这些基础是每个人必问的),比如写了你会 redis,那面试官就很大概率会问你 redis。假如你是网申,你的简历必然会经过HR的筛选,一张简历HR可能也就花费10秒钟看一下,然后HR。简而言之,STAR法则,就是一种讲述自己故事的方式,或者说,是一个清晰、条理的作文模板。举个简单的例子:一般情况下你的简历上注明你会的东西才会被问到(Java、数据结。4. 另外项目描述中,最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开发的或。

2024-01-25 11:00:00 405

原创 java架构师面试题——Git篇

新增文件的命令:git add file或者git add . 提交文件的命令:git commit –m或者git commit –a 查。看工作区状况:git status –s 拉取合并远程分支的操作:git fetch/git merge或者git pull 查看提交。简单的说,git merge和git rebase都是合并分支的命令。git 使用你的用户名将提交与身份相关联。每个开发人员都可以“克隆”我在图中用“Local repository”标注的存储库的副本,并且在他的硬。

2024-01-25 08:00:00 425

原创 java架构师面试题——tomcat篇

servlet-api.jar 和 jsp-api.jar,Jsp 也是一种。7. path=”/my-web-maven”的Context获得请求/index.jsp,在它的mapping table中寻找对应的。path :表示此web应用程序的url的前缀,这样请求的url为 http://localhost:8080/path/****。3. Engine获得请求localhost/my-web-maven/index.jsp,匹配它所拥有的所有虚拟主机Host ,

2024-01-24 12:00:00 362

原创 java架构师面试题—— Linux篇

q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间。-f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c 显示的字节数 -n 显示行数 -less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查。less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查。

2024-01-24 09:30:00 1599

原创 java架构师面试题——maven篇

jar包之间往往不是独立的,很多jar需要在其他jar包的支持下才能够正常工作,称为jar包之间的依。Maven其中一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。如果依赖的版本是 SNAPSHOT,就基于更新策略读取所有远程仓库的元数据文件,将它与本地仓库。对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自于一组共享的(或自定。是,Maven会区别对待普通依赖的远程仓库与插件的远程仓库。当Maven需要的插件在本地仓库不存在时是不会去我们以前配置的远程仓库查找。

2024-01-23 10:00:00 440

原创 java架构师面试题——设计模式篇

比如,创建一个对象“laowang”,给对象添加不同的装饰,穿上夹克、戴上帽子......,这个执行过程。基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称「GoF设计模。Observer:抽象观察者,是观察者者的抽象类,它定义了一个更新接口,使得在得到主题更改。通常你能回答这么多就已经ok了。接修改简单工厂里面的代码,这种做法不但不够优雅,也不符合软件设计的“开闭原则”,因为每次。:过多地使用适配器,容易使代码结构混乱,如明明看到调用的是 A 接口,内部调用的却是 B。

2024-01-23 08:00:00 429

原创 java架构师面试题——网络篇

协议:本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),ICMP协议。请求头,添加 Access-Control-Allow-Origin 属性,属性值为 * ,表示允许所有域名访问,这样浏。4. 顶级域名服务器返回 www.baidu.com 主区域服务器的地址,然后本地 DNS 服务器去 www.ba。5. 本地 DNS 服务器拿到 www.baidu.com 解析后的 IP 地址后,缓存起来以便备查,然后把解析。

2024-01-22 10:00:00 473

原创 java架构师面试题——分布式篇

在数据提交前要向后端服务的申请token,token放到 Redis 或 JVM 内存,token有效时间。数据提交前要向服务的申请token,token放到redis或jvm内存,设置token有效时间,提交后后台。校验token,同时删除token,生成新的token返回。的二阶段提交,但是市面上一些主流的MQ都是不支持事务消息的,比如 RabbitMQ 和 Kafka 都不。由于 long 类型在 java 中带符号的,最高位为符号位,正数为 0,负数为 1,且实际系统中所使用。

2024-01-22 08:00:00 817

原创 java架构师面试题——Zookeeper篇

先比较 zxid,server1(zxid)=server2(zxid)=0,zxid 相等再比较 sid,server1(sid)

2024-01-21 15:00:00 357

原创 java架构师面试题——Redis篇

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对。复制不要用图状结构,用单向链表结构更为稳定,即: Master

2024-01-21 14:30:00 840

原创 java架构师面试题—— MQ篇

个 broker上面的 partition 在其他机器上都有副本的,如果这上面有某个 partition 的 leader,那。ack 给 leader,leader 收到所有 follower 的 ack 之后,就会返回写成功的消息给生产者。然后写一个临时的分发。按照目前网络上的资料,RabbitMQ 、activeM 、ZeroMQ 三者中,综合来看,RabbitMQ 是首。RabbitMq 比Kafka 成熟,在可用性上,稳定性上,可靠性上, RabbitMq 胜于 Kafka (理论。

2024-01-20 11:30:00 350

原创 java架构师面试题—— Nginx篇

所有 worker 进程的 listenfd 会在新连接到来时变得可读 ,为保证只有一个进程处理该连接,所有。在 Nginx 服务器的运行过程中, 主进程和工作进程 需要进程交互。模块都非常稳定,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉。进程发生异常退出时,其它进程正常工作, master 进程则很快启动新的 worker 进程,确保服务。Nginx---Ngine X,是一款免费的、自由的、开源的、高性能HTTP服务器和反向代理服务器;

2024-01-20 08:30:00 391

原创 java架构师面试题——SpringCloud篇

的是@EnableFeignClients 3.服务指定的位置不同,Ribbon是在@RibbonClient注解上声明,Feign。1.Ribbon都是调用其他服务的,但方式不同。1.feign采用的是基于接口的注解 2.feign整合了ribbon,具有负载均衡的能力 3.整合了Hystrix,具。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用。2.Eureka保证了可用性,Eureka各个节点是平等的,几个节点挂掉不会影响正常节点的工作,剩余。

2024-01-19 10:00:00 401

原创 java架构师面试题——MySQL篇

varchar 与 char 的区别,char 是一种固定长度的类型,varchar 则是一种可变长度的类型。在 MySQL 5.1 及之前的版本中,MyISAM 是默认的存储引擎,而在 MySQL 5.5 版本以后,默。在索引上的,如果不走索引,自然就没法使用行锁了,原因是 InnoDB 是将 primary key index。1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提。2. InnoDB支持外键,而MyISAM不支持。

2024-01-19 08:00:00 348

原创 java架构师面试题——Dubbo篇

provider 宕机重试以后,请求会分到其他的 provider 上,默认两次,可以手动设置重试次数,建。第三层:proxy 层,服务代理层,透明生成客户端的 stub 和服务单的 skeleton,调用的是接。的是一个 socket 长连接),如果长期没有响应,服务中心就认为该服务提供者已经“挂了”,并将其。服务,将树状结构用于维护全局的服务地址列表,服务提供者在启动 的时候,向 ZooKeeper 上的。均衡还不 够,节点之间的数据和资源需要同步,ZooKeeper 集群就天然具备有这样的功能;

2024-01-18 14:22:20 326

原创 java架构师面试题——SpringBoot篇

对于集成 Spring Boot 和 ActiveMQ,我们使用 spring-boot-starter-activemq 依赖关系。Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-Starters包含了许多项目中需要用到的。Spring Boot官方的启动器都是以spring-boot-starter-命名的,代表了一个特定的应用类型。spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。

2024-01-18 10:30:00 402

原创 java架构师面试题——ElasticSearch篇

ES 集群有 3 个分片,分片 A、分片 B、分片 C,那么分片 A + 分片 B + 分片 C = 所有数据,每个分。核对了一下代码,核心入口为 findMaster,选择主节点成功返回对应 Master,否则返回 null。解决的话,可以把用户的检索结果,存入 Redis 中 10 分钟。2. Nodex 先计算文档在哪个主分片上,比如是主分片 A,它有三个副本 A1,A2,A3。深翻页:比如我们检索一次,轮询所有分片,汇集结果,根据 TF-IDF 等算法打分,排序后将前 10。

2024-01-18 09:56:38 513

原创 java架构师面试题——MyBatis篇

3. MyBatis 的一级缓存最大范围是 SqlSession 内部,有多个 SqlSession 或者分布式的环境下,Mybatis在处理#{}时,会将sql中的#{}替换为?Executor,进入一级缓存的查询流程前,先在 CachingExecutor 进行二级缓存的查询,具体的工作。更加细,能够到 namespace 级别,通过 Cache 接口实现类不同的组合,对 Cache 的可控性。查询关联B对象的sql,把B查询上来,然后调用a.setB(b),于是a的对象b属性就有值了,接着完成。

2024-01-17 11:48:03 345

原创 java架构师面试题——Spring篇

springMVC是一个MVC的开源框架,springMVC=struts2+spring,springMVC就相当于是Struts2。spring-context.jar 中 org.springframework.context.ApplicationContext。可以看到,ApplicationContext 继承了 BeanFactory,BeanFactory 是 Spring 中比较原始的。BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身;

2024-01-17 10:06:47 389

原创 java架构师面试题——多线程&并发篇

在 Java 中典型的消息传递方式,就是 wait() 和 notify() ,或者 BlockingQueue。Entry本身是一个弱引用,他的key是指向ThreadLocal的弱引用,Entry具备了保存key value键值对。AQS实际上以双向队列的形式。1. 只有在调用线程拥有某个对象的独占锁时,才能够调用该对象的wait(),notify()和notifyAll()方。4. final变量的写happen-before于final域对象的读,happen-before后续对final变量的读。

2024-01-17 10:00:00 602

原创 java架构师面试题——JVM篇

bootstrap.jar,通常在 catalina.bat 或者 catalina.sh 中指定。足,则抛出如下错误: java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起。JVM栈(JVM Stacks),与程序计数器一样,Java虚拟机栈(Java Virtual Machine Stacks)也是。(Extension)、系统加载器(System)和用户自定义类加载器(java.lang.ClassLoader的子。

2024-01-16 15:07:20 453

原创 java架构师岗面试题——基础篇

可以推出 obj1.hashCode()==obj2.hashCode() ,但是。5. Hashtable 的 key 不能为 null,value 也不能为 null,这个可以从 Hashtable 源码中的 put 方。hash % length == hash &(length - 1) 的前提是 length 是 2 的 n 次方)。elments() 方法继承自。1. 出生的版本不一样,Hashtable 出生于 Java 发布的第一版本 JDK 1.0,HashMap 出生于 JDK。

2024-01-16 15:05:32 859

原创 Spring Boot + RabbitMQ 配置参数解释

默认是true(与参数acknowledge-mode有关系)spring.rabbitmq.listener.simple.transaction-size: 指定一个事务处理的消息数量,最好是小于等于prefetch的数量.spring.rabbitmq.listener.simple.retry.initial-interval: 第一次和第二次尝试发布或传递消息之间的间隔。spring.rabbitmq.listener.simple.retry.max-interval: 最大重试时间间隔。

2024-01-15 10:31:41 1290

原创 Hutool 工具包的引入

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

2024-01-15 10:25:40 1285

原创 集成knife4j

knife4j是github中为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍!简洁、美观相较于swagger页面更加美观,简洁。基于左右菜单布局方式,更符合操作习惯,文档清晰。个性化配置个性化配置,支持接口地址,接口description属性、ui个性化配置功能增强接口排序,swagger资源保护,导出Markdown、参数缓存等强大功能。

2024-01-13 15:00:00 825

原创 数据库设计规范

对于经常改变的值,char也好于varchar,因为固定长度的行不容易产生碎片,对于很短的列,char的效率也高于varchar。char(1)字符串对于单字节字符集只会占用一个字节,但是varchar(1)则会占用2个字节,因为1个字节用来存储长度信息。同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。开发规范本身也包含几部分:基本命名和约束规范,建表规范、字段设计规范,索引规范,SQL规范等。

2024-01-13 09:00:00 861

原创 垃圾收集器CMS换G1

原则上G1会计算执行GC的时间,并且极力减少花在GC上的时间(包括ygc,mixgc),如果可能,会通过不断扩展堆空间来满足对象分配、转移的需要。G1的首要目标是为需要大量内存的系统提供一个保证GC低延迟的解决方案,也就是说堆内存最低在6GB及以上,稳定和可预测的暂停时间小于0.5秒。(2)G1在必要时也不能够增加或者缩小年轻代的空间. 因为大小是固定的,所以对更改大小无能为力;# 混合回收整理出来的空闲空间占heap的10时,结果老年代的回收,默认5。(1)Full GC 次数太频繁或者消耗时间太长;

2024-01-12 15:11:32 363

原创 delayQueue实现

5.FailedDelayJob超时,会从FailedDelayQ删除,放入ReadyQ,状态为Ready(FailedDelayJob);设定轮询,每分钟轮询一次zset,找出score小于当前秒数的数据,进行处理,然后将key在zset内删除。8.回调失败,超过重试次数,则归档,发提示短信,同时删除readyQ&数据字典信息,7.回调失败,小于重试次数,则再次transfer,删除readyQ信息,状态为。2. 超时后,会从delayQ中取出,放入ReadyQ中,状态为。自研DelayQueue。

2024-01-12 15:08:39 947

原创 rabbitMQ使用方案

方案1:方案2:

2024-01-10 23:45:00 733

原创 redisson实现分布式锁

搞了一个定时调度任务TimerTask,完成锁key过期时间的续约,延迟internalLockLeaseTime/3之后执行,默认internalLockLeaseTime=30000ms,Step3:一旦持有锁的线程释放了锁,就会广播解锁消息。于是,第二步中的解锁消息的监听器会释放信号量,获取锁被阻塞的那些线程就会被唤醒,并重新尝试获取锁。Step2:若第一步未获取到锁,则去订阅解锁消息,当获取锁到剩余过期时间后,调用信号量方法阻塞住,直到被唤醒或等待超时。现简单,相比数据库和分布式系统的实现,

2024-01-10 17:00:44 910

原创 IDEA装MyBatis Log插件,对于复杂的SQL进行分析

背景:对于复杂的SQL语句来说,Mybatis Log plugin这款插件简直是太完美了,能够自动拼接参数生成执行的SQL语句,可以更清晰看到执行本次接口调用的所有sql执行条数

2021-11-26 10:05:19 1065

转载 Spark 简易入门教程(Java的微型Web框架)

今天在reddit上看到了这个有趣的Java Web框架,就写了几个例子稍微感受了一下,顺手把它的文档也翻译的了一下。一、Spark是什么Spark是一个微型的Java Web框架,它的灵感来自于Sinatra,它的目的是让你以最小的代价创建出一个Java Web应用。二、使用SparkSpark的使用相当简单,首先你需要下载它的jar包以及它所依赖的jar包,或者你也可以直接通过

2017-05-26 19:36:04 3516

DBCP.rar全的连接池包

DBCP.rar里面有所有的连接池的包,可以保证你的用到。

2014-05-15

Java编程 100例.zip

Java基础编程的 100个例子,可以很好的对一些知识的理解,和讲解

2014-05-15

hibernate基础教程.ppt

hibernate基础教程,准确的总结了hibernate的一些基本的用法

2014-05-15

apache-maven-3.1.0-bin.zip

apache-maven-3.1.0-bin.zip

2014-05-15

TortoiseSVN

TortoiseSVN-LanguagePack_1.6.16.21511-win32-zh_CN.msi

2014-05-15

空空如也

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

TA关注的人

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