- 博客(22)
- 收藏
- 关注
原创 JVM调优工具详解
摘要:本文介绍了JDK自带工具在Java应用性能优化中的使用。重点讲解了jmap查看内存信息、jstack分析死锁和高CPU线程、jinfo查看JVM参数、jstat监控GC和内存统计的方法。通过具体代码示例演示了如何生成堆内存dump文件、检测死锁、定位CPU问题,以及如何解读jstat输出的各项内存和GC指标。这些工具可用于诊断内存泄漏、线程阻塞、GC性能等问题,是Java应用调优的重要技术手段。
2025-07-10 17:05:31
917
原创 MySQL练习题(经典44题)
18、查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90。4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩 – (包括有成绩的和无成绩的)2、查询'01'课程比'02'课程成绩低的学生的信息及课程分数。36、查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩。1、查询'01'课程比'02'课程成绩高的学生的信息及课程分数。
2025-06-25 15:27:06
387
原创 Spring Data JPA 使用@PersistenceContext注入EntityManager
注解是 Java EE 和 Jakarta EE 中用于注入实体管理器(EntityManager)的注解。它通常与 JPA(Java Persistence API)一起使用,帮助开发者管理数据库中的实体对象。以下是一些关于。
2024-12-02 14:43:15
809
原创 Optional类的用法总结,优雅的处理null值
其正确的应用场景主要是作为方法的返回类型,用来清楚地表达这个方法可能返回一个值,也可能不返回值(即可能返回 null)。1、如果值存在并且符合给定的 predicate,返回值的 Optional,否则返回空 Optional。1、返回一个 Optional,它包含了给定值,如果非null,否则返回一个空的 Optional。1、如果存在值,则返回该值,否则抛出 NoSuchElementException。1、如果有值则返回该值,否则抛出由提供的 Supplier 创建的异常。
2024-11-28 14:45:36
968
原创 CompletableFuture有序处理批量请求
当有大批量数据需要处理的时候,如何快速有序的处理这些请求,并且返回有序的结果?发现耗时只有三秒多,但是每次执行的时候,打印出来的结果都不一样,还存在null值。现在结果正常输出了,但是又发现了新问题,结果并不是有序的,有什么办法改进呢?esult是ArrayList类型,他是线程不安全的。引入CompletableFuture以及线程池。研究发现是因为 aync()方法里面接收结果的r。,并发请求同时add的时候会出现线程安全问题。现在有十个请求,每个请求耗时3秒,处理结果:耗时30秒。
2024-11-27 17:30:51
264
原创 SpringBoot循环依赖的3种解决方案
当一个类在初始化时需要另一个类的实例,而另一个类又需要第一个类的实例时,就会出现循环依赖问题。这会导致应用程序无法正确地初始化和运行,因为Spring Boot 无法处理这种循环依赖关系。在启动时程序就会报错。循环依赖问题。
2024-11-19 16:12:51
857
1
原创 注解@RestControllerAdvice、@ExceptionHandler、@InitBinder的使用
注解@RestControllerAdvice、@ExceptionHandler、@InitBinder的使用
2023-09-22 11:45:29
652
原创 volatile和synchronized有什么区别?volatile能不能保证线程安全?DCL(Double Check Lock)单例为什么要加volatile?
指令重排是指:CPU为了提高性能,会把原来两行指令的执行顺序颠倒,单线程的指令重排是交换顺序后不影响结果。
2023-09-11 14:57:12
113
原创 CountDownLatch和Semaphore的区别和底层原理
对应的底层原理就是,调用await()方法的线程会利用AQS排队,一旦数字被减为0,则会将AQS中排队的线程依次唤醒。2、Semaphore表示信号量,可以设置许可的个数,表示同时允许最多多少个线程使用该信号量,通过acquire()来获取许可,如果没有许可可用则线程堵塞,可以通过release()方法来释放许可,当某个线程释放了某个许可后,会从AQS中正在排队的第一个线程开始依次唤醒,直到没有空间许可。
2023-09-11 14:49:34
241
原创 git设置ssh秘钥,实现免密登录
git config --global user.name "xxxx" 设置namegit config --global user.email "xx@xxcom" 设置邮箱。
2023-04-11 20:43:25
452
原创 InnoDB是如何实现事务的?
Innodb通过Buffer Pool,LogBuffer,Redo log,Undo log来实现事务的,以一个update语句为例:
2023-03-30 11:36:08
198
原创 linux安装mysql(避免踩坑)
解压后的mysql-5.7.35-linux-glibc2.12-x86_64文件移动到/usr/local/mysql (文件夹名称修改为mysql不带版本号信息)10、/etc/my.cnf中加入了skip-grant-tables,不需要密码即可登录。删除/etc/my.cnf中skip-grant-tables。12、重新登录mysql ,此时不输入密码无法登录了。7、修改配置文件 vi /etc/my.cnf。12、关闭mysql无密码登录。11、修改mysql登录密码。
2023-03-29 23:58:16
314
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