avatar
Articles
39
Tags
120
Categories
22
Home
Archives
LogoLittleYのBlog
Search
Home
Archives

LittleYのBlog

认识AQS
Created2024-12-24|后端开发Java并发
在并发编程中,AQS(AbstractQueuedSynchronizer)是一个非常重要的类,JUC中很多工具都是基于AQS进行开发。其设计和编码思路都极其精妙。本文的目的是先对AQS进行一个大致的介绍,具体的实现细节将在后续的各种同步组件的实现中进行详细解释以体现出其设计思想的巧妙之处。 1. 动手实现一个锁为了认识AQS的功能,我们先自己动手实现一个非常简易的独占不可重入锁。代码如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051public class MyLock1 extends AbstractMyLock{ // 用于保存锁状态, 1表示有线程池有所,2表示锁空闲 private volatile int status; // 表示当前持有锁的线程 private volatile static Thread t = null; // Unsafe类的对象 private sta...
讨论几个Thread的常用API
Created2024-12-24|后端开发Java并发
本文针对Thread类中常用的API进行介绍。以下是一些常见的方法: 方法 功能 public void start() 启动⼀个新线程;Java虚拟机调⽤此线程的run()⽅法 public void run() 线程启动后调⽤该⽅法 public void setName(String name) 给当前线程取名字 public void getName() 获取当前线程的名字。默认⼦线程是Thread-索引,主线程是main public static Thread currentThread() 获取当前线程对象,代码在哪个线程中执⾏ public static native void yield() 提示线程调度器让出当前线程对 CPU的使⽤ public static void sleep(long time) 让当前线程休眠多少毫秒再继续执⾏ public final int getPriority() 返回此线程的优先级 public final void setPriority(int priority) 更改此线...
论文 Deep Learning for Encrypted Traffic Classification An Overview
Created2024-12-24|论文笔记深度学习
0、摘要  这是篇关于加密流量分类的综述,加密流量分类的入门之作,流量分类应用范围广泛,从isp的QoS提供和计费,到防火墙和入侵检测系统的安全应用。从最简单基于端口的、数据包检测到经典的机器学习方法,到由于深度学习的兴起,神经网络成为加密流量分类的主流。本文介绍了常用的深度学习方法及其在流量分类任务中的应用。然后讨论了开放的问题和它们的挑战。关键词:流量分类、深度学习、机器学习 1、介绍简要介绍了加密流量分类方法的发展演变,具体如下:1.1 基于端口(port)的流量分类 优点:简单 缺点:该方法的准确性一直在下降,因为较新的应用程序要么使用众所周知的端口号来掩盖其流量,要么不使用标准的注册端口号。 1.2 基于有效载荷或数据包检验(data packet inspection:DPI)原理是不同类型的网络流量之中有特定的字符流(也称之为指纹),只需要在数据包的任意位置匹配这些字符流,从而进行分类。 优点:简单快速,只需要检测网络流的前几个数据包。 缺点:方法仅适用于未加密的流量,且计算开销较大。 1.3 基于流量统计特征这些方法依赖于流量的统计或时间序列特性,能够处理...
运行时内存详解
Created2024-12-24|后端开发JVM
运行时数据区总体组成上节已经介绍过。接下来需要讨论的问题有两个: 有哪些数据区会出现内存溢出? JDK不同版本间运行时内存区域的实现有哪些变化? 1. 哪些数据区会内存溢出?先给出答案,会出现内存溢出(OOM)的区域有: 本地方法栈 虚拟机栈 ^6c721d 方法区 堆 ^947181 直接内存(准确来说,不属于JVM运行时数据区) 也就是说只有程序计数器不会出现内存溢出。 1.1 堆内存溢出也是最常见的内存溢出。指的是在堆上分配的对象空间超过了堆的最大大小,导致内存溢出。溢出时,会抛出OutOfMemoryError,并提示Java Heap Space导致,也就是常说的OOM。如下图所示: 可以使用 -Xmx 参数设置堆的最大大小,如:-Xmx500m,即代表设置堆的最大内存大小为500m。 1.2 栈内存溢出是第二常见的内存溢出情况。指的是所有栈帧的占用超过了栈空间的最大值。溢出后会抛出 StackOverflowError 。如下图所示: 栈空间的最大值可以使用 -Xss 进行设置,如 -Xss512k代表最大值为512k。 1.3 方法区内存溢出方法...
Windows下scoop的安装与配置
Created2024-12-24|工具使用
1. 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')## 或者iwr-useb get.scoop.sh|iex 由于墙的原因,...
Windows下终端的美化——oh-my-posh
Created2024-12-24|工具使用终端配置
1. 前言在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 -Type File -Force 此时,powershell 也可能会阻止本地脚本的运行。要解决这个问...
关于双亲委派
Created2024-04-15|后端开发JVM
要了解双亲委派,就需要先了解类加载器,可以参考[[类的生命周期及类加载器]]一文。 1. 双亲委派机制是什么?双亲委派机制指的是:当一个类加载器收到加载类的任务时,会向上查找查找是否加载过,再由顶向下进行加载。 即,当某个类加载器收到加载任务,如果自己没有加载过此类,则会向上委派加载任务给自己的父加载器,如此重复知道委托到启动类加载器,然后再尝试加载类,如果当前类加载器无法加载,则任务下发给自己的子类加载器。过程如下图: 举例说明假设现在用应用程序类加载器(Application ClassLoader)来加载当前项目classpath目录下的 Demo9.class文件。步骤如下: Application ClassLoader收到加载任务后,先查询自己是否加载过此类。若加载过,直接返回class对象即可。否则委托给Extension/Platform ClassLoader。 Extension/Platform ClassLoader收到后,查询是否加载过此类,若加载过,直接返回class对象,否则,委托给Bootstrap ClassLoader。...
NIO基础
Created2024-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 LongBuffer FloatBuffer DoubleBuffer CharBuffer 1.2 Se...
导入搜狗词库到IBus输入法
Created2024-01-17|工具使用Linux
1. 背景Linux中使用的是IBus输入法,虽然有Linux版本的搜狗输入法,但是由于搜狗输入法的安装过于复杂,且不如IBus稳定。但是由于IBus的联网联想功能延迟太大,又没有比较完善的基础词库,导致码字体验较差,因此可以将搜狗输入法的词库导入IBus。 2. 方案2.1 转换格式,直接导入 在搜狗输入法中, 点击 设置 -> 词库 -> 导出词库。得到bin格式的词库文件。 使用 深蓝词库转换工具,将 步骤1中的词库转换为 libPinyin 的格式。点击下载 然后点击 设置 -> 键盘 -> 中文 -> 首选项 -> 用户数据 -> 用户词典 -> 导入。 但是此方案还需要下载工具,且工具只支持Windows和MacOS。我没有使用此方案。 2.2 直接官方下载词库文件,使用脚本导入 进入搜狗拼音官网下载后缀为 scel 的词库文件。一键直达 使用以下脚本,直接运行即可。 脚本如下: 1234567891011121314151617181920212223242526272829303132333435363738...
1…34
avatar
LittleY
Articles
39
Tags
120
Categories
22
Follow Me
Announcement
欢迎光临
Recent Posts
Tmux常用命令与快捷键2025-12-28
CyclicBarrier详解2025-12-24
End-to-End Encrypted Traffic Classification with One-Dimensional Convolution Neural Networks2025-12-24
Git常用命令2025-12-24
Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning2025-12-24
Categories
  • JVM1
    • Java1
  • 后端开发21
    • JVM3
    • Java5
    • Java并发4
    • 并发编程7
    • 网络编程2
Tags
自动备份 元空间 关系网络 搜狗词库 机器学习 Mark Word ByteBuf 性能优化 深度学习 oh-my-zsh 垃圾回收 volatile 字节码 Change Buffer 多线程 JMM 类加载器 包管理器 双亲委派 端到端学习 操作系统 分代GC 软件安装 软件配置 隔离级别 面向对象 内存管理 PowerShell ByteBuffer Condition IBus 终端美化 G1 oh-my-posh ReentrantLock AQS 加密流量分类 CountDownLatch 网络编程 SAE
Archives
  • December 2025 24
  • December 2024 12
  • April 2024 1
  • January 2024 2
© 2025 By LittleY
Search
Loading Database