随笔分类 -  JAVA

摘要:本文目录 - 说在前面 - 1、什么是阻塞队列? - 2、主要并发队列关系图 - 3、阻塞队列和 List、Set 的区别是什么? - 4、阻塞队列和普通Queue 队列的区别是什么? - 5、阻塞队列的作用 - 6、阻塞队列的功能 - 7、阻塞队列的核心方法 - 7.1 take 方法 - 7.2 阅读全文
posted @ 2023-09-08 10:33 zydbky 阅读(67) 评论(0) 推荐(0)
摘要:基本概念 在 Java 中通常有两种线程:守护线程(Daemon Thread)和用户线程(User Thread) 守护线程:是一种特殊的线程,在后台默默地完成一些系统性的服务,比如垃圾回收线程、JIT 线程都是守护线程 用户线程:可以理解为是系统的工作线程,它会完成这个程序需要完成的业务操作。如 阅读全文
posted @ 2023-08-25 17:26 zydbky 阅读(240) 评论(0) 推荐(0)
摘要:前言 在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、IO复用、信号驱动IO以及异步IO。本篇文章主要介绍IO的基本概念以及阻塞IO、非阻塞IO、IO复用三种模型,供大家参考学习。 一、什么是IO 计算机视角理解IO: 对于计算机而言,任何涉及到计算机核心(CPU和内存 阅读全文
posted @ 2023-06-02 11:31 zydbky 阅读(109) 评论(0) 推荐(0)
摘要:在 Java 中,任何对象都有生命周期,Servlet 也不例外。Servlet 的生命周期如图 1 所示。 图 1 Servlet生命周期 图 1 描述了 Servlet 的生命周期。按照功能的不同,大致可以将 Servlet 的生命周期分为三个阶段,分别是初始化阶段、运行阶段和销毁阶段。 1)初 阅读全文
posted @ 2022-06-10 15:41 zydbky 阅读(1264) 评论(0) 推荐(0)
摘要:学习之前,我们先来了解一下IO模型: ①同步阻塞IO(Blocking IO):即传统的IO模型。 ②同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。 阅读全文
posted @ 2022-06-10 13:48 zydbky 阅读(368) 评论(0) 推荐(0)
摘要:前言 在移动互联网,分布式,微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前分离分离方式 一般系统的大致整体架构图如下: 需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太low了,什么网关啊,缓存啊,消息中间件啊,都没有。因为主要介绍的是API接口,所以我们聚焦点,其他的模块小伙伴们 阅读全文
posted @ 2022-05-18 13:21 zydbky 阅读(332) 评论(0) 推荐(0)
摘要:Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 泛型带来的好处 在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的 阅读全文
posted @ 2022-05-16 16:00 zydbky 阅读(163) 评论(0) 推荐(0)
摘要:哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。 本文会对java集合框架中的对应实现HashMap的实现原理进 阅读全文
posted @ 2022-04-28 10:41 zydbky 阅读(88) 评论(0) 推荐(0)
摘要:在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。 介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的 阅读全文
posted @ 2022-04-15 10:17 zydbky 阅读(183) 评论(0) 推荐(0)
摘要:我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢? ConcurrentHashMap的简介 我想有基础的同学知道在jdk1.7中是采用Segment 阅读全文
posted @ 2022-04-12 19:40 zydbky 阅读(491) 评论(0) 推荐(0)
摘要:简介 最近看到一篇文章,关于一道面试题,先看一下题目,如下: public static void main(String[] args) { Integer a = 1; Integer b = 2; System.out.printf("a = %s, b = %s\n", a, b); swa 阅读全文
posted @ 2022-03-29 18:00 zydbky 阅读(66) 评论(0) 推荐(0)
摘要:一、finally一定会执行吗? 先给答案:肯定不是。 我们可以看两种情况: 1.在执行try块之前直接return,我们发现finally块是不会执行的 public class TryCatchTest { private static int total() { int i = 11; if  阅读全文
posted @ 2022-03-29 16:45 zydbky 阅读(283) 评论(0) 推荐(0)
摘要:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享 阅读全文
posted @ 2022-03-29 16:35 zydbky 阅读(361) 评论(0) 推荐(0)
摘要:1.什么是队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 队列其实就是跟平时排队一样,按照顺序来,先排队的先买到东西,后排队的后 阅读全文
posted @ 2021-12-02 17:57 zydbky 阅读(48) 评论(0) 推荐(0)
摘要:前言 从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一大亮点;下面从I/O的几个概念开始,进而在分析零拷贝。 I/O概念 1.缓冲区 缓冲区是所有I/O的基础,I/O讲的无非 阅读全文
posted @ 2021-11-26 17:28 zydbky 阅读(75) 评论(0) 推荐(0)
摘要:首先,我们编写好的Java代码,经过编译变成.class文件,然后类加载器把.class字节码文件加载到JVM中,接着执行我们的代码,最后将类卸载出JVM。而从类加载到虚拟机到卸载出虚拟机的这一整个生命周期总共可以分为7个步骤,分别为加载、验证、准备、解析、初始化、使用和卸载,其中验证、准备和解析又 阅读全文
posted @ 2021-11-11 10:33 zydbky 阅读(270) 评论(0) 推荐(0)