自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JDK9到JDK17重要特性汇总(没有最全, 只有更全)

详细列举jdk9到jdk17的特性, 项目要升级jdk的小伙伴值得一读

2023-12-20 09:12:09 956

原创 再学一点mybatis(原理分析)

现在都有各种的ORM框架,很少再有人用传统的jdbc代码来操作数据库了, 但凡用过的都知道,开发人员除了要写sql外,还必须操作Connection、Statment、ResultSet等,为了访问不同的表,不同字段的数据,还需要书写很多模板化的代码,这些代码写起来往往是重复的,又繁琐又枯燥,ORM框架的诞生就是为了解决开发者的痛点,优秀的ORM框架比如mybatis、hibernate、JPA等等。调用prepare方法实现sql的预编译,就是为了防止sql的注入,同时也为了sql的执行提高查询的效率。

2023-11-02 23:29:49 310

原创 本地编译rocketmq源码

rocketmq本地调试入门必看

2023-07-28 10:00:00 187

原创 记一次nacos自动更新导致druird属性数据更新异常

nacos自动刷新导致druid异常引发的血案

2023-07-26 09:11:43 297 1

原创 Idea卡死或者编译内存溢出

在idea的安装目录下,找到对应的bin目录,里面有个idea64.exe.vmoptions文件,打开修改JVM配置参数前3个参数做下调整。

2023-03-25 13:50:31 766

原创 再了解一点Ribbon的重试机制

在我们通过http的各种客户端进行调用的时候,难免会出现网络等各种偶发性的问题,如果没有重试的操作,当前这次请求只能是失败,从而在数据上或者用户页面上带来的数据和体验问题。如果通过程序来设置出现异常的情况下,进行接口重试,从而保证它的可用性。

2023-03-25 13:41:46 1315

原创 再学一点Ribbon负载均衡

spring cloud ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具.基于HTTP和TCP的客户端均衡工具Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡,将Netflix中间层服务连接在一起.Ribbon客户端组件提供一系列完善配置,比如连接超时,重试等等.借用网络上朋友的一幅图。当我们使用RestTemplate或者Feign的时候,通过Ribbon实现负载均衡,获取到可用的远程服务列表,最后通过TCP完成最后的调用。

2023-03-19 22:13:19 501 1

原创 再学一下Feign的原理

Feign是Spring Cloud Netflix组件中的一个轻量级Restful的HTTP服务客户端,它简化了服务间调用的方式。Feign是一个声明式的web service客户端.它的出现使开发web service客户端变得更简单.使用Feign只需要创建一个接口加上对应的注解, 比如@FeignClient注解。Feign是一种声明式、模板化的HTTP客户端。

2023-03-17 09:39:52 1351 1

原创 Tomcat8源码编译

Tomcat8源码编译运行

2022-10-25 17:05:49 168

原创 再学一点Spring MVC

MVC模式,全称是Model-View-Controller(模型-视图-控制器)模式,它是一种软件架构模式,目标是将软件的用户界面和业务逻辑隔离,使代码具有更高的可扩展性,可复用行,可维护性以及灵活性.MVC模式将应用程序划分成模型、视图、控制器等三层,如下图所示:概念解释:viewcontrollerMVC模式的优点:完整的DispatcherServlet初始化流程,详见下图:这里我们以springboot为例进行springmvc初始化流程的分析,大家需要注意了,如果

2022-10-09 18:27:23 510

原创 记一次数据库连接池导致的OOM的问题

springboot中数据库连接池配置不当导致的线上oom的问题

2022-04-01 23:24:31 2882

原创 Mysql索引类型

1.索引类型索引类型有以下几种:1.主键索引(PRIMARY)2.唯一索引(Unique)3.一般索引(Normal)4.全文索引(Full Text)主键索引(PRIMARY key):表中当且只有一个,并且不能为空,不能重复.唯一索引(Unique):对数据的一个约束,保证对应数据的唯一性,可以设置多个唯一索引,并且可以为空.一般索引(Normal):可以设置多个,也可以重复和空.全文索引(Full Text):为了检索大文本信息使用的.2.索引文件存储myisam和innodb索

