java第一性 架构 原理

看完这篇,还不懂JAVA内存模型(JMM)算我输

欢迎关注专栏【JAVA并发】 前言 开篇一个例子,我看看都有谁会?如果不会的,或者不知道原理的,还是老老实实看完这篇文章吧。 @Slf4j(topic = "c.VolatileTest") public class VolatileTest { static boolean run = true; ......
模型 内存 JAVA JMM

JAVA中生成随机数Random VS ThreadLocalRandom性能比较

前言 大家项目中如果有生成随机数的需求,我想大多都会选择使用Random来实现,它内部使用了CAS来实现。 实际上,JDK1.7之后,提供了另外一个生成随机数的类ThreadLocalRandom,那么他们二者之间的性能是怎么样的呢? Random的使用 Random类是JDK提供的生成随机数的类, ......

.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构一)--学习笔记

目录 为什么我们用 Orleans Dapr VS Orleans Actor 模型 Orleans 的核心概念 为什么我们用 Orleans 分布式系统开发、测试的难度(服务发现、通信) 运维的复杂度(伸缩性与可靠性的保障) actor 拥有全局唯一身份 自动伸缩功能 Dapr VS Orlean ......
架构 分布式 Storming 笔记 Actor

轻量级的架构决策记录机制

作者:倪新明 ADR是一种性价比非常高的架构决策文档化实践,团队引入和实践成本很低,却能为团队带来极大收益! 1 团队研发面临的问题 不论是在传统的IT行业,还是互联网行业,研发团队在架构决策层面或多或少的都会面临以下问题或挑战: •新成员加入团队,对系统现有的架构决策可能会盲目遵守,只知其然,不知 ......
轻量 轻量级 架构 机制

Dubbo架构设计与源码解析(三)责任链模式

作者:周可强 一、责任链模式简介 1、责任链模式定义 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 ......
架构 源码 模式 责任 Dubbo

Vue 响应式原理模拟以及最小版本的 Vue的模拟

在模拟最小的vue之前,先复习一下,发布订阅模式和观察者模式 对两种模式有了了解之后,对Vue2.0和Vue3.0的数据响应式核心原理 1.Vue2.0和Vue3.0的数据响应式核心原理 (1). Vue2.0是采用Object.defineProperty的方式,对数据进行get,set方法设置的 ......
Vue 原理 版本

Java多线程详解(通俗易懂)

一、线程简介 1. 什么是进程? 电脑中会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。例如图中的微信、酷狗音乐、电脑管家等等。 2. 什么是线程? 进程想要执行任务就需要依赖线程。换句话说,就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。 补充:Jav ......
易懂 线程 Java

Java程序员除了做增删改查还能干嘛?

就以Java后端开发为例,说说不同级别程序员干的事情。 1 初级开发,大概是有3年Java开发经验。 22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进好公司或互联网大厂,薪资能更高。初级开发干的活一般是能做各种增删改查业务,遇到简单问题,比如空指针之类的,能通过看日志解决 ......
程序员 程序 Java

说说真实Java项目的开发流程,以及面试前的项目准备说辞

介绍项目是必不可少的Java面试环节,求职者需要借此证明自己真实Java项目的经验,如果再做的好的话,需要借此展开自己的亮点说辞。 不过之前如果只有学习项目经验,比如是自己跑通一个项目,或者是在培训班里通过一个Spring Boot项目入门Java,那么这些学习项目的开发流程其实和公司里真实Java ......
项目 说辞 流程 Java

Java 中经常被提到的 SPI 到底是什么?

layout: post categories: Java title: Java 中经常被提到的 SPI 到底是什么? tagline: by 子悠 tags: 子悠 Java 程序员在日常工作中经常会听到 SPI,而且很多框架都使用了 SPI 的技术,那么问题来了,到底什么是 SPI 呢?今天阿 ......
Java SPI

Java 中经常被提到的 SPI 到底是什么?

