八也子
码龄15年
求更新 关注
提问 私信
  • 博客:58,455
    社区:1,355
    59,810
    总访问量
  • 31
    原创
  • 32
    粉丝
  • 51
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
加入CSDN时间: 2010-12-21
博客简介:

yanyuan904的专栏

查看详细资料
个人成就
  • 获得69次点赞
  • 内容获得60次评论
  • 获得67次收藏
  • 代码片获得218次分享
  • 博客总排名110,063名
  • 原力等级
    原力等级
    2
    原力分
    194
    本月获得
    1
创作历程
  • 1篇
    2025年
  • 4篇
    2024年
  • 3篇
    2023年
  • 2篇
    2022年
  • 3篇
    2021年
  • 3篇
    2020年
  • 2篇
    2019年
  • 8篇
    2018年
  • 6篇
    2017年
成就勋章
TA的专栏
  • mysql
    1篇
  • 算法
    1篇
  • mybatis
    1篇
  • redis
    1篇
  • spring
    3篇
  • java
    14篇
  • 多线程
    1篇
  • 并发
    2篇
  • rpc-java
    1篇
  • 个人总结
    1篇
  • docker
    1篇
  • tomcat
    1篇
  • jvm
    5篇
  • jdbc
    1篇
  • spi
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 1

TA参与的活动 0

兴趣领域 设置
  • Java
    javaspring
  • 人工智能
    机器学习深度学习tensorflow
创作活动更多

新星杯·14天创作挑战营·第13期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛!注: 1、参赛者可以进入活动群进行交流、互相鼓励与支持(开卷),虚竹哥会分享创作心得和涨粉心得,答疑及活动群请见:https://bbs.csdn.net/topics/619781944 【进活动群,得奖概率会更大,因为有辅导】 2、文章质量分查询:https://www.csdn.net/qc

88人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

java项目是否应该使用lombok

项目中是否应该用lombok,没有统一的结论,但团队应该保持一致。大家共同开发一个项目,有的用,有的不用,会很难受,应该达成共识,然后遵循。一个类中同时有两个相同的变量名,只是大小写不同,比如 username和userName,lombok只会生成一个变量的set和get方法。1.1 Java 注解处理器。1.2 编译期字节码生成。
原创
博文更新于 2025.01.14 ·
199 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

mysql RR解决了幻读么?

对于幻读实际开发中没必要过于害怕,从而无脑的选择RR。《mysql运维内参》推荐互联网应用默认使用RC隔离级别,一方面是RR导致死锁的情况比较多,另一方面我们实际业务其实是可以接收幻读的。这个场景属于当前读与快照读不一致。这种不一致算不算幻读有争论,暂时没找到比较权威的结论。1、非锁定读(普通的select) 通过 readView 解决幻读。2、锁定读(select for update)通过锁解决幻读。结论:mysql在RR隔离级别下绝大部分场景解决了幻读。
原创
博文更新于 2024.10.25 ·
1184 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

#444到1092

一个很简单的查询操作,怎么会出现这么无厘头的结果。看了下代码就是简单的等值查询,后端用Long进行接收。然后问了下chatgpt,444怎么编码可以得到1092,居然给出了16进制编码的答案,这要是google估计很难得到需要的答案。然后跟代码,在java.lang.Long里解析的时候 # 开头会判定为16进制,至此原因找到了。测试同学反馈根据id(整形)查询输入#444查询时返回了数据,并且不是想要的数据。结论:用了一段时间的chatgpt后,感觉效率比google高多了。
原创
博文更新于 2024.10.12 ·
499 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

nginx偶发报错:【502】 upstream prematurely closed connection while reading response header from upstream

想起了之前用httpclient调微信接口时也报过类似的错误,原因是用http线程池,服务端关闭了连接,而连接池不知道,发请求时触发,后续httpclient有升级进行相关检查。我给运维的建议是1、设置upstream的keepalive_timeout小于tomcat的connectTimeOut值,2、把max_fails设置为3。运维只同意修改max_fails=3。一段时间后又查看了nginx日志,error.log中依然有错误日志,但是access.log中没有了502,因为重试后都成功了。
原创
博文更新于 2024.04.22 ·
3764 阅读 ·
1 点赞 ·
1 评论 ·
4 收藏

g1垃圾回收算法浪费空间场景

线上环境给jvm分配了16g的空间,大概在10g左右触发了Java heap space,频繁的Allocation failure。一个10MB的对象占用了2个region 构成的Humongous区域 (一个region 8M = 16g/2048),剩下的6MB不能被使用。这也正好解释了,为啥16G 内存,使用10G就报内存不够用了。分析了下代码,对于大文件使用的是分块上传,每个块10M。之前有个bug就是在文件上传过程中,这10M的内存是不能释放的,这个跟当前问题有关但还不是重点。
原创
博文更新于 2024.04.16 ·
214 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

java websocket服务端丢消息

客户端A往服务端发送了1、2、3三个消息,服务端先处理1、处理完之后才会处理2,然后是3。现象:客户端日志记录发送了心跳消息,服务端没收到心跳,超时后服务端关闭sessionA,客户端新建了会话sessionB,过了会又收到了之前sessionA的消息,由于sessionA已经关闭,所以isOpen 方法返回 false。当然现有消息交互方式也是有问题的,客户端记录发送成功,并不表明真的成功了,所以靠谱的应该是加上业务层的ack,客户端收到服务端的业务ack才真正的是表明消息发送成功了。
原创
博文更新于 2024.04.16 ·
1053 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

