avatar
Articles
39
Tags
0
Categories
0
Home
Archives
LogoLittleYのBlog
Search
Home
Archives

LittleYのBlog

JVM中常见的垃圾回收算法
Created2025-12-24
了解垃圾回收算法前,需要先了解评价垃圾回收算法的评价标准和指标。有以下几点: 吞吐量 最大暂停时间 内存使用效率(堆使用效率)在这里不做过多介绍。 1. 总览垃圾回收算法的整体迭代历史如下: 标记-清除算法(Mark Sweep GC):于1960年发布; 复制算法(Copying GC):于1963年发布; 标记-整理算法(Mark Compact GC) 分代GC(Generational GC) 2. 标记-清除算法(Mark Sweep GC)标记-清除算法核心分为两个阶段: 标记阶段:将所有存活的对象进行标记; 清除阶段:从内存中删除没有标记的对象,即非存活对象。 优点很明显,实现简单。整体逻辑就是标记存活对象,然后删除非存活对象即可。 缺点 碎片化问题严重:由于内存是连续的,在对象被删除后,内存中会出现很多内存碎片,如果需要分配一个较大的对象的话,可能会出现,剩余总量够,但依然无内存可分配的情况; 分配速度太慢:其实也是碎片化的问题造成的。由于内存碎片的存在,要想分配空间,就必须维护一个表用于记录空闲内存。有一定可能需要遍历整个表才能获得合适的内存空间。 ...
Learning to Classify A Flow Based Relation Network for Encrypted Traffic Classification
Created2025-12-24
加密流量分类的挑战性问题: 网络数据的不平衡性 模型对真实数据的泛化能力 模型对数据大小的过度依赖。 1、概念介绍1.1 流量加密背景加密技术虽然保护了互联网用户的自由、隐私和匿名性,但也用户避开了防火墙的检测,绕过了监控系统。 由此导致的问题: 攻击者通过加密恶意软件流量来匿名入侵和攻击系统。 犯罪分子使用隐私增强工具(例如Tor)穿透黑暗网络,在那里他们可以购买毒品、武器和伪造的文件(如护照、驾照、提供合同杀手的媒体)来吸引客户. 1.2 流量分类技术的发展(综述部分) 基于端口号 基于有效载荷,也就是DPI方法。1,2只能针对非加密流量 基于流统计特征的方法,分类性能取决于人类的特征工程 基于深度学习的方法: 优点:端到端、具有相当高的学习能力 缺点: 不能解决数据中类的不均衡问题 训练好的模型不能很好适用于真是流量环境,泛化能力差 过分依赖数据集的大小与数据分布的好坏 1.4 文章核心观点引入对于一个新奇概念的样本,人类可以轻易根据对事物共同变化模式的了解,想象该样本在其他环境的样子。如果机器从辨别出在不同环境(原文这里称作幻觉(hallucinat...
ReentrantLock详解(一)—— 加锁和解锁
Created2025-12-24
本文将从以下角度来介绍ReentrantLock: ReentrantLock介绍; ReentrantLock与synchronized的关系; ReentrantLock的原理; 1. ReentrantLock介绍JDK1.5新增了并发包,里面包含Lock接口,与synchronized关键字一样能实现同步功能。但相比synchronized,Lock更加灵活,可以手动获取、释放锁,而ReentrantLock就是Lock的一个实现类。接下来先介绍其基本使用。 1.1 ReentrantLock的基本使用以下是一段是使用5个线程,并发对count做加一操作。使用ReentrantLock来保证线程安全。 123456789101112131415161718192021222324252627282930class AddRunnable implements Runnable{ @Override public void run() { for (int i = 0; i < 10000; i++) ...
ReentrantReadWriteLock详解
Created2025-12-24
本文来讨论ReentrantReadWriteLock的实现原理。本文的内容客观上看不算太难,但是内容相对较多,需要有一定AQS的基础,如:AQS、独占锁、共享锁等。这些内容可以参考之前的一些文章,如:[[ReentrantLock详解(一)—— 加锁和解锁|ReentrantLock详解]]、[[CountDownLatch详解]]、[[CyclicBarrier详解]]等。 1. ReentrantReadWriteLock是什么?翻译过来,名为读写锁。其中有两个锁示例,用于分别对读操作和写操作进行同步控制。其中读锁是共享锁,可以同时被多个线程同时使用,写锁是独占锁,只能由一个线程持有。且持有写锁的时候可以获取读锁,但是持有读锁的时候无法持有写锁。 OK,现在还是老规矩,直接看看JavaDoc中给出的例子: 1234567891011121314151617181920212223242526272829303132class CachedData { Object data; volatile boolean cacheValid; fina...
NIO基础
Created2025-12-24
tags: - Java - Netty - NIOdate: 2024-01-18一. NIO 基础non-blocking io 非阻塞 IO 1. 三大组件1.1 Channel & Bufferchannel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出,channel 比 stream 更为底层 123graph LRchannel --> bufferbuffer --> channel 常见的 Channel 有 FileChannel DatagramChannel SocketChannel ServerSocketChannel buffer 则用来缓冲读写数据,常见的 buffer 有 ByteBuffer MappedByteBuffer DirectByteBuffer HeapByteBuffer ShortBuffer IntBuffer LongBuff...
Semaphore详解
Created2025-12-24
本文我们来讨论Semaphore的用法与原理。如果有学习过之前讨论过的[[CountDownLatch详解|CountDownLatch]]、[[CyclicBarrier详解|CyclicBarrier]]的内容,那么本文的阅读难度会非常低。接下来将从用法和源码两个方面来进行讨论。 1. 用法我们可以将Semaphore理解为一个资源池,共有n个许可证,每个线程要执行指定操作时,去获取许可证,如果获取不到许可证,则阻塞。拿到许可证执行完操作后需要及时地释放(归还)许可证。如JavaDoc中的代码: 123456789101112131415161718192021222324252627282930313233343536373839404142class Pool { private static final int MAX_AVAILABLE = 100; private final Semaphore available = new Semaphore(MAX_AVAILABLE, true); public Object getIte...
Endtoend Encrypted Traffic Classification with One dimensional Convolution Neural Networks
Created2025-12-24
此篇方法是第一个将端到端的方法应用到加密流量分类领域,使用数据集ISCX-VPN-NonVPN-2016数据集进行研究。 1、概念介绍1.1 流量加密技术依据ISO/OSI层的不同,加密技术可以分为 应用层加密:应用程序在应用层实现自己的协议以实现数据的安全传输(如BitTorrent或Skype),在一些论文中也称为常规加密。 表示层加密 网络层加密:如IPSec加密协议 1.2 常见加密协议 IPSec协议:网络层加密协议。分为传输与隧道两种模式 传输模式:在IP报头和高层协议报头中插入一个IPSec报头,该模式不会改变IP报头中的目的地址,源IP地址也保持明文状态。 隧道模式:报文的源IP地址以及数据被封装成一个新的IP报文,并在内部和外部报头之间插入一个IPSec报头,原来的IP地址作为需要进行安全业务处理的一部分来提供安全保护,并且该模式下,可以对整个IP报文进行加密操作,常用来实现虚拟专用网VPN。 SSL/TLS协议:传输层协议。对于TLS,简单地说,是在TCP层之上再封装了SSL层。安全套接层协议 SSL 提供应用层和传输层之间的数...
ThreadLocal详解
Created2025-12-24
在多线程环境下,解决线程安全问题的方案主要分三个方案:互斥同步(如Syncrhonize)、非阻塞同步(如CAS)、线程封闭(局部变量、ThreadLocal)。本文将讨论其中的ThreadLocal的实现原理。 1. ThreadLocal是什么ThreadLocal是一个线程级别的变量,主要用于多线程环境下,无需线程间共享的变量。当每个线程都维护属于自己线程的变量,线程间是隔离的,那么也就彻底消除了线程间的竞争,消除了线程安全问题。 ThreadLocal的使用方法很简单,如下: 1234567891011121314151617public static void main(String[] args) throws InterruptedException { ThreadLocal<Integer> threadLocal = new ThreadLocal<>(); ExecutorService service = Executors.newSingleThreadExecutor(); s...
Windows下scoop的安装与配置
Created2025-12-24
tags: 软件配置/scoop windows/scoop1. scoop安装条件 Windows 7 以上 64位系统 powershell 3 以上 查看powershell版本: 1$PSVersionTable.PSVersion 2. 安装2.1 设置环境变量123$env:SCOOP='D:\Scoop'[Environment]::SetEnvironmentVariable('SCOOP',$env:SCOOP,'User') 此步骤非必需,若无此步骤,scoop文件夹以及未来安装的软件都会放在C盘。因此建议自定义安装路径。 2.2 安装命令123456789# 脚本执行策略更改Set-ExecutionPolicy RemoteSigned -scope CurrentUser# 输入Y或A,同意Y# 执行安装命令iex (new-object net.webclient).downloadstring('https://get.scoop.sh'...
Windows下终端的美化——oh my posh
Created2025-12-24
tags: 软件配置/oh-my-posh windows/oh-my-posh1. 前言在Windows下,实现对powershell的美化,一般都使用oh-my-posh实现,类似于Linux和Mac下[[安装oh-my-zsh]]。 2. 安装根据个人习惯,本安装教程为使用scoop安装。 1scoop install oh-my-posh 或者 1scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json 若未安装scoop,请移步 [[Windows下scoop的安装与配置]]。 3. 激活 oh-my-posh可以通过 $PROFILE 来获取 powershell 配置文件所在的位置。因此可以编辑此配置文件以激活 oh-my-posh。 1notepad $PROFILE 注意:当以上语句报错时,说明不存在此配置文件,可以通过一下命令创建: 1New-Item -Path $PROFILE -...
1234
avatar
LittleY
Articles
39
Tags
0
Categories
0
Follow Me
Announcement
欢迎光临
Recent Posts
CountDownLatch详解2025-12-24
Deep Packet A Novel Approach For Encrypted Traffic Classification Using Deep Learning2025-12-24
CyclicBarrier详解2025-12-24
InnoDB中MVCC的实现原理2025-12-24
Git常用命令2025-12-24
Archives
  • December 2025 39
© 2025 By LittleY
Search
Loading Database