Java 程序员在日常工作中经常会听到 SPI,而且很多框架都使用了 SPI 的技术,那么问题来了,到底什么是 SPI 呢?今天阿粉就带大家好好了解一下 SPI。 SPI 概念 SPI 全称是 Service Provider Interface,是一种 JDK 内置的动态加载实现扩展点的机制,通过 ......
Java SPI

Java 中你绝对没用过的一个关键字?

layout: post categories: Java title: Java 中你绝对没用过的一个关键字? tagline: by 子悠 tags: 子悠 前面的文章给大家介绍了如何自定义一个不可变类,没看过的小伙伴建议去看一下,这节课给大家介绍一个 Java 中的一个关键字 Record,那 ......
关键字 关键 Java

Java 中九种 Map 的遍历方式,你一般用的是哪种呢?

日常工作中 Map 绝对是我们 Java 程序员高频使用的一种数据结构,那 Map 都有哪些遍历方式呢?这篇文章阿粉就带大家看一下,看看你经常使用的是哪一种。 通过 entrySet 来遍历 1、通过 for 和 map.entrySet() 来遍历 第一种方式是采用 for 和 Map.Entry ......
方式 Java Map

Java Web中requset,session,application 的作用域及区别

三者概述 requset概述: request是表示一个请求,只要发出一个请求就会创建一个request 用处:常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。 session概述: 服务器会为每个会话创建一个session对象,所以session中的数据可供当前会话中所有s ......
application 作用 requset session Java

对Java Web中WEB-INF目录的理解以及访问方法

事情发生 在上个暑假第一次写Java web大项目的时候,对于目录管理及分配没有任何经验,就想着清晰明了。 后端servlet是用maven进行构建的,所以在目录上没有碰到什么大问题。 用idea进行Java Web项目构建的时候,会自动生成这样一个前端目录 当时对拦截器以及安全目录什么的完全没有概 ......
WEB-INF 目录 方法 Java INF

Java阻塞队列中的异类,SynchronousQueue底层实现原理剖析

