后端

直接内存

什么是直接内存 直接内存就是指:java堆外内存。 直接内存不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域。 直接内存的分配不会受到java堆大小的限制,但是既然是内存,则肯定还是会受到本机总内存的大小及处理器寻址空间的限制。 服务器管理员配置虚拟机参数时,一般会根据实际内存设置-Xmx等参数信息,但经常会忽略掉直接内存,使得各个内存区域的总和大于物理内存限制。(包括物

1700. 无法吃午餐的学生数量

题目: 学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。 餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里,每一轮: 如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。 否则,这名学生会 放弃这个三明治 并回到队列的尾部。 这个过程会一直持续到队列里所有学生都不喜欢栈顶的三明治为止

Apache Tomcat RCE 稳定复现 保姆级!(CVE-2024-50379)附视频+POC

原文链接Apache Tomcat 最新RCE 稳定复现+分析 保姆级!!!附复现视频+POC前言最近爆出 Apache Tomcat条件竞争导致的RCE,影响范围当然是巨大的,公司也及时收到了相关情报,于是老大让我复现,以更好的帮助公司进行修复漏洞。复现难度其实并不大,

怎样理解wait()、notify()和notifyAll()

wait():让持有该对象锁的线程等待 notify():唤醒任意一个处于waiting状态的线程 notifyAll():唤醒所有处于waiting状态的线程。 他们之间的关系是:通过调用对象的wait()方法使线程暂停运行,通过notify/notifyAll方法唤醒wait()暂停的线程。 注意: 调用对象的wait()、notify()、notifyAll()方法需要拥有对象的监视锁,即

Java多线程 - 线程通信

1. 通信方式 要想实现多个线程之间的协同,如:线程执行先后顺序、获取某个线程执行的结果等等。涉及到线程之间相互通信,分为下面四类: 文件共享 网络共享 共享变量 jdk提供的线程协调API 细分为: suspend/resume、wait/notify、park/unpark (1) 文件共享 文件共享 (2) 网络共享 网络资源的共享,此处略 (3) 变量共享 变量共

前端模块化(AMD,CMD,CommonJs,ES6)

文章序 总是会看到前端模块化的这几个技术,今天一次性整理,如有错误欢迎评论指正! AMD 异步加载,依赖前置,前置依赖建议写在前引用,在所有模块加载完成后立即执行回调函数,用户体验好,不容易造成卡顿 需要引用require.js //math.js define([], function () { function add(a, b) { return a + b; } ret

[转]解析分布式系统的缓存设计

作者:vivo互联网服务器团队-Zhang Peng 一、缓存简介 1.1 什么是缓存 缓存就是数据交换的缓冲区。缓存的本质是一个内存 Hash。缓存是一种利用空间换时间的设计,其目标就是更快、更近:极大的提高。 将数据写入/读取速度更快的存储(设备); 将数据缓存到离应用最近的位置; 将数据缓存到离用户最近的位置。 缓存是用于存储数据的硬件或软件的组成部分,以使得后续更快访问相应的数据。

Redis 知识点全面击破,多图警告

什么是 Redis? Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。 Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它在开发人员中很受欢迎。 Redis不是通过迭代或者排序方式处理数据,而是一开始就按照数据结构方式组织。早期,它的使用很像 Memcached,但随着 Redis 的改进,它在许多其他用例中变

【C语言】求简单交错序列前N项和

本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。 输入样例: 10 输出样例: sum = 0.819 代码: #include <stdio.h> int main()