自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 JDK动态代理和CGLIB动态代理

CGLIB利用ASM(一个Java字节码操控和分析框架)来转换字节码并生成新的类(被代理类的子类),从而实现对被代理类方法的拦截和增强。JDK动态代理要求被代理的类必须实现一个或多个接口,通过接口来定义代理对象的行为。在运行时,JDK动态代理会为被代理类生成一个实现了相同接口的代理类实例,并通过拦截器(InvocationHandler)来定义代理方法的具体实现。注意:既然是通过子类代理,则被代理类不可以是final修饰的类,另外经测试cglib可以代理接口。注意:被代理类必须实现了接口,否则无法被代理。

2024-05-24 11:31:30 154

原创 Synchronized

其他线程进入竞争,偏向锁状态被消除,进入轻量级锁状态 (自适应的自旋锁),自旋操作是一直让 CPU 空转, 比较浪费 CPU 资源,因此此处的自旋不会一直持续进行, 而是达到一定的时间/重试次数, 就不再自旋了,锁就会。不是真的加锁, 而只是在锁的对象头中记录一个标记,(记录该锁所属的线程),如果没有其他线程参与竞争锁,那么就不会真正执行加锁操作,从而降低程序开销,一旦真的涉及到其他的线程竞争,再取消偏向锁状态,

2024-05-19 18:51:33 298

原创 KAFKA

如果Consumer在默认的5分钟以内没办法处理完这一批消息的时候,就会触发Kafka的Rebalance的一个机制,从而导致Offset自动提交失败,而在重新Rebalance以后,Consumer端还是会从之前没有提交的Offset的位置开始去消费,从而导致重复消费的一个问题。但是这样做也降低了可用性,因为如果ISR集合的副本全挂了,那这个分区就没有 leader了,就无法收发消息了,但是消息会发送到别的分区 leader 副本,也就是说分区的数量实际上减少了。每个分区都有自己的一个 ISR 集合。

2024-05-18 22:56:35 961

原创 java 多线程

在线程A里调用线程B的join方法时会阻塞线程A,直到线程B执行结束,才会唤醒A(实现原理:threadB.join()方法里实际时调用了threadB.wait(),threadB run()执行结束后会自动调用threadB.notifyAll());3、实现Callable接口,结合TaskFutrue类(本质上还是实现了Runable接口,run方法里调用Callable接口的call方法,利用unsafe包类(LockSupport)实现阻塞主线程直到子线程结束,实现主线程获取子线程的返回值)

2024-05-17 14:54:56 259

原创 Redis

哨兵模式是建立在主从复制的基础上,当主服务器中断服务后,可以将一个从服务器升级为主服务器,以便继续提供服务,在低版本中,这个过程需要人工手动来操作。AOF 保存文件时,如果执行相同的命令,AOF文件会记录多次,并没有优化,如果需要优化,则需要手动使用bgrewriteaof命令来优化。混合持久化实际上就是每一次aof被优化的时候,都会将原来的 aof 变成 rdb,再向aof中写内容的时候 依然是 aof,这样在同一个持久化文件中 既有 aof,又有 rdb,这就是混合持久化。

2024-05-16 22:56:48 586

原创 Mysql

1、链接、授权认证--查缓存--SQL解析优化--执行sql返回数据2、存储引擎:innodb、myIsaminnodb支持事务,支持行锁(where 条件是主键时),不支持fulltext全文索引(需插件),一定会有主键索引(无主键时,系统会自动生成),支持外键myisam更适合大量查询时使用1、B+树:非叶子节点只存储键值,这使得一页里面可以存储更多的键,树的阶数越大,高度就会越少,磁盘IO次数就越少(加载一页数据到内存,即为一次IO)2、Mysqlmyisam索引叶子节点存储数据行地址。

2024-05-15 16:28:49 906

原创 JAVA虚拟机

