Java开发HashMap?key必须实现hashCode?equals方法原理
目录一、问题引入二、hashCode、equals方法都未实现三、只实现hashCode方法四、只实现equals方法五、hashCode、equals方法都实现六、总结 一、问题引入 平时在开发中,相信你多多少少都使用过HashMap,而当你用自定义对象作为key时,很多人会告诉你:你必须...[2023/3/22]
带你深入Java Log框架,彻底搞懂Log4J、Log4J2、LogBack,SLF4J
最近系统被扫出来还在使用老旧的log4j,需要升级到最新的log4j。但是在升级的发现,Java相关的日志处理库有log4j, log4j2,slf4j和logback,初一看确实有点头大,那么区别是啥呢?之前也大概知道一些,查找了大量相关资料,这里好好总结一下,相信你读完就会熟练掌握 ...[2023/3/20]
Java多线程开发CompletableFuture的应用
?做Java编程,难免会遇到多线程的开发,但是JDK8这个CompletableFuture类很多开发者目前还没听说过,但是这个类实在是太好用了,了解它的一些用法后相信你会对它爱不释手(呸渣男,咋对谁都爱不释手呢),好了我先简单举个列子,告诉你用它有多好。Single Dog拿一个Appoint...[2023/3/20]
Java项目是不是分布式,真有那么重要吗?
大家好,我是3y啊。 大概不知道从什么时候,「微服务」「分布式」这两个词又再次频繁出现在我的视线里。 「微服务」「分布式」在我刚毕业的时候还是比较关注的,那时候还入门了一把SpringCloud,写了一篇很长的文章,还是很顶的,有不少的大号都给我转载了,在知乎又获得了很多的赞。 那时候觉得...[2023/3/20]
JavaScript?DOM?API的使用教程及综合案例
目录一. 什么是DOM二. 最常用的DOM API1. 选中页面元素2. 操作元素的属性2.1 事件概念2.2 获取/修改元素内容2.4 获取/修改元素属性2.5 获取/修改表单元素属性2.6 获取修改样式属性3. 操作页面节点3.1 新增节点3.2 删除节点三. 综合案例1. 猜数字2. 表白墙总...[2023/3/20]
JavaScript图片打印方案实例详解
最近有个页面打印图片的小需求。就是系统界面展示有一些证件照片,我们希望可以点击图片旁边的打印小按钮,就可以将这张图片直接打印到A4纸张上,例如下图效果: 其实浏览器 window 对象提供了 print 方法,就可以对整个页面进行打印。只需要点击按钮执行以下方法即可。 window....[2023/3/20]
微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发
一、前言 大家好,我是六哥! 又有好长一段时间没更文了,不是我懒,而是确实在更文上,没有以前积极了,这里是该自我检讨的。 其实不是我不积极,而是相对更文学习来说,优先级不是最高。 对我而言,目前最重要的就是减肥,除了下雨下雪,我都坚持每天5公里,keep记录如下: 早在四天前就完成了p...[2023/3/15]
JavaScript+Canvas实现带跳动效果的粒子动画
目录前言实现过程运行效果总结 前言 用 HTML5 的 Canvas 元素实现一个带有跳动效果的粒子动画。会用到 Canvas 的2D渲染上下文,通过 JavaScript 编写绘图代码,实现画布上一系列粒子的随机运动和相互作用。还会使用 CSS3 动画属性,使得画布背景颜色和粒子颜色能够流畅地...[2023/3/15]
Java并发小结01
Java并发小结01 主要参考自《实战Java高并发程序设计》。 需要知道的概念 - 同步与异步 - 并发与并行 - 临界区 - 阻塞与非阻塞 - 死锁、饥饿、活锁 同步与异步 同步:同步方法一旦被调用,必须等待方法返回后才能继续后续的行为。 异步:异步方法就像一个消息传递,被调用后方法...[2023/3/14]
java 中文繁简体转换工具 opencc4j 使用介绍 1.8.0
Opencc4j Opencc4j 支持中文繁简体转换,考虑到词组级别。 在线体验 Features 特点 严格区分「一简对多繁」和「一简对多异」。 完全兼容异体字,可以实现动态替换。 严格审校一简对多繁词条,原则为「能分则不合」。 词库和函数库完全分离,可以自由修...[2023/3/14]
一个由public关键字引发的bug
先来看一段代码: @Service @Slf4j public cla AopTestService { public String name = "真的吗"; @Retryable public void test(){ 模拟业务操作 ...[2023/3/14]
生产环境Java应用服务内存泄漏分析与解决
有个生产环境CRM业务应用服务,情况有些奇怪,监控数据显示内存异常。内存使用率99.%多。通过生产监控看板发现,CRM内存超配或内存泄漏的现象,下面分析一下这个问题过程记录。 1、服务器硬件配置部署情况 生产服务器采用阿里云ECS机器,配置是2HZ、8GB,单个应用服务独占,CRM应用独立部...[2023/3/14]
AI来实现代码转换!Python转Java,Java转Go不在话下?
今天看到个有趣的网站,给大家分享一下。 该网站的功能很神奇,可以实现编程语言的转化。感觉在一些场景之下还是有点作用的,比如你原来跟我一样是做Java的,因为工作需要突然转Go。这个时候用你Java的经验 + 这个工具,或许可以起到一定的帮助作用。 工具的使用也很简单,只需要在左侧黏贴你想...[2023/3/14]
JAVA重试机制多种方式深入浅出
重试机制在分布式系统中,或者调用外部接口中,都是十分重要的。 重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。 为了方便说明,先假设我们想要进行重试的方法如下: @Slf4j @Component public cla HelloS...[2023/3/14]
【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现
【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现 说明 选择排序(Selection Sort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个区间。首先在待排序序列中找到最小(或最大)的元素,追加到已排序序列中,然后继续从待...[2023/3/8]
JavaMail 邮件发送,有意思的附件名乱码 → 客户端正常,web端乱码
开心一刻 昨晚,媳妇很感伤的看着我 媳妇:以后岁数大了,我要走你前面去了,你再找个老伴 我:我不想找 媳妇:你找一个,不用替我守着,以后你说你头疼发烧,也得有个给你端水递药的呀 媳妇抹着眼泪:到老是个伴 我:我想找个年轻的 现在我左脸还有一个掌印,火辣辣的...[2023/3/8]
详解如何用Java实现对m3u8直播流抽帧
目录什么是抽帧什么是 FFmpeg什么是 JavaCV最简单的抽帧抽帧算法 什么是抽帧 抽帧(frame extraction)是指从视频流中提取一些特定的帧,通常是关键帧或者随机帧,以供后续处理。对于m3u8直播流,可以使用Java中的FFmpeg库来实现抽帧功能。 什么是 FFmpeg ...[2023/3/8]
【基数排序算法详解】Java/Go/Python/JS/C不同语言实现
说明 基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulat...[2023/3/6]
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-jd...[2023/3/3]
微软出品自动化神器【Playwright+Java】系列(十)元素定位详解
一、写在前面 又有很久没更文了,真的是被催婚搞的整个人情绪特别不好,如果硬要形容的话,那就是没法跟人正常沟通,一点就着,做什么都没耐心,看什么都烦,简直没救了... 也是偶然发现的,自己居然没写关于Playwright的元素定位,这不是自动化测试的重中之重,怎么可以忘,马上安排! 二、元素定位...[2023/3/3]
JavaSE基础 (全网最全知识点)
背景介绍 java运行机理(即使编译型语言,又是解释型语言) 编译型语言(如:c语言) 源代码需要通过预编译形成可执行文件,再由系统执行该文件形成可识别的二进制文件 解释型语言 边执行边转换。源代码先翻译成中间代码,解释器(类似于JVM)再对中间代码进行解释运行,每执行一次都...[2023/2/28]
三天吃透Java并发八股文!
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https: github...[2023/2/28]
这些 JavaScript 笔试题你能答对几道?
收藏 javascript-questions 这个仓库很久了,趁着周末来锻炼下自己的 JS 基础水平 因为逐渐也在承担一些面试工作,顺便摘录一些个人觉得比较适合面试的题目和方向 事件流(捕获、冒泡) 源链接 以下代码点击结果是啥? <div onclick="console.lo...[2023/2/27]
我有一篇Java Stream使用手册,学了就是你的了!
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介 日常编程工作中,Java集合会经常被使用到,且经常需要对集合做一些类似过滤、排序、对象转换之类的操作。 为了简化这类操作,Java8添加了一套新的Stream API,使用方式就像写SQL一样,...[2023/2/27]
JavaScript 如何验证 URL
前言 当开发者需要为不同目的以不同形式处理URL时,比如说浏览器历史导航,锚点目标,查询参数等等,我们经常会借助于JavaScript。然而,它的频繁使用促使攻击者利用其漏洞。这种被利用的风险是我们必须在我们的JavaScript应用程序中实现URL验证的原因。 URL验证检查URL是否遵循正...[2023/2/24]
Java 优化:读取配置文件 "万能方式" 跨平台,动态获取文件的绝对路径 - Rainbow-Sea
Java 优化:读取配置文件 "万能方式" 跨平台,动态获取文件的绝对路径 每博一文案 往事不会像烟雾似的飘散,将永远像铅一般沉重地浇铸在心灵的深处。 不过,日常生活的纷繁不会让人专注地沉湎于自己的痛苦 不幸,即使人的心灵伤痕累累,也还得要去为现实中的生存和发展而挣扎。 ...[2023/2/22]
详解Java中对象池的介绍与使用
目录1. 什么是对象池2. 对象池解决什么问题3. 对象池的优缺点3.1 对象池的优点3.2 对象池弊端4. 对象池有什么特征5. 池的大小选择6. 对象池的使用6.1 接入6.2 实现线程池工厂6.3 初始化6.4 使用 1. 什么是对象池 对象池,顾名思义就是一定数量的已经创建好的对象(Ob...[2023/2/22]
Java使用ThreadLocal实现当前登录信息的存取功能
目录一、使用ThreadLocal实现当前登录信息的存取1,写一个工具类用于存取用户id2、在用户登录的时候我们在过滤器中可以获取用户的id,这个时候我们将用户id放入ThreadLocal中。二、总结 一、使用ThreadLocal实现当前登录信息的存取 在项目中我们增加一个员工有一些信息是需...[2023/2/22]
基于JavaScript实现图片裁剪功能
目录一、图片文件的上传和读取二、图片展示和蒙层处理CSS clip-path三、裁剪框展示裁剪框的缩放点cursor 鼠标样式四、裁剪框移动事件五、裁剪框缩放操作六、完成裁剪功能drawImage后记 在前端开发中,当遇到图片或头像上传等功能时,有尺寸分辨率限制的话,就需要用到图片的裁剪功能。想了解...[2023/2/22]
【多线程与高并发】- synchronized锁的认知
synchronized锁的认知 ??生命不息,写作不止 ?? 继续踏上学习之路,学之分享笔记 ?? 总有一天我也能像各位大佬一样 ?? 一个有梦有戏的人 @怒放吧德德 ??分享学习心得,欢迎指正,大家一起学习成长! 目录synchronized锁的认知简介synchroniz...[2023/2/20]
微软出品自动化神器【Playwright+Java】系列(九)多线程、重定向、弹出新窗口、截图、新页面、录制、页面对象模式操作
写在前面 关于Playwright系列的文章,真的很久没有写了,今天一个不小心官方API部分过完了,下面将为大家逐一演示,感兴趣的同学可以自行动手练习。 API部分 多线程 直白点说就是多线程下Playwright的使用,示例代码如下: package org.example; impor...[2023/2/20]
Java 调用 PaddleDetection 模型
文章地址 介绍 训练好的模型要给业务调用,deepjavalibrary/djl:Java 中与引擎无关的深度学习框架 (github.com) 可以完成这件事,它支持使用 Java 调用 PyTorch、TensorFlow、MXNet、ONNX、PaddlePaddle 等引擎的模型(也支...[2023/2/20]
RxJava 异常时堆栈显示不正确?解决方法都在这里
本文首发我的博客,github 地址 大家好,我是徐公,今天为大家带来的是 RxJava 的一个血案,一行代码 return null 引发的。 前阵子,组内的同事反馈说 RxJava 在 debug 包 crash 了,捕获到的异常信息不全。(即我们捕获到的堆栈没有包含我们自己代码,都...[2023/2/20]
基于Java实现进制转换工具类的示例代码
目录背景原理十进制A转换为N进制RN进制R转换为十进制A应用延伸 背景 最近有个发送短信的功能,需要在短信中带有详情链接,链接中带有对应信息且要有校验功能,然而短信是按字数收费的,所以链接要尽可能的短。链接中带有数字类型参数,就想到通过低进制转高进制可以减少参数长度。 原理 低进制转换到...[2023/2/20]
Java实现快速生成词云图的示例代码
“词云”一词最早是由美国西北大学新闻学副教授、新媒体专业主任里奇戈登(Rich Gordon)提出的。词云(Word Cloud),又称文字云、标签云(Tag Cloud)、关键词云(Keyword Cloud),是对文本信息中一定数量的关键词出现的频率高低情况的一种可视化...[2023/2/20]
从实现到原理,聊聊Java中的SPI动态扩展
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 八股文背多了,相信大家都听说过一个词,SPI扩展。 有的面试官就很喜欢问这个问题,SpringBoot的自动装配是如何实现的? 基本上,你一说是基于spring的SPI扩展机制,再把spring.factories文件和Enabl...[2023/2/17]
基于JavaScript编写一个翻卡游戏
目录前言翻卡动画生成随机分布数组均匀元素下的随机算法不均匀元素下的随机算法生成最终数组点击事件完整代码 前言 首先将这个游戏需求拆分成三个部分: 翻卡动画生成随机分布数组点击事件 翻卡动画 假如我们的盒子模型不是个二维的平面,而是有个三维的体积,让它可以有正反两面,那我们在做的时候是不...[2023/2/17]
搭个ChatGPT算法模型,离Java程序员有多远?
作者:小傅哥 博客:https: bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 最近 ChatGPT 很火,火到了各行各业。记得去年更多的还是码农最新体验后拿它搜代码,现在各行各业都进来体验,问它咋理财、怎么写报告和给小孩起名。?? 也因此让小傅哥在头条的一篇...[2023/2/15]
java如何通过IP解析地理位置
目录java通过IP解析地理位置获取IP地址百度普通IP定位API获取地理位置java获取IP归属地(省、市)总结 java通过IP解析地理位置 在项目开发中,需要在登录日志或者操作日志中记录客户端ip所在的地理位置。 目前根据ip定位地理位置的第三方api有好几个,淘宝、新浪、百度等,这三...[2023/2/15]
Java synchronized重量级锁实现过程浅析
目录一、什么是重量级锁二、重量级锁的演示三、重量级锁的原理四、锁的优缺点对比 一、什么是重量级锁 当有大量的线程都在竞争同一把锁的时候,这个时候加的锁,就是重量级锁。 这个重量级锁其实指的就是JVM内部的ObjectMonitor监视器对象: ObjectMonitor() ...[2023/2/13]
Java?synchronized轻量级锁实现过程浅析
目录一、什么是轻量级锁二、为什么引入轻量级锁三、轻量级锁的升级时机四、轻量级锁的演示五、轻量级锁的原理六、轻量级锁升级为重量级锁的流程七、轻量级锁的优缺点 一、什么是轻量级锁 轻量级锁是JDK 6之中加入的新型锁机制,它名字中的“轻量级”是相对于使用monitor的传统锁...[2023/2/13]
oasys系统_JAVA代码审计
oasys系统_JAVA代码审计 一、前言 oasys是一个OA办公自动化系统,使用Maven进行项目管理,基于springboot框架开发的项目。可以看到该项目的资源文件中是mappers且pom.xml里有Mybatis的相关依赖,所以数据库持久化框架是Mybatis。 全局搜索 “${”...[2023/2/10]
JavaScript 高阶函数
一、高阶函数 JavaScript 中的高阶函数是一种接受函数作为输入或返回函数作为输出的函数。它们提供了灵活的方式来处理函数,并允许把函数作为参数或返回值传递。它们是函数式编程的重要组成部分,并且可以提高代码的可读性和可维护性。 高阶函数的一个常见用法是对数组进行操作,例如使用 map()...[2023/2/10]
Java-Integer好大一坑,一不小心就掉进去了
遛马少年,一个代码写的很6的程序员,专注于技术干货分享 最近,在处理线上bug的时候,发现了一个奇怪的现象 业务代码大概是这样的 public static boolean doSth(Integer x, Integer y) { if (x == y) { ret...[2023/2/10]
Java微服务Nacos Config配置中心超详细讲解
目录配置文件的不足配置中心的思想Nacos Config入门Nacos Config动态刷新配置NacosConfig的配置共享同一个微服务的不同环境之间共享配置不同微服务中共享配置 配置文件的不足 1.配置存在公共的配置,缺少统一的管理 2.环境参数的配置在每个项目中都有,一旦泄露,不知道...[2023/2/10]
Java微服务分布式调度Elastic-job环境搭建及配置
目录什么是任务调度为什么需要分布式调度Elastic-Job环境搭建更改Zookeeper配置SpringBoot集成ElasticJob 什么是任务调度 任务调度是为了自动完成特定任务,在约定的特定时刻去执行人物的过程 为什么需要分布式调度 1.使用Spring定时器,在集群的情况下,...[2023/2/10]
Java微服务随机掉线排查思路 - rm-rf*
背景 我们的业务共使用11台(阿里云)服务器,使用SpringcloudAlibaba构建微服务集群,共计60个微服务,全部注册在同一个Nacos集群 流量转发路径: nginx->spring-gateway->业务微服务 使用的版本如下: spring-boot.version...[2023/2/6]
Java JDK1.5: 泛型 新特性的讲解说明 - Rainbow-Sea
Java JDK1.5: 泛型 新特性的讲解说明 每博一文案 听到过这样一句话:“三观没有标准。在乌鸦的世界里,天鹅也有罪。” 环境、阅历的不同,造就了每个人独有的世界观、人生观、价值观。 三观并无对错高下,只有同与不同。恰如飞鸟不用和游鱼同行,高山不必同流水相逢。 总用自己的尺子去度量别人...[2023/2/6]
Map按单个或多个Value排序当Value相同时按Key排序
Map可以先按照value进行排序,然后按照key进行排序。 或者先按照key进行排序,然后按照value进行排序,这都是可以的。 并且,大家可以制定自己的排序规则。按单个value排序: import java.util.Collections; import java.util.Ha...[2023/2/6]
《深入理解Java虚拟机》第三章读书笔记(二)——HotSpot垃圾回收算法实现(OopMap,安全点安全区域,卡表,写屏障,三色标记算法)
系列文章目录和关于我 前面《深入理解Java虚拟机》第三章读书笔记(一)——垃圾回收算法我们学习了垃圾回收算法理论知识,下面我们关注下HotSpot垃圾回收算法的实现,分为以下几部分 对象是垃圾的判断依据 GC Roots 是如何高效扫描的 如何解决跨代引用对象的垃圾回收问题 如何降低垃...[2023/2/3]