java线程池 1、简介线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 好处: 1 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 3 提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。 2 2023-03-04 后端 > java #并发编程
JVM-方法区 1 运行时数据区结构图 2 栈、堆、方法区关系 3 参数设置jdk8及以后,元数据区大小可以使用参数-XX:MetaspaceSize和-XX:MaxMetaspaceSize指定。XX:MaxMetaspaceSize 的值是-1,即没有限制。 与永久代不同,如果不指定大小,默认情况下,虚拟机会耗尽所有的可用系统内存。如果元数据区发生溢出,虚拟机一样会抛出异常OutOfMemoryError 2023-03-04 后端 > java #jvm
JVM-堆内存 1 基本介绍一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。堆内存的大小是可以调节的。 所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(ThreadLocal Allocation Buffer, TLAB)。 123456789Heap PSYoungGen to 2023-03-04 后端 > java #jvm
JVM虚拟机栈 1 基本信息1.1 背景由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 1.2 栈介绍Java虚拟机栈(Java Virtual Machine Stack) ,早期也叫Java栈。 每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Sta 2023-03-04 后端 > java #jvm
JVM 堆结构及垃圾回收期 一、堆结构及对象分代1.1 分代介绍及必要性java堆完全自动化管理,通过垃圾回收机制自动清理垃圾对象 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。给堆内存分代是为了提高对象内存分配和 2023-03-03 后端 > java #jvm
JVM虚拟机结构 1 类加载子系统类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。 2 方法区就是存放类信息、常量信息、包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)等。 方法区在java7和Java8以后有什么不同? 1 方法区是JVM规范的一个概念定义,并不是一个具体的实现,每一个JVM的实现都可以有各自的实现; 2 2023-03-03 后端 > java #jvm
postgresql查询每组的前N条记录 方式 1ROW_NUMBER() OVER (PARTITION BY "字段1","字段2..." ORDER BY 排序字段1 desc ,排序字段2 DESC) AS row_id 例如: 1select * from (select *,ROW_NUMBER() OVER (PARTITION BY t.src_ip, t.event_name, 2023-02-15 服务器 > postgresql #postgresql
spring AOP过程分析 1 AOP动态代理指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; 2 实现案例1、导入aop模块;Spring AOP:(spring-aspects) 2、定义一个业务逻辑类(MathCalculator);在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出现异常,xxx) 3、定义一个日志切面类(LogAspects):切面类里面的方法需要动态感知M 2023-02-05 后端 > java #spring
k8s部署minio 1 添加bitnami仓库1$ helm repo add bitnami https://charts.bitnami.com/bitnami 2 下载指定版本minio12$ helm pull bitnami/minio --version=11.10.20$ tar -zxf minio-11.10.20.tgz 3 修改minio配置1234567891011121314151617 2023-01-04 服务器 > k8s #k8s #minio
acme配置nginx证书 1、命令配置1234# 下载curl https://get.acme.sh | sh# 别名alias acme.sh=~/.acme.sh/acme.sh 2、申请证书1234# 指定dnsacme.sh --issue --server letsencrypt --dns dns_dp -d xichangyou.com -d www.xichangyou.com --webroot /h 2023-01-04 服务器 > nginx #nginx