经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Java
一次生产环境OOM排查

一次生产环境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]

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

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

Java HashMap 详解

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

亚古兽会升级,锁会吗?

亚古兽会升级,锁会吗?

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

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

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

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

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

【Filament】绘制圆形

【Filament】绘制圆形

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

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

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

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

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

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

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

高并发时为什么推荐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]

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]

【解决方案】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集合篇之深度解析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实现幂等性校验

java实现幂等性校验

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

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

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

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

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

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

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

Java集合篇之深入解析LinkedList

Java集合篇之深入解析LinkedList

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

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

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

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

Java锁到底是个什么东西

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

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

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

【进阶篇】Java 实际开发中积累的几个小技巧(一)

目录前言一、枚举类的注解二、RESTful 接口三、类属性转换四、Stream 流五、判空和断言5.1判空部分5.2断言部分文章小结 前言 笔者目前从事一线 Java 开发今年是第 3 个年头了,从 0-1的 SaaS、PaaS 的项目做过,多租户下定制化开发项目也做过,项目的 PM 也做过...[2024/2/5]

服了,一个ThreadLocal被问出了花

分享是最有效的学习方式。 博客:https: blog.ktdaddy.com/ 故事 地铁上,小帅无力地倚靠着杆子,脑子里尽是刚才面试官的夺命连环问,“用过ThreadLocal么?ThreadLocal是如何解决共享变量访问的安全性的呢?你觉得啥场景下会用到ThreadLocal? ...[2024/2/5]

Collectors.toMap的暗坑与避免方式

使用Java的stream中的Collectors可以很方便地做容器间的转换,可以少写很多代码。但是其中有暗含的坑需要注意和避免,本文探讨Collectors.toMap(JDK8版本)。 Collectors.toMap可以将一个流转化成Map,常见于需要将List转换成Map以便于进一步操...[2024/2/5]

Java并发(二十三)----同步模式之保护性暂停

1、定义 即 Guarded Suspension,用在一个线程等待另一个线程的执行结果 要点 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject 如果有结果不断从一个线程到另一个线程那么可以使用消息队列 JDK 中,join 的实现、Fu...[2024/2/5]

【踩坑指南】线程池使用不当的五个坑

线程池是 Java 多线程编程中的一个重要概念,它可以有效地管理和复用线程资源,提高系统的性能和稳定性。但是线程池的使用也有一些注意事项和常见的错误,如果不小心,就可能会导致一些严重的问题,比如内存泄漏、死锁、性能下降等。 本文将介绍线程池使用不当的五个坑,以及如何避免和解决它们,大纲如下, ...[2024/2/5]

HanLP — 词性标注

目录词性的用处词性标注词性标注模型联合模型流水线式词性标注语料库与标注集序列标注模型应用于词性标注自定义词性朴素实现标注语料总结 词性(Part-Of-Speech,POS)指的是单词的语法分类,也称为词类。同一个类别的词语具有相似的语法性质 所有词性的集合称为词性标注集。 词性的用处...[2024/2/2]

线程池参数千万不要这样设置,坑得我整篇文章都写错了,要注意!

线程池参数千万不要这样设置,坑得我整篇文章都写错了,要注意!

你好呀,我是歪歪。 先给大家道个歉: 上周不是发布了这篇文章嘛:《三个烂怂八股文,变成两个场景题,打得我一脸懵逼。》 其中第一个关于线程池的场景,经过读者提醒可能有问题,我又一次用尽浑身解数分析了一波,发现之前确实分析的不对。 这个案例真的是再一次深入的刷新了我对于线程池运行过程的认知...[2024/2/2]

深入浅出Java多线程(五):线程间通信

深入浅出Java多线程(五):线程间通信

引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第五篇内容:线程间通信。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在现代编程实践中,多线程技术是提高程序并发性能、优化系统资源利用率的关键手段。Java作为主流的多线程支持语言,不仅提供了丰富的A...[2024/2/2]

java线程池实现多任务并发执行

Java线程池实现多任务并发执行 1?? 创建一些任务来落地多任务并发执行 每一个数组里面的数据可以看成任务,或者是需要并发的业务接口, 数组与数组之间,可以看作为他们之间有血缘关系,简单来说就是: taskJksj里面的10个任务执行完之后,才可以执行taskJxdx里面的4个任务,执行完tas...[2024/2/2]

深入剖析Java中的反射,由浅入深,层层剥离!

写在开头 之前更新了不少Java的基础知识,比如Java的类、对象、基础类型、关键字、序列化、泛型、值传递等等,今天要上点深度了,来聊一聊Java中的 反射 ! 所谓反射,就是在运行时分析、检查和操作类、接口、方法、属性的行为! 简单感受一下反射 在开始详解反射之前,我们先通过一段代码,...[2024/2/2]

