经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
Java相关:JavaJSPJFinalGroovySpringSpring BootServletScalaStruts2JUnit设计模式
 Java相关

一次生产环境OOM排查

一、背景 前几天下午飞书告警群里报起了java.lang.OutOfMemoryError: unable to create new native thread告警,看见后艾特了对应的项目负责人但是负责人说没时间,无奈自己亲自上阵。 二、事情经过 2.1 问题排查 从报错信息就可以看出是服务...[2024/3/4]

HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!

写在开头 在《耗时2天,写完HashMap》这篇文章中,我们提到关于HashMap线程不安全的问题,主要存在如下3点风险: 风险1: put的时候导致元素丢失;如两个线程同时put,且key值相同的情况下,后一个线程put操作覆盖了前一个线程的操作,导致前一个线程的元素丢失。 风险2: p...[2024/3/4]

从零开始学Spring Boot系列-集成MySQL

在Spring Boot中集成MySQL是为了让开发者能够轻松地与MySQL数据库进行交互。本篇文章将指导你如何在Spring Boot 3.2.3项目中使用Gradle来集成MySQL。在此之前,我们需要在Ubuntu 22.04上安装MySQL 8作为我们的数据库服务器。 安装MySQL8 ...[2024/3/4]

没想到,JDBC 驱动会偷偷修改 sql_mode 的会话值

