摘要: AQS AQS是JUC学习的基石,是JUC中许多锁的底层实现机制,我们今天从ReentrantLock出发来深入源码解读AQS的设计。 AQS底层 AQS的几个重要属性: //阻塞队列的头 private transient volatile Node head; //阻塞队列的尾 private 阅读全文
posted @ 2024-12-09 17:42 蜜獾互联网 阅读(83) 评论(0) 推荐(0)
摘要: 引言 今天和大家分享一下一个在 Java 开发中非常重要的概念—— SPI(Service Provider Interface)。SPI 直译叫做服务提供者接口,是一种用于动态加载服务的机制。它不仅能够帮助我们构建更加灵活和可扩展的应用程序,还能让我们的代码更加简洁和易于维护。希望通过本文,大家能 阅读全文
posted @ 2024-12-09 17:40 蜜獾互联网 阅读(256) 评论(0) 推荐(0)
摘要: web 应用常见安全漏洞一览 1. SQL 注入 SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命令。 SQL 注入漏洞属于后端的范畴,但前端也可做体验上的优化。 原因 当使用外部不可信任的数据作为参数进行数据库的增、删、改、查时,如果未对外部数据进行过 阅读全文
posted @ 2024-12-09 17:39 蜜獾互联网 阅读(160) 评论(0) 推荐(0)
摘要: Netty 的 IO 处理循环 在 Netty 中, 一个 EventLoop 需要负责两个工作, 第一个是作为 IO 线程, 负责相应的 IO 操作; 第二个是作为任务线程, 执行 taskQueue 中的任务. 接下来我们先从 IO 操纵方面入手, 看一下 TCP 数据是如何从 Java NIO 阅读全文
posted @ 2024-12-09 17:38 蜜獾互联网 阅读(80) 评论(0) 推荐(0)
摘要: 目录 源码之下无秘密 ── 做最好的 Netty 源码分析教程 Netty 源码分析之 番外篇 Java NIO 的前生今世 Java NIO 的前生今世 之一 简介 Java NIO 的前生今世 之二 NIO Channel 小结 Java NIO 的前生今世 之三 NIO Buffer 详解 J 阅读全文
posted @ 2024-12-09 17:37 蜜獾互联网 阅读(93) 评论(0) 推荐(0)
摘要: 目录 源码之下无秘密 ── 做最好的 Netty 源码分析教程 Netty 源码分析之 番外篇 Java NIO 的前生今世 Java NIO 的前生今世 之一 简介 Java NIO 的前生今世 之二 NIO Channel 小结 Java NIO 的前生今世 之三 NIO Buffer 详解 J 阅读全文
posted @ 2024-12-09 17:37 蜜獾互联网 阅读(44) 评论(0) 推荐(0)
摘要: 目录 源码之下无秘密 ── 做最好的 Netty 源码分析教程 Netty 源码分析之 番外篇 Java NIO 的前生今世 Java NIO 的前生今世 之一 简介 Java NIO 的前生今世 之二 NIO Channel 小结 Java NIO 的前生今世 之三 NIO Buffer 详解 J 阅读全文
posted @ 2024-12-09 17:36 蜜獾互联网 阅读(51) 评论(0) 推荐(0)
摘要: 录 Netty 源码分析之 番外篇 Java NIO 的前生今世 Java NIO 的前生今世 之一 简介 Java NIO 的前生今世 之二 NIO Channel 小结 Java NIO 的前生今世 之三 NIO Buffer 详解 Java NIO 的前生今世 之四 NIO Selector 阅读全文
posted @ 2024-12-09 17:36 蜜獾互联网 阅读(20) 评论(0) 推荐(0)
摘要: 永顺 2016-10-26 阅读 20 分钟 41 目录 Netty 源码分析之 番外篇 Java NIO 的前生今世 Java NIO 的前生今世 之一 简介 Java NIO 的前生今世 之二 NIO Channel 小结 Java NIO 的前生今世 之三 NIO Buffer 详解 Java 阅读全文
posted @ 2024-12-09 17:35 蜜獾互联网 阅读(17) 评论(0) 推荐(0)
摘要: 目录 此文章属于 源码之下无秘密 ── 做最好的 Netty 源码分析教程 系列文章之一. 代码下载 首先到 Netty 的 Github 仓库 中, 点击右边绿色的按钮: 拷贝 git 地址: git@github.com:netty/netty.git然后在终端中输入如下命令, 克隆 Netty 阅读全文
posted @ 2024-12-09 17:34 蜜獾互联网 阅读(70) 评论(0) 推荐(0)
摘要: Selector Selector 允许一个单一的线程来操作多个 Channel. 如果我们的应用程序中使用了多个 Channel, 那么使用 Selector 很方便的实现这样的目的, 但是因为在一个线程中使用了多个 Channel, 因此也会造成了每个 Channel 传输效率的降低.使用 Se 阅读全文
posted @ 2024-12-09 17:33 蜜獾互联网 阅读(140) 评论(0) 推荐(0)
摘要: Java NIO Buffer 当我们需要与 NIO Channel 进行交互时, 我们就需要使用到 NIO Buffer, 即数据从 Buffer读取到 Channel 中, 并且从 Channel 中写入到 Buffer 中.实际上, 一个 Buffer 其实就是一块内存区域, 我们可以在这个内 阅读全文
posted @ 2024-12-09 17:33 蜜獾互联网 阅读(68) 评论(0) 推荐(0)
摘要: Java NIO Channel 通常来说, 所有的 NIO 的 I/O 操作都是从 Channel 开始的. 一个 channel 类似于一个 stream.java Stream 和 NIO Channel 对比 我们可以在同一个 Channel 中执行读和写操作, 然而同一个 Stream 仅 阅读全文
posted @ 2024-12-09 17:32 蜜獾互联网 阅读(32) 评论(0) 推荐(0)
摘要: 简介 Java NIO 是由 Java 1.4 引进的异步 IO.Java NIO 由以下几个核心部分组成: Channel Buffer Selector NIO 和 IO 的对比 IO 和 NIO 的区别主要体现在三个方面: IO 基于流(Stream oriented), 而 NIO 基于 B 阅读全文
posted @ 2024-12-09 17:31 蜜獾互联网 阅读(26) 评论(0) 推荐(0)
摘要: 前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两天?)。 先简单说下本次的主题,由于我最近做的是物联网相关的开发工作,其中就不免会遇到和设备的交互。 最主要的工作就是要 阅读全文
posted @ 2024-12-09 17:30 蜜獾互联网 阅读(186) 评论(0) 推荐(0)
摘要: 前言 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷。如何才能更好地保护我们的数据?本文主要侧重于分析几种常见的攻击的类型以及防御的方法。 想阅读更多优质原创文章请猛戳GitHub博客 一、XSS XSS (Cross-Site Scripting),跨站脚本攻击, 阅读全文
posted @ 2024-12-09 17:29 蜜獾互联网 阅读(242) 评论(0) 推荐(0)
摘要: 前言 从今天开始进入Java基础的复习,可能一个星期会有一篇的<十道简单算法>,我写博文的未必都是正确的~如果有写错的地方请大家多多包涵并指正~ 今天要复习的是泛型,泛型在Java中也是个很重要的知识点,本文主要讲解基础的概念,并不是高深的知识,如果基础好的同学可以当复习看看~ 一、什么是泛型? J 阅读全文
posted @ 2024-12-09 17:28 蜜獾互联网 阅读(17) 评论(0) 推荐(0)
摘要: 最近看到网上流传着,各种面试经验及面试题,往往都是一大堆技术题目贴上去,而没有答案。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富 阅读全文
posted @ 2024-12-09 17:27 蜜獾互联网 阅读(695) 评论(0) 推荐(0)
摘要: 之前我在 github 上整理了来一份:free-programming-books-zh_CN(免费的计算机编程类中文书籍)。 截至目前为止,已经有 90 多人发了 300 多个 Pull Requests 和 200 多个 issues,从最初的几十本书到现在的近 500 本书。 欢迎大家提 P 阅读全文
posted @ 2024-12-09 17:25 蜜獾互联网 阅读(103) 评论(0) 推荐(0)
摘要: 干货 一.校验数字 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2 阅读全文
posted @ 2024-12-09 17:24 蜜獾互联网 阅读(40) 评论(0) 推荐(0)