自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 记一次本地环境启动不了Mysql的故障

后来发现居然是Hyper-V会随机保留几个区间的端口号。我win11升了新版本之后,rabbitMq启动不了,当时为了赶时间,就开了Hyper-V,把rabbitMq装进了docker里面。显示端口被占用,但是用netstat -aon|findstr “3306”,没有发现占用端口的进程。今天想跑一下自己的开源项目,结果启动本地环境Mysql的时候报错。

2023-12-24 18:21:08 474

原创 浅谈Tomcat内存溢出的原因

浅谈Tomcat内存溢出的原因

2023-10-04 01:36:04 777

原创 浅谈Tomcat拒绝连接原因

Tomcat拒绝连接原因及解决方法

2023-10-03 23:33:30 1009

原创 同步、异步、阻塞与非阻塞

也就是说,同步/异步是“下载完成消息”通知的方式(机制),而阻塞/非阻塞则是在等待“下载完成消息”通知过程中的状态(能不能干其他任务)以小明下载文件打个比方,从这两个关注点来再次说明这两组概念,希望能够更好的促进大家的理解。,在不同的场景下,同步/异步、阻塞/非阻塞的四种组合都有应用。,所以在异步机制中,

2023-08-31 00:32:06 87

原创 探讨Tomcat架构特点及复杂系统设计思路

同样,在父组件的 start() 方法里也需要调用子组件的 start() 方法,这就是组合模式的使用,并且只要调用最顶层组件,也就是 Server 组件的 init() 和 start() 方法,整个 Tomcat 就被启动起来了。系统扩展:各个组件 init() 和 start() 方法的具体实现是复杂多变的,我们可以自己通过添加监听器来监听父节点的变化,监听器实现自己的逻辑,这是典型的观察者模式,具体来说就是在 LifeCycle 接口里加入两个方法:添加监听器和删除监听器。

2023-08-26 22:00:15 74

原创 探讨Jetty架构特点

Jetty Server 是由多个 Connector、多个 Handler,以及一个线程池组成;

2023-08-26 21:53:22 91

原创 Web容器的前世今生,浅谈Springboot为什么要用嵌入式服务器

在微服务架构下,服务的数量必然要增加,但为了减少资源的消耗,并且降低部署的成本,我们希望运行服务的 Web 容器也是轻量级的,Web 容器本身应该消耗较少的内存和 CPU 资源,并且由应用本身来启动一个嵌入式的 Web 容器,而不是通过 Web 容器来部署和启动应用,这样可以降低应用部署的复杂度。为了方便使用,它们也具有 HTTP 服务器的功能,因此Tomcat 或者 Jetty 就是一个“HTTP 服务器 + Servlet 容器”,我们也叫它们Web 容器。

2023-08-13 18:45:07 103

转载 Servlet的再封装-SpringMVC

文章转载

2023-06-28 00:19:42 61

原创 浅谈对于异常处理的最优解

异常处理的最优解

2023-05-14 23:29:27 51

原创 怎么理解里氏替换原则

里氏替换原则

2023-03-02 23:59:25 81

原创 Google Dapper的一些术语

Google Dapper的一些术语

2023-02-02 00:17:23 142

原创 使用Zookeeper作为注册中心的问题

使用Zookeeper作为注册中心的问题

2023-01-25 21:44:28 194

原创 如何理解微服务和云原生

微服务就是一些协同工作的小而自治的服务微服务的优点:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展出的应用云原生应用要求:

2023-01-25 19:50:46 130

原创 解析jar包结构

解析jar包结构

2023-01-25 19:47:30 145

原创 Maven的依赖管理

作为一名Java开发工程师,maven再熟悉不过了,但是往往这种基础的东西,很多人却对它没有一个相对清晰的认识。这个问题从以下几个方面作为切入点。

2023-01-22 00:53:43 204

原创 Java 提供的默认排序算法

Java 提供的默认排序算法

2022-10-19 23:40:40 603

原创 Java对象的内存结构

Java对象的内存结构

2022-10-19 23:35:46 859

原创 浅谈单例模式、Spring单例Bean和单例池的区别

单例模式单例模式是指在一个jvm进程(运行的Java程序)中仅有一个实例。Spring单例BeanSpring单例是指一个Spring Bean容器(ApplicationContext)中仅有一个实例。同时同一个容器中类型相同但是名称不同也会是不同实例。单例池底层是CurrentHashMap,是实现SpringBean单例的手段。...

2021-08-17 16:35:45 799

原创 最最完整的redis工具类(redis工具类,用这个就够了)