最近碰到一个 case,值得分享一下。 现象就是一个 update 操作,在 mysql 客户端中执行提示 warning,但在 java 程序中执行却又报错。 问题重现 mysql> create table test.t1(id int&nb...[2024/3/4]

从零开始学Spring Boot系列-返回json数据

欢迎来到从零开始学Spring Boot的旅程!在Spring Boot中,返回JSON数据是很常见的需求,特别是当我们构建RESTful API时。我们对上一篇的Hello World进行简单的修改。 添加依赖 首先,确保你的build.gradle文件中已经包含了Spring Web...[2024/3/1]

新来个架构师,用48张图把OpenFeign原理讲的炉火纯青~~

大家好,我是三友~~ 在很久之前,我写过两篇关于OpenFeign和Ribbon这两个SpringCloud核心组件架构原理的文章 但是说实话,从我现在的角度来看,这两篇文章的结构和内容其实还可以更加完善 刚好我最近打算整个SpringCloud各个组件架构原理的小册子 所以趁着这个机会...[2024/3/1]

Java HashMap 详解

HashMap HashMap 继承自 AbstractMap,实现了 Map 接口,基于哈希表实现,元素以键值对的方式存储,允许键和值为 null。因为 key 不允许重复,因此只能有一个键为 null。HashMap 不能保证放入元素的顺序,它是无序的,和放入的顺序并不相同。HashMap ...[2024/3/1]

求求你别再用OkHttp调用API接口了,快来试试这款HTTP客户端库吧

求求你别再用OkHttp调用API接口了,快来试试这款HTTP客户端库吧

引言 在日常业务开发中,我们时常需要使用一些其他公司的服务,调用第三方系统的接口,这时就会涉及到网络请求,通常我们可以使用HttpClient,OkHttp等框架去完成网络请求。随着RESTful API的普及,一个高效、简洁且易于维护的HTTP客户端库显得尤为关键。而本文主要介绍一款强大的网络...[2024/3/1]

【Filament】立方体贴图(6张图)

1 前言 ? 本文通过一个立方体贴图的例子,讲解三维纹理贴图(子网格贴图)的应用,案例中使用 6 张不同的图片给立方体贴图,图片如下。 ? 读者如果对 Filament 不太熟悉,请回顾以下内容。 Filament环境搭建 绘制三角形 绘制矩形 绘制圆形 绘制立方体 纹理贴图...[2024/3/1]

亚古兽会升级,锁会吗?

亚古兽会升级,锁会吗? 大家好,我是小高先生。在经过对锁的基础知识和对象头概念的学习之后,相信各位已经对锁机制有了初步的了解。在之前的文章中,我有提到过关于锁升级的概念。今天,我想和大家一起深入探讨一下什么是锁升级。借助于我们之前内容的积累,理解这一部分内容将会是轻而易举的。 锁优化背景 锁升...[2024/3/1]

都说了别用BeanUtils.copyProperties,这不翻车了吧

分享是最有效的学习方式。 博客:https: blog.ktdaddy.com/ 故事 新年新气象,小猫也是踏上了新年新征程,自从小猫按照老猫给的建议【系统梳理大法】完完整整地梳理完毕系统之后,小猫对整个系统的把控可谓又是上到可一个新的高度。开工一周,事情还不是很多,寥寥几个需求,小猫分...[2024/2/28]

Java面向对象之接口和抽象类的区别一目了然

Java面向对象之接口和抽象类的区别一目了然

介绍 相信对于Java面向对象部分,很多人很长一段时间对于接口和抽象类的区别,使用场景都不是很熟悉,同是作为抽象层重要的对象,工作中到底什么情况下使用抽象类,不是很清楚。本文就一次性把这些概念一次性说清楚,不用再烦恼了,哈哈! 核心概念 接口与抽象类最明显的区别可能就是使用上的惯用方式...[2024/2/28]

解析Spring中的循环依赖问题:初探三级缓存

什么是循环依赖? 这个情况很简单,即A对象依赖B对象,同时B对象也依赖A对象,让我们来简单看一下。 A依赖了B cla A{ public B b; } B依赖了A cla B{ public A a; } 这种循环依赖可能会引发问题吗? 在没有考虑Spring框架的情...[2024/2/28]

如何创建自己的Spring Boot Starter并为其编写单元测试

当我们想要封装一些自定义功能给别人使用的时候,创建Spring Boot Starter的形式是最好的实现方式。如果您还不会构建自己的Spring Boot Starter的话,本文将带你一起创建一个自己的Spring Boot Starter。 快速入门 创建一个新的 Maven 项目。...[2024/2/28]

简单看下最近的Spring Secrurity、Spring漏洞(CVE-2024-22234、CVE-2024-22243)

最近的这两个cve我看国内很多情报将其评为高危,所以想着去看看原理,看完发现都比较简单,利用要求的场景也相对有限(特别是第一个),所以就随便看下就行了 Spring Security 用户认证绕过(CVE-2024-22234) 先看下官网的公告(https: pring.io ecurity...[2024/2/28]

【Filament】绘制圆形

1 前言 ? Filament环境搭建中介绍了 Filament 的 Windows 和 Android 环境搭,绘制三角形中介绍了绘制纯色和彩色三角形,绘制矩形中介绍了绘制纯色和彩色矩形,本文将使用 Filament 绘制圆形。 2 绘制圆形 ? 本文项目结构如下,完整代码资源 ...[2024/2/28]

解析Spring中的循环依赖问题:再探三级缓存(AOP)

前言 在之前的内容中,我们简要探讨了循环依赖,并指出仅通过引入二级缓存即可解决此问题。然而,你可能会好奇为何在Spring框架中还需要引入三级缓存singletonFactories。在前述总结中,我已经提供了答案,即AOP代理对象。接下来,我们将深入探讨这一话题。 AOP 在Spring框架...[2024/2/28]

从零开始学Spring Boot系列-Hello World

欢迎来到从零开始学Spring Boot的旅程!在这个系列的第二篇文章中,我们将从一个非常基础但重要的示例开始:创建一个简单的Spring Boot应用程序,并输出“Hello World”。 1. 环境准备 首先,确保你的开发环境已经安装了以下工具: Java Development Ki...[2024/2/26]

教你如何判断Java代码中异步操作是否完成

教你如何判断Java代码中异步操作是否完成

本文分享自华为云社区《java代码实现异步返回结果如何判断异步执行完成》,作者: 皮牙子抓饭。 在许多应用程序中,我们经常使用异步操作来提高性能和响应度。在Java中,我们可以使用多线程或者异步任务来执行耗时操作,并且在后台处理过程完成后获取结果。但是,在使用异步操作时,我们通常需要知道异步任...[2024/2/26]

什么是数据同步利器DataX,如何使用?

什么是数据同步利器DataX,如何使用?

转载至我的博客 https: www.infrastack.cn ,公众号:架构成长指南 今天给大家分享一个阿里开源的数据同步工具DataX,在Github拥有14.8k的star,非常受欢迎,官网地址:https: github.com/alibaba/DataX 什么是 Datax? ...[2024/2/26]

[技术选型与调研] 流程引擎(工作流引擎|BPM引擎):Activiti、Flowable、Camunda

[技术选型与调研] 流程引擎(工作流引擎|BPM引擎):Activiti、Flowable、Camunda

1 概述:流程与流程引擎 低代码平台、办公自动化(OA)、BPM平台、工作流系统均需要【流程引擎】功能 BPM平台与工作流系统的区别,参见本文档:3.2 章节 流程引擎是任务分配软件(例如业务流程管理)的一项核心技术,其中,工作流引擎在参与者之间交流数据的同时将任务分配给不同的执行...[2024/2/23]

高并发时为什么推荐ReentrantLock而不是synchronized

高并发时为什么推荐ReentrantLock而不是synchronized

目录1、最初的 synchronized2、synchronized 的优化3、但是,JAVA的最终答案 JDK 21 LTS 来了 1、最初的 synchronized 它默认对临界资源添加重量级锁,即使可能并不存在竞争,只要走到临界区通通给你加锁。 现在来回答问题: 1) 如果是低于...[2024/2/23]

面试官不按套路出牌,上来就让聊一聊Java中的迭代器(Iterator ),夺命连环问,怎么办?

写在开头 某大厂的面试现场,一位目光深邃,头顶稀疏的中年面试官坐在椅子上,这时候的我走了进来。 面试官:“小伙子,学过Java中容器和数据结构了吧?” 我:“嗯,学了” 面试官:“ok,那你来聊一聊Java中的迭代器(Iterator ),要说清楚他们的应用场景哈” 我:“哦,好滴” ...[2024/2/23]

我们在SqlSugar开发框架中,用到的一些设计模式

我们在SqlSugar开发框架中,用到的一些设计模式

我们在《SqlSugar开发框架》中,有时候都会根据一些需要引入一些设计模式,主要的目的是为了解决问题提供便利和代码重用等目的。而不是为用而用,我们的目的是解决问题,并在一定的场景下以水到渠成的方式处理。不过引入任何的设计模式,都会增加一定的学习难度,除非是自己本身领会比较好了,就会显得轻松一些...[2024/2/23]

从零开始学Spring Boot系列-前言

从零开始学Spring Boot系列-前言

从零开始学Spring Boot系列-前言 在数字化和信息化的时代,Java作为一种成熟、稳定且广泛应用的编程语言,已经成为构建企业级应用的首选。而在Java生态系统中,Spring框架无疑是其中最为耀眼的一颗明星。它提供了全面的编程和配置模型,用于构建企业级应用。随着Spring Boot的出...[2024/2/23]

3分钟看懂设计模式01:策略模式

一、什么是策略模式 定义一些列算法类,将每一个算法封装起来,并让它们可以互相替换。 策略模式让算法独立于使用它的客户而变化,是一种对象行为型模式。 以上是策略模式的一般定义,属于是课本内容。 在没有真正理解策略模式之前并不需要对此定义下过多功夫,读一遍直接进入下一章节。 二、为什么要用策略...[2024/2/23]

Java里使用AspectJ实现AOP

 前言 已经正式从NET转型JAVA。今后开始多写一点JAVA相关的文章。 因为已经正式转Java了,所以,对于Java的一些判断,应该就比以前更准确了。总得来说,java有好的东西,有不好的东西,就语言本身和java的常用组件来讲,并不能判断,java比其他语言高一个档次,当然,也...[2024/2/23]

【libGDX】使用Mesh绘制三角形

1 Mesh 和 ShaderProgram 简介 1.1 创建 Mesh ? 1)Mesh 的构造方法 public Mesh(boolean isStatic, int maxVertices, int maxIndices, VertexAttribute... attribute...[2024/2/23]

多线程系列(三) -synchronized 关键字使用详解

一、简介 在之前的线程系列文章中,我们介绍了线程创建的几种方式以及常用的方法介绍。 今天我们接着聊聊多线程线程安全的问题,以及解决办法。 实际上,在多线程环境中,难免会出现多个线程对一个对象的实例变量进行同时访问和操作,如果编程处理不当,会产生脏读现象。 二、线程安全问题介绍 我们先来看一...[2024/2/21]

Sentinel 源码学习

引入依赖 <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version&g...[2024/2/21]

【解决方案】Java 互联网项目如何防止集合堆内存溢出(一)

目录前言一、代码优化1.1Stream 流自分页1.2数据库分页1.3其它思考二、硬件配置2.1云服务器配置三、文章小结 前言 OOM 几乎是笔者工作中遇到的线上 bug 中最常见的,一旦平时正常的页面在线上出现页面崩溃或者服务无法调用,查看服务器日志后你很可能会看到“Caused by: ...[2024/2/21]

Java 21 虚拟线程如何限流控制吞吐量

虚拟线程(Virtual Threads)是 Java 21 所有新特性中最为吸引人的内容,它可以大大来简化和增强Java应用的并发性。但是,随着这些变化而来的是如何最好地管理此吞吐量的问题。本文,就让我们看一下开发人员在使用虚拟线程时,应该如何管理吞吐量。 在大多数情况下,开发人员不需要自己...[2024/2/21]

Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列

写在开头 队列是Java中的一个集合接口,之前的文章已经讲解了List和Set,那么今天就来唠一唠它吧。队列的特点:存储的元素是有序的、可重复的。 队列的两大接口Queue vs Deque Queue 是单端队列,只能从一端插入元素,另一端删除元素,实现上一般遵循 先进先出(FIFO) 规则...[2024/2/21]

提高Java开发生产力,我选Stream API,真香啊

Java 8 引入的Stream API提供了一种新的数据处理方式,它以声明式、函数式的编程模型,极大地简化了对集合、数组或其他支持数据源的操作。Stream可以被看作是一系列元素的流水线。允许你高效地对大量数据执行复杂的过滤、映射、排序、聚合等操作,而无需显式地使用循环或者临时变量。Strea...[2024/2/19]

多线程系列(二) -Thread类使用详解

一、简介 在之前的文章中,我们简单的介绍了线程诞生的意义和基本概念,采用多线程的编程方式,能充分利用 CPU 资源,显著的提升程序的执行效率。 其中java.lang.Thread是 Java 实现多线程编程最核心的类,学习Thread类中的方法,是学习多线程的第一步。 下面我们就一起来看看...[2024/2/19]

java实现幂等性校验

我们在做web应用的时候通常会遇到前端提交按钮重复点击的场景,在某些新增操作上就需要做幂等性限制来保证数据的可靠性。下面来用java aop实现幂等性校验。 一:首先我们需要一个自定义注解 package com.yuku.yuku_erp.annotation; import java...[2024/2/19]

Java21 + SpringBoot3使用Spring Security时如何在子线程中获取到认证信息

目录前言原因分析解决方案方案1:手动设置线程中的认证信息方案2:使用DelegatingSecurityContextRunnable创建线程方案3:修改Spring Security安全策略通过设置JVM参数修改安全策略通过SecurityContextHolder修改安全策略总结 前言 ...[2024/2/19]

多线程系列(一) -线程技术入门知识讲解

多线程系列(一) -线程技术入门知识讲解

一、简介 在很多场景下,我们经常听到采用多线程编程,能显著的提升程序的执行效率。例如执行大批量数据的插入操作,采用单线程编程进行插入可能需要 30 分钟,采用多线程编程进行插入可能只需要 5 分钟就够了。 既然多线程编程技术如此厉害,那什么是多线程呢? 在介绍多线程之前,我们还得先讲讲进程和...[2024/2/19]

Java集合篇之逐渐被遗忘的Stack,手写一个栈你会吗?

Java集合篇之逐渐被遗忘的Stack,手写一个栈你会吗?

正月初九,开工大吉! 2024年,更上一层楼! 写在开头 其实在List的继承关系中,除了ArrayList和LinkedList之外,还有另外一个集合类stack(栈),它继承自vector,线程安全,先进后出,随着Java并发编程的发展,它在很多应用场景下被逐渐替代,成为了Java的遗落...[2024/2/19]

源码剖析Spring依赖注入:今天你还不会,你就输了

在之前的讲解中,我乐意将源码拿出来并粘贴在文章中,让大家看一下。然而,我最近意识到这样做不仅会占用很多篇幅,而且实际作用很小,因为大部分人不会花太多时间去阅读源码。 因此,从今天开始,我将采取以下几个步骤:首先,我会提前画出一张图来展示本章节要讲解的内容的调用链路,供大家参考。其次,在文章中,...[2024/2/19]

Java集合篇之深入解析ArrayList,这六问你答的上来吗?

写在开头 开年第一篇,先祝各位新的一年身体健康,学业有成,事业有成哈,春节期间就是咔咔乱吃,咔咔乱玩,把学习都抛一边子去了,已经9天没有学习了,深深的懊悔,从今天开始,2024年的学习正式开启,一起给我猛冲!!! 书接上回,我们开启了Java集合部分的学习,今天我们就来看一下List,其中它的...[2024/2/18]

Java集合篇之深入解析LinkedList

写在开头 作为ArrayList的同门师兄弟,LinkedList的师门地位逊色不少,除了在做算法题的时候我们会用到它之外,在实际的开发工作中我们极少使用它,就连它的创造者都说:“I wrote it,and I never use it”,想想颇有点好笑,但这并不影响我们去学习它,个人认为它底...[2024/2/18]

新来的一个同事,把SpringBoot参数校验玩的那叫一个优雅

介绍 在开发现代应用程序时,数据验证是确保用户输入的正确性和应用程序数据完整性的关键方面。Spring Boot 提供了强大的数据验证机制,使开发者能够轻松地执行验证操作。本文将深入介绍 Spring Boot 中的 Validation,以及如何在应用程序中正确使用它。 为什么使用数据验证? ...[2024/2/7]

深入浅出Java多线程(八):volatile

引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第八篇内容:volatile。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在当今的软件开发领域,多线程编程已经成为提高系统性能和响应速度的重要手段。Java作为广泛应用的多线程支持语言,其内存模型(...[2024/2/7]

十八张图带你入门实时监控系统HertzBeat

我们经常讲:研发人员有两只眼睛,一只是监控平台,另一只是日志平台。在对性能和高可用讲究的场景里,监控平台的重要性再怎么强调也不过分。 这篇文章,我们聊聊开源实时监控告警系统 HertzBeat 赫兹跳动。 1 产品特色 HertzBeat 有两个非常鲜明的特色:强大的监控模版和无需 Ag...[2024/2/7]

Java锁到底是个什么东西

一、java锁存在的必要性 要认识java锁,就必须对2个前置概念有一个深刻的理解:多线程和共享资源。 对于程序来说,数据就是资源。 在单个线程操作数据时,或快或慢不存在什么问题,一个人你爱干什么干什么。 多个线程操作各自操作不同的数据,各干各的,也不存在什么问题。 多个线程对共享数据进...[2024/2/7]

设计模式浅析(三) &#183;装饰者模式

设计模式浅析(三) ·装饰者模式 日常叨逼叨 java设计模式浅析,如果觉得对你有帮助,记得一键三连,谢谢各位观众老爷???? halo各位小伙伴们,今天我们一起来了解一下装饰者模式,首先还是先进入下面的案例,话不多说,我们开始吧! 案例介绍 蜜雪**是规模比较大的连锁饮品店,因为分店开...[2024/2/5]

解决缓存与数据库同步下的同步锁问题之分段锁

解决缓存与数据库同步下的同步锁问题之分段锁

契子 在实际业务会我们会使用第三方的缓存例如:Reids、Memcache等;但是,并且我们在查询使用缓存时都得尽可能的保证缓存的一致性,在读取时得保证尽可能的保证缓存拿到的是数据库的最新数据,那么在实现的逻辑上一般都为这样: 1、请求线程先读取缓存实现 2、如果缓存没有数据的话触发读取数据...[2024/2/5]

设计模式浅析(二) &#183;观察者模式

设计模式浅析(二) ·观察者模式 日常叨逼叨 java设计模式浅析,如果觉得对你有帮助,记得一键三连,谢谢各位观众老爷???? 案例介绍 假设存在下面这个场景: 你有一个监测空气湿度和温度的仪器,在该仪器获取到数值之后,你需要获取到一些数值,然后分别显示在一些显示设备(手机,平板,手环 ...[2024/2/5]

spring声明式事务(@Transactional)开发常犯的几个错误及解决办法

目前JAVA的微服务项目基本都是SSM结构(即:springCloud +springMVC+Mybatis),而其中Mybatis事务的管理也是交由spring来管理,大部份都是使用声明式事务(@Transactional)来进行事务一致性的管理,然后在实际日常开发过程中,发现很多开发同学都用...[2024/2/5]

561
2
记录数:10953 页数:1/22012345678910下一页尾页
 友情链接:直通硅谷  直通硅谷 怎么样 mac软件下载
加载更多