2021-09-03 16:42:11 405

原创 @Valid参数校验

今天就简要描述一下在日常的开发工作中,所需要用到的参数校验.主要有2种,一个是@Valid,一个是@Validated@ValidJSR303 是一套JavaBean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面.从注解的定义上面也可可以看到,它可以适用于方法,成员变量,构造方法,参数等等.范例如下:在javax.validation包中可以看到更多功能的注解:大家可以针对不同的场景做对应的参数校验.@Validated@Val

2021-09-03 16:39:49 1995

原创 Gitee简易入门

gitee操作使用gitee拉取或者提交merge request需要的操作[email protected]: Permission denied (publickey) 初次使用提示此错误的情况下.第一步:ssh-keygen -t rsa -C “自己的账号”第二步:ssh -v [email protected]第三步:把本地生成的rsa.pub复制到自己的gitee公钥设置里面.保存完毕以后,重新在开发工具里面拉取gitee代码即可....

2021-08-22 22:28:07 94

原创 Mysql索引数据结构

1. mysql的存储引擎1.1 MyIsam1.2 Innodb2. 索引类型3.索引的数据结构

2021-06-29 16:54:48 269

原创 nacos自动配置更新实现原理

1.nacos使用引用的相关的jar包 <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> </dependency> <dependency> <g

2021-04-01 14:11:23 3409 4

原创 SpringBoot加载流程

1. 开门见山首先创建一个Application类@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application .class, args); }}第一步就看到一个注解@SpringBootApplication,启动SpringBoot项目的必备。我们打开这个注解类,可以看到里面

2021-03-24 14:32:15 1727 2

转载 Mysql数据库面试必备

Mysql数据库面试必备:链接:https://blog.csdn.net/ThinkWon/article/details/104778621版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

2020-05-22 18:58:06 176

原创 JVM内存分析常用工具

在日常的java开发中,总会出现内存溢出或者CPU过高的情况,这个时候就需要我们使用一些工具来分析具体的问题,下面简单罗列一下经常使用到的一些.1.jmap使用top命令查询pidjmap命令可以帮助我们分析jvm的堆栈信息jmap -heappid对上面的参数做简单的解释:Heap Configuration: ##堆配置情况,也就是JVM参数配置的结果[平常说的tomcat配置JVM参数,就是在配置这些] MinHeapFreeRatio = 0 ##最小堆使...

2020-05-12 19:42:46 986

原创 group_concat函数长度问题

group_concat坑逼的函数默认最大长度为1024,在使用的过程中,如果长度大于1024会直接被截掉数据.解决方法:group_concat_max_len=具体值或者-1(无限长度)

2020-04-29 18:03:25 595

原创 Java项目内存占用过大宕机问题

记一次java项目占用内存过大,导致项目无限重启的情况.内存一直增加,并且不释放,就导致了服务器一直处在宕机的状态下,简单记录一下定位问题的几个关键知识点.1.使用top命令查询占用内存和cpu较大的线程2.查询后会获得一个PID的线程,使用jmap -histopid可以查看当前Java进程创建的对象数目和占用内存大小jmap -histo:live...

2020-04-08 20:17:39 1992

转载 http详解

https://juejin.im/post/5e1870736fb9a02fef3a5dcb

2020-01-19 14:46:58 121

原创 NacosValue默认值

在不配置值的情况下,配置nacosValue的key是会报错的.可以采用如下的方式添加默认值@NacosValue(value = "${key:unknown}", autoRefreshed = true)

2020-01-13 16:48:36 9100

原创 LocalDateTime