Server-Sent Events(sse)提供流式接口遇到的坑

应用本身属于中转层,一方面需要对接python提供的流式接口,然后对前端提供流式接口。最后继承了SseEmitter,重写extendResponse方法生效了,nginx还是认这个头的。开开心心上线了,产品反馈流式接口没生效,还是阻塞然后一下全返回。直接访问应用对应的代理,接口是正常的。openresty版本是1.7,听说1.8 9都没问题,不过这不在范围内,就没多问了。看了chatgpt提供的接口感觉也不是,于是了解了下,发现使用的是sse,基于http接口实现的,类似文件下载。
原创
博文更新于 2023.11.03 ·
3709 阅读 ·
2 点赞 ·
19 评论 ·
7 收藏

apple 用户迁移

苹果用户迁移
原创
博文更新于 2023.06.14 ·
988 阅读 ·
2 点赞 ·
7 评论 ·
0 收藏

Java直接内存回收

jvm 直接内存 回收
原创
博文更新于 2022.12.09 ·
960 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration

springboot 单元测试
原创
博文更新于 2022.10.31 ·
7221 阅读 ·
13 点赞 ·
0 评论 ·
9 收藏

jdbc 驱动加载(SPI)

  在进行业务逻辑开发过程中,和数据库的交互基本都会使用数据库连接池(c3p0,druid等),上层再加上各种框架(hibernate或者mybatis等),对于底层几乎透明。如果让我们手动连接数据库也很简单一句话就可以解决Connection coon = DriverManager.getConnection(“url”,“username”,“password”),获取到coon就可以执行增...
原创
博文更新于 2022.03.31 ·
464 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

苹果 服务通知 V2

苹果 服务通知 v2
原创
博文更新于 2021.12.15 ·
11911 阅读 ·
6 点赞 ·
26 评论 ·
23 收藏

java8 time包(今天、本周、本月 时间范围)

今天LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); Date begin = Date.from(todayStart.atZone(ZoneId.systemDefault()).toInstant())
原创
博文更新于 2021.12.14 ·
319 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql timestamp比较查询遇到的坑

  记得之前京东要求mysql建表的时候要求update_time 为timestamp,create_time为datetime。后来阿里的编码规范里要求两者都要是datetime类型的。  对于timestamp和datetime的区别好多地方都有介绍。有时在想为什么京东会要求update_time必须timestamp呢?难道是因为占用的空间少点?还是只有timestamp才能设置默认值(on update current_timestamp)?默认值datetime不是也可以设置么。后来百度了下
原创
博文更新于 2021.09.17 ·
1957 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

spring事务传播行为-非事务方式 的理解

  具体的传播行为可以看看搜一下,相关的博客挺多的,现在说一下对隔离级别 PROPAGATION_NOT_SUPPORTED、PROPAGATION_NEVER中很多解释为 非事务方式运行 的理解。   关于什么是‘非事务方式运行‘问了些人,也看了spring相关解释,都没能解释的让人很明白。从字面上解释就是不在事务中运行,这种理解是不对的。在innodb这种支持事务的存储引擎中,所有的操作都是...
原创
博文更新于 2021.08.11 ·
2150 阅读 ·
4 点赞 ·
1 评论 ·
2 收藏

摘要与签名

    摘要算法主要是对一串数据(原始数据)生成固定长度的字符串(摘要)。它是一种不可逆的操作,即通过摘要不能获取到原始数据(彩虹表不算是解密),因为摘要操作会丢失数据的原始信息。常见的摘要算法有:MD5,SHA等。    记得刚开始工作的时候,提供的http接口校验token就是MD5,双方使用相同的salt,如果md5一致 就说明签名合法。    现在对接一些厂商的接口时发现签名都用SHA1withRSA(或更高版本)了。心想使用MD5不行
原创
博文更新于 2021.04.02 ·
858 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

函数指针执行机器指令

  函数指针就是一个指向函数的指针,关于c的忘的差不多了,需要补下。因为jvm执行字节码(模板解释器)主要就是通过函数指针来实现的。字节码属于栈指令,我们的机器可以直接执行的是机器指令,栈指令是不能在机器上直接执行的,要执行归根都会要变为机器指令来执行。   这里来弄下通过函数指针执行机器指令的demo,因为课本上很少有见到介绍这个的。没什么事谁会放着高级语言不用而去弄机器指令呢,主要是感性的认...
原创
博文更新于 2018.04.20 ·
396 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

java泛型面试

java泛型泛型本质泛型擦除获取泛型信息泛型本质本质就是语法糖,语法糖就是编译期间发生的,编译之后就没了踪迹。像c++有模板类,java的泛型也达到了类似的效果,但是他们实现的本质是不一样的。因为java有泛型擦除,编译之后就没了相关信息,比如List 和List 是一样的类型,都是List。在c++里就不一样了,对应两个不同的类(如果有叫List的模板类)。泛型擦除既然java语言增加了...
原创
博文更新于 2020.11.30 ·
256 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ubuntu20上编译openjdk8

记录下在ubuntu20下编译openjdk8时遇到的问题。内核信息:Linux yy-virtual-machine 5.4.0-53-generic #59-Ubuntu SMP Wed Oct 21 09:38:44 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux相关执行脚本bash ./configure --with-target-bits=64 --with-boot-jdk=/your/boot/jdk/path --with-debug-level
原创
博文更新于 2020.11.30 ·
1081 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

链表翻转

1、单链表翻转2、两两一组翻转3、k个一组翻转
原创
博文更新于 2020.10.16 ·
178 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏
加载更多