深入浅出reentrantlock java

常用的Java开发工具比较

市场上Java 开发常用的编辑器可谓是琳琅满目,令人眼花缭乱,甚至让人难以抉择。所以今天挑选了几款主流的编辑器进行介绍,都是功能比较丰富的IDE,至于大神使用的普通文本编辑器就不再此次考虑范围内,主要介绍IntelliJ IDEA、Eclipse、NetBeans、Visual Studio Cod ......
开发工具 常用 工具 Java

Java处理正则匹配卡死(正则回溯问题)

正则匹配卡死怎么来的? 背景 背景:这次问题的背景是项目上遇到了,在使用正则对数据进行提取时,发现提取不到,日志解析不成功,造成kafka消息有积压 项目现场问题 项目中某一个微服务再处理正则时,发现在处理部分日志时候,线程会卡死,线程卡死,因此kafka中的消息定会积压,后面的日志即不会处理。关键 ......
正则 问题 Java

nacos实现Java和.NetCore的服务注册和调用

用nacos作为服务注册中心,如何注册.NetCore服务,如何在Java中调用.NetCore服务呢?可以分为下面几个步骤: 0.运行nacos 1.开发.net core服务,然后调用nacos提供的.net core sdk注册服务。 2.开发Java服务,然后注册服务。 3.用RestTem ......
NetCore nacos Java

三天吃透Java并发八股文!

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.c ......
八股文 八股 Java

Java/.Net双平台核心,Jvm和CLR运行异同点

前言: 本篇以.Net 7.0.2 CLR 和 OpenJDk19参照,解析下它们各自调用函数的异同。 以下为个人理解。 概述 JDK大约5.9G,CLR大约7.6G,两者相差1.7G左右。 root@tang-virtual-machine:/home/tang# cd jdk-jdk-19-36 ......
异同 核心 平台 Java CLR

【深入浅出 Yarn 架构与实现】4-5 RM 行为探究 - 启动 ApplicationMaster

本节开始,将对 ResourceManager 中一些常见行为进行分析探究,看某些具体关键的行为,在 RM 中是如何流转的。本节将深入源码探究「启动 ApplicationMaster」的具体流程。 ......

【深入浅出 Yarn 架构与实现】4-6 RM 行为探究 - 申请与分配 Container

本小节介绍应用程序的 ApplicationMaster 在 NodeManager 成功启动并向 ResourceManager 注册后,向 ResourceManager 请求资源(Container)到获取到资源的整个过程,以及 ResourceManager 内部涉及的主要工作流程。 ......
深入浅出 架构 Container 行为 Yarn

深入理解Spring的Bean定义对象BeanDefinition-面试重点

Spring注解这篇文章中讲到了Spring的组件,组件加载到Spring容器中也就是Spring容器中的Bean对象,想要更深理解Spring中的Bean对象,那对这个BeanDefinition一定要有深入的了解,它是构造出来Bean对象的一切基础,比如Bean的作用域,Bean的注入模型,Be ......
BeanDefinition 对象 重点 Spring Bean

Java线程池和Spring异步处理高级篇

开发过程中我们会遇到很多使用线程池的场景,例如异步短信通知,异步发邮件,异步记录操作日志,异步处理批量Excel解析。这些异步处理的场景我们都可以把它放在线程池中去完成,当然还有很多场景也都可以使用线程池,掌握线程池后开发中自己灵活应用。 例如在生成订单的时候给用户发送短信,生成订单的结果不应该被发 ......
线程 Spring Java

java生态下后端开发都有哪些技术栈?

前言 大学跟着老师培训班学习的C#,那时(2003-2010)它是比较时髦得开发语言,我2008年毕业后,当了一年多三班倒的工人,由于不是自己要走的路,就换到自己专业上来了,也就开始从事了winform窗体应用程序开发。随着web网站兴起,就转到asp.net开发,前端app混合开发。大约2017年 ......
生态 技术 java

最近写了一个demo,想看看java和go语言是怎么写的

最近写了一个demo:demo的github地址 一. 简单介绍 1. Server端 它是一个WebApi服务,把它当成一个黑盒就行了。 2. MiddleServer端 是重点,它是一个WebApi服务,包含一个GetValues接口和一个Query2接口。 Query2接口是一个简单的接口。 ......
语言 demo java

微软出品自动化神器【Playwright+Java】系列(十)元素定位详解

一、写在前面 又有很久没更文了,真的是被催婚搞的整个人情绪特别不好,如果硬要形容的话,那就是没法跟人正常沟通,一点就着,做什么都没耐心,看什么都烦,简直没救了... 也是偶然发现的,自己居然没写关于Playwright的元素定位,这不是自动化测试的重中之重,怎么可以忘,马上安排! 二、元素定位 主要 ......
神器 Playwright 元素 Java

微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发

一、前言 大家好,我是六哥! 又有好长一段时间没更文了,不是我懒,而是确实在更文上,没有以前积极了,这里是该自我检讨的。 其实不是我不积极,而是相对更文学习来说,优先级不是最高。 对我而言,目前最重要的就是减肥,除了下雨下雪,我都坚持每天5公里,keep记录如下: 早在四天前就完成了playwrig ......
神器 Playwright 框架 Java

JAVA重试机制多种方式深入浅出

重试机制在分布式系统中,或者调用外部接口中,都是十分重要的。 重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。 为了方便说明,先假设我们想要进行重试的方法如下: @Slf4j @Component public class HelloServi ......
深入浅出 多种 机制 方式 JAVA

Java多种方法实现等待所有子线程完成再继续执行

简介 在现实世界中,我们常常需要等待其它任务完成,才能继续执行下一步。Java实现等待子线程完成再继续执行的方式很多。我们来一一查看一下。 Thread的join方法 该方法是Thread提供的方法,调用join()时,会阻塞主线程,等该Thread完成才会继续执行,代码如下: private st ......
线程 多种 方法 Java

