Java
阿里一面:Java中如何停止线程?
引言 在Java多线程编程中,正确且安全地停止线程是一项关键技能。简单粗暴地“杀死”线程不仅可能导致数据不一致性,还可能引发各种难以预测的错误。本文将探讨几种在Java中优雅地停止线程的方法,以确保程序的健壮性和可靠性。 使用标志位(共享变量)停止线程 一种常见的做法是使用一个boolean类型的标志位来控制线程的执行。线程在执行任务的过程中不断检查标志位的状态,当标志位被设置为true时,线程停
IDEA启动报错 Internal error.Please refer to http://jb.gg/ide/critical-startup-errors
1. 问题描述 启动IDEA遇到报错 Internal error.Please refer to http://jb.gg/ide/critical-startup-errors 2. 问题原因 java.net.BindException:地址已在使用中: 也就是idea启动时需要占用一些端口,但是已经被其它打开的软件占用了。 IDE正在本地主机上启动服务器,它将尝试在6942和6991之间
一个开源的分布式在线教育系统
大家好,我是 Java陈序员。 今天给大家介绍一个开源的分布式在线教育系统,支持课程在线播放、课程购买等功能。 关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。 项目介绍 roncoo-education —— 一个分布式在线教育系统。目前主要功能有课程点播功能,支持多家视频云的接入,课程附件管理功能,支持多家存储云的接入,可以帮助个人或者企
MyBatis原理解析
MyBatis入门的四行代码 前言 MyBatis是一款ORM(Object-Relational Mapping)框架,其主要用于将Java对象与关系数据库之间进行映射,凭借其轻量性、稳定性以及广泛的开源社区其受到了广大开发者的追捧。 那MyBatis为我们做了哪些事情呢?其实,总结来看主要有如下几点: SQL映射配置:MyBatis使用XML或注解配置文件来定义SQL查询、插入、更新和删除操
Odoo17 form上的list编辑状态下回车换行优化
背景描述 通常在Odoo的form视图中,我们会使用list来编辑一些数据,但是在编辑完一个单元格之后,按下回车键,它默认是聚焦到下一行的首列中; 在批量录入一列信息比如价格时,我们可能更希望像Excel一样,按下回车键后,光标会聚集到下一行的同一行列中。 原因分析 分析源码addonswebstaticsrcviewslistlist_renderer.js找到换行聚集到行首的控制在onPat
读写锁 ReentrantReadWriteLock
ReentrantReadWriteLock 介绍 ReentrantReadWriteLock 是 Java 中的一个读写锁实现,它包含了两种锁:读锁和写锁。读锁是共享锁,多个线程可以同时获取读锁进行读操作,但是写锁是排他锁,只有一个线程可以获取写锁进行写操作。ReentrantReadWriteLock 提供了比单一锁更高效的并发性能,特别适用于读多写少的场景。 JDK 提供了 Reentr
关于java.net.URLEncoder.encode()将空格转成+问题
1.情景展示 如上图所示,当我们使用jdk自带的类对数据进行URL编码时,空格会被转成+。 这其实是不对的,我们知道: 空格对应url编码是:%20,所以,jdk自带的URLEncoder将空格转成+是不对的。 如何解决? 2.解决方案 既然jdk自带的URLEncoder有问题,我们就有两种解决办法。 一种是仍然使用它,然后将编码结果中的+替换成:%20即可。 另一种就是使用第三方jar包
Database Connection Pool 数据库连接池-01-概览及简单手写实现
拓展阅读 第一节 从零开始手写 mybatis(一)MVP 版本。 第二节 从零开始手写 mybatis(二)mybatis interceptor 插件机制详解 第三节 从零开始手写 mybatis(三)jdbc pool 从零实现数据库连接池 第四节 从零开始手写 mybatis(四)- mybatis 事务管理机制详解 连接池的作用 资源重用 由于数据库连接得到重用,避免了频繁创建、释放连接
风控规则引擎(一):Java 动态脚本
风控规则引擎(一):Java 动态脚本 日常场景 共享单车会根据微信分或者芝麻分来判断是否交押金 汽车租赁公司也会根据微信分或者芝麻分来判断是否交押金 在一些外卖 APP 都会提供根据你的信用等级来发放贷款产品 金融 APP 中会根据很复杂规则来判断用户是否有借款资格,以及贷款金额。 在简单的场景中,我们可以通过直接编写一些代码来解决需求,比如: 这种方式代码简单,如果规则简单且不经常变化可
多线程系列(十九) -Future使用详解
一、摘要 在前几篇线程系列文章中,我们介绍了线程池的相关技术,任务执行类只需要实现Runnable接口,然后交给线程池,就可以轻松的实现异步执行多个任务的目标,提升程序的执行效率,比如如下异步执行任务下载。 而实际上Runnable接口并不能满足所有的需求,比如有些场景下,我们想要获取任务执行的返回结果,Runnable接口因为无返回值,只能想办法通过额外的方式来写入和读取,操作起来十分不便。
解决 K8sApi 部署后报 Unknown apiVersionKind apps/v1/Deployment is it registered?
该功能在本地调试时是正常的, 部署到服务器时报错。 Jdk11 + SpringBoot 2.7.5, 依赖: 在执行: (V1Deployment)Yaml.load(yamlContent) 时报错: Unknown apiVersionKind apps/v1/Deployment is it registered? 经分析 /mnt/app/mvn-repo/io/kubernetes/
Linux(Ubuntu)下安装OpenJDK
apt install default-jre 是一个在基于Debian的Linux发行版(如Ubuntu)上使用的命令,用于安装默认的Java运行时环境(JRE)。 这里的 apt 是包管理工具,用于安装、更新和删除软件包。 install 是 apt 的一个子命
中信梧桐港二面、公安部第一研究所
1.中信梧桐港二面 1.1 除了SQL提高数据查询优化,还有什么Java层面的优化? 缓存,消息队列异步化(当时竟然没想到,自己还做过) 1.2 字段索引失效 频繁增删改的字段 不是where的字段 数据太少的表 增删改多的表 2.公安部第一研究所 2.1 G1收集器的特点: 实时的垃圾回收 区域化管理 并发标记 缺点:大量小对象回收时不如其他回收器 2.2 OMM的排查方
springboot3+vue3(九)打包部署(windows)
1、在pom中添加打包插件坐标(如果创建项目选的是springboot创建会自动生成打包插件) build plugin 2、双击package生成jar包 这里是因为test测试类导致的,在右侧点击test选择 切换“跳过测试”模式后再次双击package打包 3、发布运行,这里以windows服务器举例 把生成好的jar包拷贝至服务器 执行 java
PaperPlagiarismChecker
这个作业属于哪个课程 这个作业要求在哪里 这个作业的目标 1.学习GitHub创建文件 2.学习psp表格规划时间 3.开发一个论文查重的代码 4.运用Code Quality Analysis工具分析代码 5.使用具Studio Profiling Tools改进代码 6.学习GitHub签入进展 7.写测试用例确保程序正确执行 GitHub 链接:https://g
vue中 lang="ts"与js的区别
`lang="ts"` 与 `js` 的区别在于指定了脚本语言的类型,其中: - `lang="ts"` 指定了 TypeScript,一种由微软开发的 JavaScript 的超集,提供了静态类型检查等功能,使得代码更加健壮和可维护。- `js` 则指定了 JavaScript,是一种脚本语言,用于在网页上实现动态交互效果,是前端开发中最常用的语言之一。 使用 `lang="ts"` 可
数据库练习发生的error—— check the manual that corresponds to your MySQL server version for the right syntax to use near ''id')
记录一下发生的错误。 check the manual that corresponds to your MySQL server version for the right syntax to use near ''id'), 参考链接:完美解决 ERROR 1064 (42000): You have an error in your SQL syntax ..
【软件安装】gogs+Jenkins 在windows服务器上实现CI/CD部署
前景 最近公司实现了CICD 不过是用TFS,我在想在自己的渣渣服务器和自己配置的gogs 上是不是也可以,随动手实践一下,一次不小的尝试 安装下载 Jenkins 复制这个连接到迅雷上下载会快一点, **官方网址 ** https://www.jenkins.io/ http://ftp-chi.osuosl.org/pub/jenkins/windows-stable/2.235.5/jen
解决表格文件上传无法删除临时文件的问题Failed to perform cleanup of multipart items
java.io.UncheckedIOException: Cannot delete C:UsershaseeAppDataLocalTemptomcat 如图所示,刚开始以为是apifox没删除的问题,换了之后依旧这样 尝试方案1-失败 方法二-失败 方法三-成功 原文链接 报错:StandardServletMultipartRe
Java 简单 bean 与 json 互相转换
场景说明 最近在写一个服务,经常用到调别人接口得到json,然后需要转换为 指定bean,记录一下常用工具类 引入依赖 示例 bean 转换 执行效果: JSON数组 来一个 jsonarray 执行效果
[GPT] export default {} 和 export {} 的区别
在JavaScript ES6模块系统中,export default {} 和 export {} 有明显的区别: 1. export default {}: 这个语法用于导出一个默认的模块成员,它可以是一个对象、函数、类等。当导入时,可以使用任何名称来引用这个默认导出的成员,或者不指定名称直接导入。每个模块只能有一个 export default,并且它不需要与被导出的变量名相同
Hadoop安装与使用
Hadoop安装与使用 创建Hadoop用户 创建hadoop用户可以使不同用户之间有明确的权限区别,同时也可以使针对Hadoop用户的配置操作不影响其他用户的使用 创建用户命令如下: sudo useradd -m hadoop -s /bin/bash 设置用户密码,方便记忆可以设为hadoop sudo passwd hadoop 然后为hadoop用户增加管理员权限,方便部署 sudo
zabbix-server-pgsql docker镜像说明
0 说明 zabbix-server-pgsql在docker hub的官方说明,供查阅 1 Environment Variables 1.1 基本变量 When you start the zabbix-server-pgsql image, you can adjust the configuration of the Zabbix server by passing one or more
学java16循环结构
循环结构 1. while循环 只要布尔表达式为true,循环就会一直执行下去 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。 少部分情况需要循环一直执行,比如服务器的请求响应监听等。 循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死奔溃! 思考:计算1+2+3+...+100=? 2.