public static void main(String[] args) { /** * Fri Nov 08 00:00:00 CST 2019 Fri Nov 08 23:59:59 CST 2019 Mon Nov 04 00:00:00 CST 2019 Sun Nov 10 23:59:59 C...

2019-11-08 14:31:05 422

原创 类加载

虚拟机把描述类的数据从Class文件加载到内存(方法区),并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制.类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载,验证,准备,解析,初始化,使用和卸载阶段.其中验证,准备,解析3个部分称为连接,发生顺序如下图所示:加载,验证,准备,初始化,卸载这5个阶段是按部就...

2019-06-21 10:23:21 90

原创 Spring Data JPA

//保存实体testJpa.save(t);//findByIdOptional<TestTest> byId = testJpa.findById(1L);//findAllList<TestTest> all = testJpa.findAll();//countlong count = testJpa.count();//getOne...

2019-06-19 20:22:15 171

原创 基于netty实现websocket高并发服务

1.WebScoket简述WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。websocket协议本身是构建在http协议之上的升级协议,客户端首先向服务...

2019-05-28 15:11:37 54969 8

转载 JVM内存模型和JVM内存结构

转载,支持原创,出自【zejian的博客】于:http://blog.csdn.net/javazejian/article/details/72772461Java内存模型概述Java内存模型(即Java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问...

2019-05-20 16:03:05 1293 1

转载 java对象模型

大家都知道的是,Java对象保存在堆内存中。在内存中,一个Java对象包含三部分:对象头、实例数据和对齐填充。其中对象头是一个很关键的部分,因为对象头中包含锁状态标志、线程持有的锁等标志。这篇文章就主要从Java对象模型入手,找一找我们关系的对象头以及对象头中和锁相关的运行时数据在JVM中是如何表示的。Java的对象模型任何一个接触过Java的人都知道,Java是一种面向对象语言。在学习J...

2019-04-28 11:35:24 153

转载 基于Snowflake算法实现的分布式唯一id序列

/** * 基于Twitter的Snowflake算法实现分布式高效有序ID生产黑科技(sequence) * * &lt;br&gt; * SnowFlake的结构如下(每部分用-分开):&lt;br&gt; * &lt;br&gt; * 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 0000...

2018-10-31 09:34:41 249

原创 java8 新特性

1.function interfacepublic class UseFoo { public String add(String s, Foo foo){ return foo.method(s); } public String add(String s, Function&lt;String,String&gt; fn) { r...

2018-10-30 14:16:51 142

原创 java集合

1. 数组和集合数组只能存储基本数据类型,并且长度固定,不适合存储数量未知的. 集合可以存储对象,容量可以扩展.2. Collection结构 集合接口方法:public interface Collection<E> extends Iterable<E> { boolean isEmpty(); boolean contains(Object o); Iterator

2017-03-24 16:42:13 214

原创 Spring IoC容器

1. 概述IoC也称为”依赖倒置原理”(Dependency Inversion Principle),早在2004年,Martin Fowler就提出了 “哪些方面的控制被反转了?”这个问题.他得出的结论是:依赖对象的获得被反转了.依赖对象的获得从代码行里面直接new,变成通过IoC容器来管理依赖关系,并且有IoC容易完成依赖的注入. DI(Dependency Inject),DI是什么呢?跟

2017-03-23 16:38:19 230

原创 Mysql NULL和"的问题

只讨论MyIsam和Innodb存储引擎.Myisam从官网文档中可以看到1.定长NULL值是占用内存空间的.2.不定长NULL值也是占空空间的. “占一个位图,不存储到磁盘Innodb定长和不定长: 不定长的column,NULL值是不占用空间的,”也是不占用空间的,但是定长的仍然是占空空间的.innodb存储测试innodb存储

2017-03-17 14:42:47 242

原创 Tomcat加载流程

tomcat组成 tomcat主要由以上组建组成. 整个的http请求是通过tomcat以上组件协调完成的,server和service完成请求的基本设施,connector通过指定的协议和端口监听用户的请求,通过一层一层的处理,最终封装好响应信息返回给客户端.tomcat类加载上图简述tomcat类加载过程: tomcat的启动方式都是通过在org.apache.catalina.start

2017-03-16 17:09:17 4461

原创 equals和==的区别

在Object类中equals和==是完全相同的,一般情况下如果需要指定比较功能,都需要重写equals方法.

2017-03-09 11:40:31 240

tomcat10.0.8压缩包tomcat10.0.8压缩包

tomcat10.0.8压缩包

2022-10-26

tomcat7的源码包 tomcat7的压缩包

tomcat7源码和包

2022-10-26

空空如也

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

TA关注的人

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