首页
学习
活动
专区
工具
TVP
发布

IT当时语_青山师_JAVA技术栈

专栏作者
329
文章
186552
阅读量
24
订阅数
微服务服务间调用组件Feign使用介绍、原理、优化技巧
Feign是一个声明式的Web Service客户端。它让微服务之间的调用变得更简单。Feign具有可插拔式的注解支持,包括Feign 注解和JAX-RS注解。Feign还支持可插拔的编码器和解码器。Spring Cloud增加了对Spring MVC注解的支持,并且也支持Spring WebFlux。
青山师
2023-10-17
2.8K0
微服务负载均衡器Ribbon介绍、使用以及原理和源码理解
Ribbon是Netflix开源的客户端负载均衡器,它可以很好的控制HTTP和TCP客户端的行为。Ribbon支持配置客户端添加重试和超时等功能,旨在使客户端更加强健。Ribbon在分布式系统中提供一系列完整的服务,如:
青山师
2023-10-17
3760
JVM问题排查和垃圾回收机制
GC Roots是垃圾回收器的起点,直接或间接地与GC Roots相关的对象就不会被回收。主要的GC Roots有:
青山师
2023-10-17
1590
80个JAVA8函数式编程中关于集合的操作实例(持续更新增加实例)
map - 将集合中的每个元素映射为另一个元素 示例:将数字集合中的每个元素平方并返回平方后的集合。
青山师
2023-05-05
9240
线程池的介绍、原理、监控运维、框架使用场景案例
线程池是一种线程复用的技术,它可以有效地控制线程的数量,处理过程中将任务添加到队列,然后在线程创建后启动这些任务。主要作用有:
青山师
2023-05-05
2090
synchronized的偏向、轻量、重量级锁
Synchronized实现同步的方式有三种:偏向锁、轻量级锁、重量级锁。本文会从理论和代码实践两方面阐述三种锁的实现细节和原理。
青山师
2023-05-05
1850
JAVA并发万字长文从ReentrantLock到juc框架
ReentrantLock 是 Java 中的可重入锁,它实现了 Lock 接口,与 synchronized 相比,ReentrantLock提供了更强大和灵活的锁机制。
青山师
2023-05-05
1510
volatile关键字原理的使用介绍和底层原理解析和使用实例
volatile 关键字常用在 DCL(Double Check Lock)单例模式中:
青山师
2023-05-05
830
ThreadLocal的使用介绍和底层原理解析和开源框架的使用实例
ThreadLocal是一个线程内部的数据存储类,它可以为每个线程提供独立的变量副本,不同线程间的变量无法相互访问和修改。这避免了每个线程都要维护一套独立变量的麻烦,并且也减少了线程之间不必要的数据争用。ThreadLocal适用于这样的场景:每个线程需要有自己单独的实例,而不是共享实例。例如,在 web 应用中,每个请求被一个新的线程处理,每个线程需要有自己的变量实例。
青山师
2023-05-05
3130
ConcurrentHashMap的使用介绍和底层原理解析和开源框架的使用实例
ConcurrentHashMap是JDK1.5提供的线程安全的HashMap,它允许多个线程并发访问哈希表,并发修改map中的数据而不会产生死锁。ConcurrentHashMap适用于高并发的环境下,可以替代synchronized实现的同步HashMap。ConcurrentHashMap的并发度很高,吞吐量也很高。
青山师
2023-05-05
980
【面试长文】HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异
HashMap的数据结构采用“链表散列”结构,即一个链表和一个数组,数组称为hash table,链表成为链表数组。HashMap通过key的hashCode来计算index,然后将key-value对存放在hash table的对应位置。如果出现hash冲突,就将数据存放在链表中。HashMap主要由Node[] table、size和loadFactor三个字段组成。
青山师
2023-05-05
1680
CopyOnWriteArrayList 的底层原理与多线程注意事项
CopyOnWriteArrayList 是一个线程安全的 List 集合,它采用了读写分离的思想,即在写操作时,先复制当前数组,然后在新数组上进行写操作,最后通过指向新数组的方式完成对象的引用。由于读操作无需加锁,因此读写操作并不冲突。
青山师
2023-05-05
1210
Java集合框架与ArrayList、LinkedList的区别
在Java中,集合框架是非常重要的一部分。集合框架提供了各种数据结构和算法,可以方便地存储和操作数据。在集合框架中,ArrayList和LinkedList是两个最基本的数据结构。本篇博客将会介绍Java集合框架和ArrayList、LinkedList的区别,以及如何在Java中使用这些类型。
青山师
2023-05-05
2350
Java中的String、StringBuffer和StringBuilder
在 Java 中,字符串是最常用的数据类型之一。 Java 中有三种处理字符串的方式:String、StringBuffer 和 StringBuilder。它们都被设计为处理字符串操作,但是它们之间有所不同。本篇博客将会介绍 String、StringBuffer 和 StringBuilder 的区别以及如何在 Java 中使用这些类型。
青山师
2023-05-05
1120
消息队列如何保证消息可靠性传输
随着互联网的发展,消息队列已经成为了系统设计中不可或缺的一部分。它可以实现系统之间的异步通信和解耦,提高整体系统的可靠性和性能。但是,由于网络的不可靠性和系统崩溃等原因,消息在传输过程中可能会出现丢失和重复等问题。为了解决这些问题,消息队列需要采用一系列机制来保证消息的可靠性传输。
青山师
2023-05-05
3370
RocketMQ 底层实现原理
RocketMQ 是一款高性能、可扩展的分布式消息中间件,目前已经成为各大互联网公司的主流解决方案之一。本文将介绍 RocketMQ 的底层实现原理,以及如何使用 JAVA 语言对其进行操作和实践。
青山师
2023-05-05
4190
kafka的push、pull分别有什么优缺点
Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,广泛应用于各大互联网公司的消息系统中。在 Kafka 中,生产者使用 push 模式将消息推送给 Kafka 集群,而消费者则使用 pull 模式从 Kafka 集群中拉取消息。本文对 Kafka 的 push 和 pull 两种模式进行比较,分析其优缺点。
青山师
2023-05-05
4970
InnoDB如何实现事务、undo log、redo log、binlog
InnoDB是MySQL的默认存储引擎,它使用多版本并发控制(MVCC)和锁机制来实现事务。
青山师
2023-05-05
1610
B树、B+树的区别及MySQL为何选择B+树
B树和B+树都是一种多路搜索树,常用于数据库和文件系统中进行索引操作。在介绍B树和B+树的区别之前,先来了解一下它们的定义。
青山师
2023-05-05
5000
MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别
MySQL是目前使用最广泛的关系型数据库,而存储引擎是MySQL中一个非常重要的概念。存储引擎决定了MySQL如何存储和处理数据,对于系统性能和功能的影响非常大。本文将对MySQL常见的几种存储引擎进行介绍和比较,帮助读者更好地选择适合自己应用场景的存储引擎。
青山师
2023-05-05
3770
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档