JVM 垃圾回收算法和垃圾回收器。 一、垃圾回收的区域 栈:栈中的生命周期是跟随线程,所以一般不需要关注。 堆:堆中的对象是垃圾回收的重点。 方法区:这一块也会发生垃圾回收,不过这块的效率比较低,一般不是我们关注的重点。 二、怎么判断对象的存活 一般有两种方式(引用计数法、可达性分析),JVM使用的 ...
分类:
编程语言 时间:
2021-06-13 10:10:08
阅读次数:
0
一、该漏洞和router advertisement相关,先来学习一下相关协议; IPV4时代,如果想探测其他主机是否存活,要么用ARP(一般是局域内网),要么用ICMP(一般是公网)。但是在IPV6时代改用了Neighbor Discovery Protocol(简称NDP),该协议定义了使用IC ...
首先说为什么要判断是否存活,当垃圾收集器在对堆进行回收前,第一就是要确定对象哪些是还在被引用的或者后面还需要被引用的,即存活,哪些是已经“死去”(即不可能再被任何途径使用)1、引用计数算法 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,引用失效时就减1.任何时刻计数器为0的对象就是不可能再被使用的。这个方法效率挺高,大部分情况下也是很不错的算法。 但是在JVM中会很难解决
分类:
其他好文 时间:
2020-10-30 12:05:11
阅读次数:
19
但凡问到JVM(Java虚拟机)通常有99%的概率一定会问,在JVM中如何判断一个对象的生死状态?判断对象的生死状态的算法有以下几个:1、引用计数器算法引用计算器判断对象是否存活的算法是这样的:给每一个对象设置一个引用计数器,每当有一个地方引用这个对象的时候,计数器就加1,与之相反,每当引用失效的时候就减1。优点:实现简单、性能高。缺点:增减处理频繁消耗cpu计算、计数器占用很多位浪费空间、最重要
分类:
其他好文 时间:
2020-08-02 10:15:42
阅读次数:
88
本篇并不是为了介绍这几款工具,而是谈谈如何自研一款高效稳定的端口扫描器。Python的Socket模块可以创建套接字,创建tcp三次握手连接,以此探测目标端口是否存活。本篇将使用socket模块编写tcp扫描以及syn扫描,并对比两者的差异。 ...
分类:
其他好文 时间:
2020-07-21 22:23:06
阅读次数:
66
判断对象是否存活 引用计数 假如对象被引用,则计数加1,计数为0时回收。但是存在循环引用问题:A引用B,B引用A,导致AB永远不能被回收。 可达性分析(JAVA采用的算法) 从GC Root出发看某个对象是否可达。假如不可达,则回收。 GC Root:存活时间很长的对象,有存在意义的对象。 虚拟机栈 ...
分类:
其他好文 时间:
2020-07-21 11:37:02
阅读次数:
74
Google的三篇论文,Google File System,MapReduce以及Big Table可以说是整个大数据领域的三驾马车,这里,我们简单介绍下这三驾马车基本都是干哈的,重点解读下Bigtable: A Distributed Storage System for Structured ...
分类:
其他好文 时间:
2020-07-05 17:38:34
阅读次数:
68
nmap(选项)(参数) O:激活操作探测; -P0:值进行扫描,不ping主机; -PT:是同TCP的ping; -sV:探测服务版本信息; -sP:ping扫描,仅发现目标主机是否存活; -sS:TCP SYN扫描(半开放式扫描,扫描速度高且隐蔽性好) -sT: TCP 连接扫描(最基础,最稳定 ...
分类:
其他好文 时间:
2020-06-09 16:57:56
阅读次数:
129
redis-cli命令总结 转自http://www.cnblogs.com/silent2012/p/5368925.html 连接操作相关的命令 默认直接连接 远程连接-h 192.168.1.20 -p 6379 ping:测试连接是否存活如果正常会返回pong echo:打印 select: ...
分类:
其他好文 时间:
2020-05-30 10:28:27
阅读次数:
60
Python中多线程由于GIL锁,不推荐使用,应该优先用多进程,这里简单介绍多进程的使用 ...
分类:
编程语言 时间:
2020-04-24 21:26:07
阅读次数:
57