3、JVM 每次只会使用 Eden 和其中的一块 Survivor 区域(from)为对象分配内存,另一块survivor(to)空着,用于实现垃圾回收时的复制算法,扫描GC Root可达对象,标记存活对象,将存活对象复制到survivor(to)区域(对象年龄加1),清空Eden 和 Survivor(from)区域,from区域和to区域互相转换角色。1、方法栈/本地方法栈引用的对象、方法区中的静态属性/常量等都是GC Root,GC Root不可达的对象都是垃圾对象。5、大对象会直接放入到老年代。

2024-05-14 22:46:32 14

原创 docker入门命令

docker 命令总结

2023-01-13 18:14:12 101

原创 Docker学习--入门1

学习

2023-01-13 17:16:45 108

原创 java抽象类存在的意义

要理解抽象类的意义,我觉得用联想的方法会比较容易理解,举例:猪牛马都有一套消化系统,消化的步骤都是先咀嚼再胃液消化,咀嚼的方式也都是一样的,所以在抽象类中直接定义好消化的过程以及咀嚼的方法,这样就可限定子类方法的调用顺序,以及避免重复编写代码,同样的因为胃液的消化过程不一样,所以将胃液的消化过程抽象化放到子类实现

2023-01-09 13:37:04 486

原创 [Seoul 2007]Tile走道铺砖翻转问题处理

总时间限制: 20000ms单个测试点时间限制: 1000ms内存限制: 131072kB描述还是传统的走道铺砖问题,还是2行N列,现在给你三种砖,其规格分别为1*2,2*1,2*2。现在用这三种砖将走道铺满且砖与砖块之间不能重叠。问有多少种做法,值得注意的是:如果一种铺放的方法可以由另一个翻转过来得到则这两种只视为一种放法输入现给出N的值,请问有多少种不同的放法输出如题样例输入Sample input 12Sample input 24样例输出Sample output 13Sampl

2022-12-05 11:30:05 613

原创 记一次Redis出问题及解决方案

Q1: redis服务关闭前确认数据还是在的,重启后发现一条数据都没了,key* 查也是空的A1: 经仔细检查发现redis.conf配置文件配置的数据存储目录配置的是dir ./ 也就是相对目录,也就是说在哪个目录执行redis-server redis.config启动命令 redis数据就会存到哪个目录,同样就会加载哪个目录下的数据文件(dump.rdb),前后两次启动命令的位置不一样导致第二次启动没有加载到(dump.rdb)文件,从而导致查不出数据Q2:springboot 集成r

2022-05-17 18:13:49 2360 2

原创 java native方法调用dll(visual studio 2017)

java native方法调用dll(visual studio 2017创建dll)

2022-04-07 11:41:48 1251

原创 学习笔记1--过滤器代理

过滤器代理类org.springframework.web.filter.DelegatingFilterProxy类继承了GenericFilterBean类,而GenericFilterBean类实现了Filter接口,所以DelegatingFilterProxy类就是一个过滤器,在web.xml中配置过滤器如下:<filter> <filter-name...

2018-12-28 16:34:21 178

原创 mybatis 逻辑分页查询返数据total为0

今天在测试代码的时候发现一个问题:mybatis 的逻辑分页查询能正确的返回结果集数据,但是total(总记录数)始终等于0,后来查了下报错日志,发现报了一个MySQLSyntaxErrorException: Duplicate column name 'user_name'这样的错误,无语。。。查了下对应的查询语句发现确实是存在select user_name,user_name from u...

2018-12-19 09:37:05 2288

原创 mysql慢查询日志

1、SHOW VARIABLES LIKE '%slow_query_log%'查询慢日志是否开启以及日志存放地址2、临时开启慢日志SET GLOBAL slow_query_log = 1 当mysql服务关闭后,慢日志自动关闭也可以永久开启日志具体查百度谢谢3、查询慢查询阈值:SHOW VARIABLES LIKE '%long_query_time%'...

2018-10-31 13:53:29 91

基于websocket的web聊天室

java简单实现群聊 及两人对话聊天功能 发布后访问地址http://localhost:8080/mychat/index

2017-12-14

JSP网上图书销售系统

使用JSP写的一个网上书店,实现功能:用户登录,购买书籍,下订单等一些简单操作(采用的是MVC开发模式)

2013-03-24

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

TA关注的人

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