【基数排序算法详解】Java/Go/Python/JS/C不同语言实现

说明 基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulation ......
基数 算法 语言 Python Java

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现 说明 选择排序(Selection Sort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个区间。首先在待排序序列中找到最小(或最大)的元素,追加到已排序序列中,然后继续从待排序序列中寻找最小( ......
算法 语言 Python Java Go

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现 简介 桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,来实现二者的解耦。参与桥接的接口是稳定的,用户可以扩展和修改桥接中的类,但是不能改变接口。 ......
设计模式 语言 模式 Python Java

【建造者设计模式详解】Java/JS/Go/Python/TS不同语言实现

简介 建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。它使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。 当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时候,就 ......
设计模式 语言 模式 Python Java

深入解读.NET MAUI音乐播放器项目(三):界面交互

UI设计的本质是对于产品的理解在界面中多种形式的映射,当需求和定位不同时,对相同的功能表达出了不同的界面和交互方式。作为播放器,界面可以是千差万别的。《番茄播放器》的iOS平台上我开发了传统版本,和基于手势播放的版本。它们界面不同,但用的同一个播放内核。作为播放内核项目,在MatoMusic.Cor... ......
界面 播放器 项目 音乐 MAUI

Java+Redis 通过Lua 完成库存扣减,创建消息队列,异步处理消息--实战

需要完成功能 借助redis Stream 数据结构实现消息队列,异步完成订单创建,其中涉及到了缓存(击穿,穿透,雪崩),锁(Redisson),并发处理,异步处理,Lua脚本 IDE:IDEA 2022 1、读取库存数据 【Lua】 2、判断库存 【Lua】 3、扣减库存 【Lua】 4、创建队列 ......
消息 队列 实战 库存 Redis

深入了解视觉语言模型

人类学习本质上是多模态 (multi-modal) 的,因为联合利用多种感官有助于我们更好地理解和分析新信息。理所当然地,多模态学习的最新进展即是从这一人类学习过程的有效性中汲取灵感,创建可以利用图像、视频、文本、音频、肢体语言、面部表情和生理信号等各种模态信息来处理和链接信息的模型。 自 2021 ......
模型 视觉 语言

Java Agent场景性能测试分析优化经验分享

摘要:本文将以Sermant的SpringBoot 注册插件的性能测试及优化过程为例,分享在Java Agent场景如何进行更好的性能测试优化及在Java Agent下需要着重注意的性能陷阱。 作者:栾文飞 高级软件工程师 一、背景介绍 Sermant是一个主打服务治理领域的Java Agent框架 ......
场景 性能 经验 Agent Java

java 中文繁简体转换工具 opencc4j 使用介绍 1.8.0

Opencc4j Opencc4j 支持中文繁简体转换,考虑到词组级别。 在线体验 Features 特点 严格区分「一简对多繁」和「一简对多异」。 完全兼容异体字,可以实现动态替换。 严格审校一简对多繁词条,原则为「能分则不合」。 词库和函数库完全分离,可以自由修改、导入、扩展。 兼容 Windo ......
opencc4j opencc4 工具 opencc java

还不知道如何在java中终止一个线程?快来,一文给你揭秘

简介 工作中我们经常会用到线程,一般情况下我们让线程执行就完事了,那么你们有没有想过如何去终止一个正在运行的线程呢? 今天带大家一起来看看。 Thread.stop被禁用之谜 问道怎么终止一个线程,可能大多数人都知道可以调用Thread.stop方法。 但是这个方法从jdk1.2之后就不推荐使用了, ......
线程 java

Java stream sorted使用 Comparator 进行多字段排序

介绍使用Java Stream流排序器Comparator对List集合进行多字段排序的方法,包括复杂实体对象多字段升降序排序方法。 ......
字段 Comparator stream sorted Java

AI来实现代码转换!Python转Java,Java转Go不在话下?

今天看到个有趣的网站,给大家分享一下。 该网站的功能很神奇,可以实现编程语言的转化。感觉在一些场景之下还是有点作用的,比如你原来跟我一样是做Java的,因为工作需要突然转Go。这个时候用你Java的经验 + 这个工具,或许可以起到一定的帮助作用。 工具的使用也很简单,只需要在左侧黏贴你想转换的原始代 ......
不在话下 Java 代码 Python

Java - JDBC批量插入原理

一、说明 在JDBC中,executeBatch这个方法可以将多条dml语句批量执行,效率比单条执行executeUpdate高很多,这是什么原理呢?在mysql和oracle中又是如何实现批量执行的呢?本文将给大家介绍这背后的原理。 二、实验介绍 本实验将通过以下三步进行 a. 记录jdbc在my ......
原理 Java JDBC

OpenAI Java SDK——chatgpt-java-v1.0.4更新支持GPT-3.5-Turbo,支持语音转文字,语音翻译。

简介 chatgpt-java是一个OpenAI的Java版SDK,支持开箱即用。目前以支持官网全部Api。支持最新版本GPT-3.5-Turbo模型以及whisper-1模型。增加chat聊天对话以及语音文件转文字,语音翻译。 开源地址:https://github.com/Grt1228/cha ......
语音 chatgpt-java-v chatgpt 文字 OpenAI

Spring:现代Java开发的必备框架

Spring:现代Java开发的必备框架 Spring是一个轻量级的Java框架,它提供了各种企业级应用程序开发的工具和技术。Spring框架的核心是IoC容器和AOP框架。IoC容器使得Java应用程序的组件化变得更加容易,AOP框架使得Java应用程序的切面编程变得更加容易。Spring框架还提 ......
框架 Spring Java