上篇文章谈到BlockingQueue的使用场景,并重点分析了ArrayBlockingQueue的实现原理,了解到ArrayBlockingQueue底层是基于数组实现的阻塞队列。 但是BlockingQueue的实现类中,有一种阻塞队列比较特殊,就是SynchronousQueue(同步移交队... ......
队列 异类 SynchronousQueue 底层 原理

redux原理分享

概述 一个状态管理工具 Store:保存数据的地方,你可以把它看成一个容器,整个应用只能有一个 Store。 State:包含所有数据,如果想得到某个时点的数据,就要对 Store 生成快照,这种时点的数据集合,就叫做 State。 Action:Action 就是 View 发出的通知,表示 St ......
原理 redux

Kafka事务「原理剖析」

一、事务概览 提起事务,我们第一印象可能就是ACID,需要满足原子性、一致性、事务隔离级别等概念,那kafka的事务能做到什么程度呢?我们首先看一下如何使用事务 Producer端代码如下 KafkaProducer<String, String> producer = new KafkaProdu ......
原理 事务 Kafka

数据结构高阶--二叉搜索树(原理+实现)

二叉搜索树 概念 二叉搜索树又称为二叉排序树,因为这棵树的中序遍历是有序的。二叉搜索树总结起来有以下几个性质: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于于根节点的值 它的左右子树都是二叉搜索树 这棵树中没有重复的元素 举个例子: 二 ......
数据结构 高阶 原理 结构 数据

Java实现递归查询树结构

我们在实际开发中,肯定会用到树结构,如部门树、菜单树等等。Java后台利用递归思路进行构建树形结构数据,返回给前端,能以下拉菜单等形式进行展示。今天,咱们就来说说怎么样将List集合转换成TreeList。 一、jar依赖 为了简化代码,引入Lombok的Jar包,可省略实体类set()、get() ......
结构 Java

(Java)设计模式:行为型

前言 此篇博文内容续接的是 UML建模语言、设计原则、创建型设计模式 的内容,有兴趣的可以点前面的链接去看一下 3.2、行为型 这类设计模式是专门用于:对象间的高效沟通和职责委派 * 3.2.1、chain of responsibility 责任链模式 定义:责任链模式又名职责链模式,指的是:对某 ......
设计模式 行为 模式 Java

(Java)设计模式:创建型

前言 这篇内容是从另一篇:UML建模、设计原则 中分离出来的,原本这个创建型设计模式是和其放在一起的 但是:把这篇创建型设计模式放在一起让我贼别扭,看起来贼不舒服,越看念头越不通达,导致老衲躺在床上脑海中冒出来时都睡不着了 因此:最后实在受不了了,还是将其抽离出来 3、设计模式 分类: 注:使用设计 ......
设计模式 模式 Java

Java开发学习(四十五)----MyBatisPlus查询语句之映射匹配兼容性

1、映射匹配兼容性 我们已经能从表中查询出数据,并将数据封装到模型类中,这整个过程涉及到一张表和一个模型类: 之所以数据能够成功的从表中获取并封装到模型对象中,原因是表的字段列名和模型类的属性名一样。那么问题就来了: 问题1:表字段与编码属性设计不同步 当表的列名和模型类的属性名发生不一致,就会导致 ......
兼容性 MyBatisPlus 语句 Java

mysql-DuplicateUpdate和java的threadpool的"死锁"

大家千万不要被文章的标题给迷惑了,他两在本篇文章是没有关系的, 今天给大家讲讲最近2个有意思的issue,分享一下我学到的 mysql DuplicateUpdate的用法要注意的点 java的threadpool使用不当会造成“死锁”问题 mysql DuplicateUpdate的用法要注意的点 ......

Java开发学习(四十六)----MyBatisPlus新增语句之id生成策略控制及其简化配置

在前面有一篇博客:Java开发学习(四十一) MyBatisPlus标准数据层(增删查改分页)开发,我们在新增的时候留了一个问题,就是新增成功后,主键ID是一个很长串的内容。 我们更想要的是按照数据库表字段进行自增长,在解决这个问题之前,我们先来分析下ID该如何选择: 不同的表应用不同的id生成策略 ......
MyBatisPlus 语句 策略 Java

新零售SaaS架构:多租户系统架构设计

传统大企业更喜欢私有化部署、个性化交付的传统模式,因为他们需要更强的管控和更高的安全性。 然而,中小企业付费能力有限,需求往往也更加标准化,所以更喜欢价格更低的、订购更简单的SaaS产品。 为了满足不同客户的需求,多租户的底层架构设计是至关重要的。 ......
架构 租户 系统 SaaS

【深入浅出 Yarn 架构与实现】4-1 ResourceManager 功能概述

前面几篇文章对 Yarn 基本架构、程序基础库、应用设计方法等进行了介绍。之后几篇将开始对 Yarn 核心组件进行剖析。 ResourceManager(RM)是 Yarn 的核心管理服务,负责集群管理、任务调度、状态机管理等,本篇将对 RM 总体架构进行介绍。 ......

【RocketMQ】主从同步实现原理

主从同步的实现逻辑主要在HAService中,在DefaultMessageStore的构造函数中,对HAService进行了实例化,并在start方法中,启动了HAService: public class DefaultMessageStore implements MessageStore { ......
主从 RocketMQ 原理

【Java并发入门】02 Java内存模型:看Java如何解决可见性和有序性问题

如何解决其中的可见性和有序性导致的问题,这也就引出来了今天的主角——Java 内存模型。 一、什么是 Java 内存模型? 导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性、有序性最直接的办法就是禁用缓存和编译优化,但这样虽然解决了问题,但也导致带来的性能优化都没了。 因此,解决方案 ......
有序性 Java 模型 内存 问题

Java锁的逻辑(结合对象头和ObjectMonitor)

我们都知道在Java编程中多线程的同步使用synchronized关键字来标识,那么这个关键字在JVM底层到底是如何实现的呢。 我们先来思考一下如果我们自己实现的一个锁该怎么做呢: 首先肯定要有个标记记录对象是否已经上锁,执行同步代码之前判断这个标志,如果对象已经上锁线程就阻塞等待锁的释放。 其次要 ......
ObjectMonitor 逻辑 对象 Java