每日一道Java面试题:说一说Java中的异常

写在开头 任何一个程序都无法保证100%的正常运行,程序发生故障的场景,我们称之为:异常,在Java中对于异常的处理有一套完善的体系,今天我们就来一起学习一下。 老样子,用一段简单的代码开始今天的学习。 我:“小二,上代码!” JavaBuild君:“好嘞!几位爷,里面请~” 【...[2024/2/2]

Gin 框架之jwt 介绍与基本使用

Gin 框架之jwt 介绍与基本使用

目录一.JWT 介绍二.JWT认证与se ion认证的区别2.1 基于se ion认证流程图2.2 基于jwt认证流程图三. JWT 的构成3.1 header : 头部3.2 payload : 负载3.2.1 标准中注册的声明 (建议但不强制使用)3.2.2 公共的声明3.2.3 私有的声明...[2024/1/29]

给你一颗“定心丸”——记一次由线上事故引发的Log4j2日志异步打印优化分析

给你一颗“定心丸”——记一次由线上事故引发的Log4j2日志异步打印优化分析

一、内容提要 自知是人外有人,天外有天,相信对于Log4j2的异步日志打印早有老师或者同学已是熟稔于心,优化配置更是信手拈来,为了防止我在这里啰里八嗦的班门弄斧,我先将谜底在此公布:log4j2.asyncQueueFullPolicy=Discard & log4j2.discardT...[2024/1/29]

每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!

每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!

写在开头 请聊一聊Java中方法的重写和重载? 这个问题应该是各大厂面试时问的最多的话题之一了,它们几乎贯穿了我们日常的开发工作,在过往的博客中我们多多少少都提到过重载与重写,而今天我们就一起来详细的学习一下这二者的功能与区别! 重载与重写的定义 重写: 类实现接口或者子类继承父类时,保...[2024/1/26]

【南大静态代码分析】作业 4:类层次结构分析与过程间常量传播

作业 4:类层次结构分析与过程间常量传播 实现类层次结构分析(CHA) dispatch :根据方法调用者的类和方法签名寻找目标方法。 比较显然,是个递归算法。 递归的终止条件有两个,一个是如果一直找不到相应方法,不断递归到父类,最后递归到 Object 在向上递归就是 null ,O...[2024/1/24]

Java开发者的Python快速进修指南:探索15种独特的Python特殊方法

概述 在Python中,特殊方法(也称为魔术方法)是由Python解释器自动调用的,我们不需要手动调用它们,而是使用内置函数来间接地使用它们。举个例子,我们可以实现特殊方法__len__(),然后通过使用内置函数len()来获取对象的长度。同样地,一些特殊方法的调用是隐式的,比如在使用for循环...[2024/1/24]

一文搞清楚Java中的方法、常量、变量、参数

写在开头 在上一篇文章:一文搞清楚Java中的包、类、接口 中我们讲了Java中的包、类和接口,今天继续将剩下的方法、常量、变量以及参数梳理完。 Java中的变量与常量 在JVM的运转中,承载的是数据,而数据的一种变现形式就是“量”,量分为:常量与变量,我们在数学和物理学中已经接触过变量的概...[2024/1/22]

一文搞清楚Java中的包、类、接口

写在开头 包、类、接口、方法、变量、参数、代码块,这些都是构成Java程序的核心部分,即便最简单的一段代码里都至少要包含里面的三四个内容,这两天花点时间梳理了一下,理解又深刻了几分。 Java中的包 Java 定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Per...[2024/1/22]

Java开发者的Golang进修指南:从0->1带你实现协程池

在Java编程中,为了降低开销和优化程序的效率,我们常常使用线程池来管理线程的创建和销毁,并尽量复用已创建的对象。这样做不仅可以提高程序的运行效率,还能减少垃圾回收器对对象的回收次数。 在Golang中,我们知道协程(goroutine)由于其体积小且效率高,在高并发场景中扮演着重要的角色。然...[2024/1/22]

简单介绍JDK、JRE、JVM三者区别

简单介绍JDK vs JRE vs JVM三者区别 文编|JavaBuild 哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光,等工作之后,你就会发现,想学习真的需要挤时间,厚积薄发啦! ...[2024/1/10]

为什么Java中“1000==1000”为false,而”100==100“为true?

在日常编程中,我们经常遇到一些看似简单却隐藏着复杂逻辑的问题。 比如,你是否想过为什么在 Java 中表达式1000==1000会返回 false,而 100==100 却返回 true 呢? Integer a = 100; Integer b = 100; System.out.prin...[2024/1/10]

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