Java的四种引用 1. 强引用 1.1 概念 被直接指向的对象实例,即使JVM的堆内存不足爆出OOM错误也不会释放强引用的对象。 1.2 强引用对象的回收 只有当对象无法通过GC Root找到(没有被引用),强引用的对象才可被回收
java基础——线程相关 本人在阿里暑期实习单招落榜(2025.6.4)之后,下定决心补全java基础知识时做的笔记 1.多线程 1.1 多线程实现的三种方式 1.1.1 继承Thread类 定义MyThread类,重写run方法: public class MyThread extends Thread{ @Override public void run() { for (int i = 0; i < 100; i++) { System.out.println("Hello,"+ getName()); } } } 实现多线程: public static …
Set和Map的遍历 1. Set的遍历 遍历set并将其复制给新的数组ret int[] ret = new int[n]; int cnt=0; Iterator<Integer> iterator = set.iterator(); while(iterator.hasNext()) { ret[cnt++] = iterator.next();//next():获取下一个值 } 2. Map的遍历 for(Map.Entry<Integer,Integer> entry : map.entrySet()) { ret[cnt++] = …
Java定时任务的实现 1. @Scheduled注解 引入依赖 <!-- Spring Boot Schedule依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> 使用方法 首先,在定时任务方法所在的类加上 @Component 注解
使用IDEA的Maven导出jar包失败 错误还原:项目使用的是jdk1.8,先使用maven的Lifecycle中的clean,再package,当使用package时,报错:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project cinema-manage-system: Fatal error compiling: java.lang.NoSuchFieldError: Class …
使用Git贡献代码教程 前言 git适用于GitHub、Gitee、GitLab等主流托管平台,它们均使用git作为底层版本控制工具 Git中的三个分区 Git有三个主要的工作区域:工作区(working directory)、暂存区(staging area)和版本库(repository)。 工作区是指您电脑文件系统上用于修改文件的目录。在这里,您可以创建、编辑和删除文件。 暂存区是一个中间状态,它充当了您提交更改的缓冲区。在Git中,您必须明确地将文件添加到暂存区,然后才能将其提交到版本库中。这样做的好处是,您可以对每个更改进行精细控制,并确保只提交需要保存的更改。 版本库包含Git存 …
服务器项目部署 1. 内网穿透 1.1 目的 为了让他人也能通过指定的url访问到自己启动的项目 1.2 实现步骤 1.2.1 下载与配置 搜索 https://www.cpolar.com ,进入cpolar官网。
仓库地址:https://github.com/meeting77smile/like-system 项目介绍: 本人在学习高并发项目过程中制作的亿级流量点赞系统,包含了后端代码。 项目亮点: 高并发优化:设计Caffeine+Redis多级缓存架构,高并发情况下的接口响应时间降低92%(压测TPS达3000+);利用HeavyKeeper热点探测算法将本地缓存命中率提升至92% 异步处理系统:集成Pulsar消息队列实现批量消费(1000条/10秒),数据库写压力下降94%;通过Lua脚本保证原子操作+定时对账,数据一致性达99.99% 分布式架构升级:从MySQL迁移至TiDB实 …
仓库地址:https://github.com/meeting77smile/nebula-mall 项目介绍: 本人在学习微服务过程中制作的电商平台的后端代码。 项目亮点: 服务间异步调用:利用RabbitMQ结合SpringAMQP代替OpenFeign从而实现服务间的异步调用,实现了降低服务间的耦合性、避免级联失败的效果。 超时订单取消:通过DelayExchange插件,利用延迟消息实现订单超时取消功能。 负载均衡:基于Nacos注册中心,利用DiscoveryClient和随机负载均衡算法,实现服务调用的负载均衡。 网关登录校验:通过自定义GlobalFilter,结合JWT工 …
仓库地址:https://github.com/meeting77smile/SecondKill 项目介绍: 本人在学习高并发过程中制作的百万级别秒杀系统,包含了前端和后端代码。 项目亮点: 通过redis预减+使用RabbitMQ处理订单请求,用户下单时的QPS提升接近4倍; 通过redis执行lua脚本,避免库存超卖; 通过生成uuid隐藏秒杀地址、easy-captcha生成验证码和计数器算法实现接口限流等操作,实现了防止恶意刷单的功能,从而增加了系统的抗压能力。