@Service(value = "redisCacheUtil")public class RedisCacheUtil { @Autowired private RedisTemplate<String, Object> redisTemplate; /** * 添加有序集合 * @param key * @param score * @param val * @param time */ pu

2020-11-10 09:24:45 1141 2

原创 Android Studio 报SDKRelativeJNI错误

被公司临时抽调,负责安卓app的开发…这个错误的原因是该程序必须要用安卓真机来运行,不能使用虚拟机!

2020-09-20 22:23:37 110

原创 自己对redisTemplet进行封装

代码如下,懂的不需多言!import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Service;import org.springframework.util.CollectionUtils;import java.util.List;im

2020-08-19 23:53:39 166

原创 浅谈:缓存雪崩,缓存穿透,缓存击穿

缓存可能出现的问题1.缓存雪崩在同一时间内,缓存集体过期.解决方式:放入缓存的时间随便2.缓存穿透查询条件在数据库中找不到,在缓存中也找不到,会一直访问数据库解决方式:1.把结果为空的值也放入到缓存中,设置过期时间短一点,多次用该条件进行查询,应该列为黑名单2.用布隆算法,把所有查询条件穷举(穷举把各种可能的情况都走一遍,使用if条件筛选出满足条件的情况)出来,放在hash表中.每次查询先在hash表中查询,如果没有就拒绝3.缓存击穿缓存过期,全部转向数据库,用互斥锁来阻止线程直接访问数

2020-08-19 23:35:11 101

原创 浅谈JAVA的事件委托机制和垃圾回收机制

java 事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器 那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被 接受,监听器将处理这个事件,然后返回。垃圾回收机制 垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。 如果一个对象没有指向它的引用或者其赋值为 null,则次对象适合进行垃圾回 收...

2020-08-09 11:51:04 197

原创 静态static和构造函数的区别(基础知识的查漏补缺)

静态static和构造函数的区别(基础知识的查漏补缺)1.什么是构造函数一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法2.什么是静态static在某些时候,我们希望该类所有的对象共享同一个成员, Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。3.Java中static和构造函数的执行顺序父类静态块 -> 子类静态块 -> 父类构造块 -> 父类构造函数 -> 子

2020-08-09 10:57:25 514

原创 explain sql语句中的type

explain sql语句中的type1.all 全表扫描2.index 按照索引的全表扫描3.range 有范围的索引扫描4.ref 该索引的列的值不唯一5.ref_eq 该索引的列的值唯一,使用主键或者唯一性索引来查找

2020-05-28 15:39:23 619

原创 优化where字句

优化where字句1改变where条件的顺序并没有提高查询的效率2.like语句优化不要在关键字前面加%,这样无法使用索引(type=ALL),会导致全表扫描3.使用union all 来替代or条件使用or关键字无法使用索引,会导致全表扫描4.不要是用不等于符号(!=或<>)5.不要使用in或not in1.如果in的条件是连续的,用between … and来替代in2.用exists替代in,用not exists替代not in (not in是最低效的)3.用lef

2020-05-28 15:38:31 287

原创 用idea启动tomcat的项目成功,但localhost:8080打不开的解决方法

用idea启动tomcat的项目成功,但localhost:8080打不开其实解决很简单,在Edit Configurations里面选择Deployment,把tomcat的ROOT文件夹加进去,然后把路径设置为/根目录

2020-05-11 15:23:58 4030 3

原创 配置idea导出war包

配置idea导出war包首先打开File选项下的Project Structure1.注意Java版本2.Deployment Descriptors部署描述器 地址为.xml的地址,下面一个框为项目的根目录3.Libraries这一项添加WEB-INF下的lib文件夹(lib文件夹为自己创建,classes也是自己创建的)4.Facets添加选择Web5.Artifacts这一...

2020-04-08 22:16:44 199

原创 浅谈JavaScript中this的指向

浅谈JavaScript中this的指向1.默认指向,this默认指向的是window对象console.log(this);//打印的是window2.函数调用时2.1独立调用,this指向window对象function test(){ console.log(this);//打印的是window}window.test();//简写test()2.2函数作为某个对...

2020-03-25 13:35:59 144

RedisCacheUtil.java

这是我自己封装的redistemplete类,基于spring框架,里面有指定缓存失效时间,根据key 获取过期时间,判断key是否存在,删除缓存,普通缓存获取,普通缓存放入,普通缓存放入并设置时间,递增,递减等等等二十余种方法!

2020-08-19

redis.zip,Redis(Remote Dictionary Server ),即远程字典服务

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。其中有一个启动bat,启动后的端口号为6379

2020-08-19

空空如也

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

TA关注的人

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