简
3年前
深度解读ArrayMap优势与缺陷
ArrayMap在内存使用上较HashMap更有优势,在Android开发中广为使用的基础API,也是大家所推荐的方法,但你是否想过Google如此重要的基础类存在缺陷?一、引言在移动设备端内存资源很珍贵,HashMap为实现快速查询带来了很大内存的浪费。为此,2013年5月20日Google工程师DianneHackborn在Android
Wesley13 Wesley13
3年前
java中的7个位运算运算符
位运算指的是针对整数的二进制进行的位移操作。位运算提供比算术运算更高的效率,但是位运算的代码可读性较差,建议所有使用位运算的地方写上注释。Java中提供7个位运算符用于位运算。左移(<<)左移运算是将操作数二进制值逐位左移若干位,左移过程中符号位不变,高位溢出则舍弃,低位则补0。范例结果范例结果00000001<<
Wesley13 Wesley13
3年前
java 常用命令
查看堆使用情况jmapheappid查看占用内存高的对象jmaphisto:livepid|headn100查看占用内存高的对象,dump成文件,线下分析jmapdump:live,formatb,filexxx.xxxpid查看进程的线程情况psppidLopcpu,pmem,p
Wesley13 Wesley13
3年前
java 面试知识点笔记(二)底层知识 jvm 内存模型 上篇
问:你了解java的内存模型嘛?内存简介:!(https://oscimg.oschina.net/oscnet/11b2c019f27a15c1f97c8aaf647391566bb.jpg)地址空间划分内核空间(主要是操作系统程序和C运行时的空间,包含链接硬件、调度程序、提供联网、虚拟内存等逻辑和基于C的进程)用
Stella981 Stella981
3年前
Linux sudo权限提升漏洞复现(CVE
2021年01月27日,RedHat官方发布了sudo缓冲区/栈溢出漏洞的风险通告,普通用户可以通过利用此漏洞,而无需进行身份验证,成功获取root权限。据报道这个漏洞已存在十年了,大部分的linux系统都存在这个sudo漏洞。站在攻击方的角度,这就是sudo提权的新姿势;站在防守方的角度,这可能是近期最需要去重视的漏洞了。漏洞编
Stella981 Stella981
3年前
Android low memory killer 机制
Android中,进程的生命周期都是由系统控制的。即使用户在界面上关掉一个应用,切换到了别的应用,那个应用的进程依然是存在于内存之中的。这样设计的目的是为了下次启动应用能更加快速。当然,随着系统运行时间的增长,内存中的进程可能会越来越多,而可用的内存则将会越来越少。AndroidKernel会定时执行一次检查,杀死一些进程,释放掉内存。那么,如何来判断
Stella981 Stella981
3年前
JVM快速调优命令汇总
CPU监控:进程和线程观察哪个进程CPU和内存占比高top观察进程中的线程,哪个线程CPU和内存占比高topHppidtop16837topHp16837定位具体java进程定位具体java进程jps
Stella981 Stella981
3年前
CTF丨Linux Pwn入门教程:针对函数重定位流程的相关测试(下)
LinuxPwn入门教程系列分享已接近尾声,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的LinuxPwn教程。教程仅针对i386/amd64下的LinuxPwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教
Wesley13 Wesley13
3年前
C语言深入学习系列
用C语言写程序时需要知道是大端模式还是小端模式。所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,
Docker容器只有JRE没有JDK使用Jattach导出内存快照
缘起目前生产环境(k8s部署的)发现某个服务被重启了,当前监控只有普罗米修斯,可以看到当时的内存和CPU都很高。服务接入了阿里的监控工具ARMS,但是没法导出当时的内存快照,ARMS虽然提供了手动导出的功能,但是人很难确定哪个时间点的内存快照是最合适的。虽