自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

共同进步,共同学习。

共同进步,共同学习。

  • 博客(67)
  • 资源 (6)
  • 收藏
  • 关注

原创 Java volatile关键字解析

具体来说,如果一个线程执行到步骤 2 并设置了 m_penguin 的引用,但尚未完成对象的初始化,这时另一个线程可能会看到一个“半初始化”的 Penguin 对象。A 线程在写 volatile 变量之前所有可见的共享变量,在 B 线程读同一个 volatile 变量后,将立即变得对 B 线程可见。在 JVM 底层 volatile 是采用“内存屏障”来实现的。最后,我们学习了 volatile 不适用的场景,以及解决的方法,并解释了双重检查锁定实现的单例模式为何需要使用 volatile。

2025-02-06 10:14:09 16

原创 Java的内存模型(JMM)

所以线程 B 并不是直接去主存中读取共享变量的值,而是先在本地内存 B 中找到这个共享变量,发现这个共享变量已经被更新了,然后本地内存 B 去主存中读取这个共享变量的新值,并拷贝到本地内存 B 中,最后线程 B 再读取本地内存 B 中的新值。线程之间的共享变量存在于主存中,每个线程都有一个私有的本地内存,存储了该线程的读、写共享变量的副本。也就是说,在栈中的变量(局部变量、方法定义的参数、异常处理的参数)不会在线程之间共享,也就不会有内存可见性的问题,也不受内存模型的影响。

2024-12-26 15:08:58 26

原创 并发编程(多线程)带来了哪些问题?

前面我们了解到多线程技术有很多好处,比如说多线程可以充分利用多核 CPU 的计算能力,那多线程难道就没有一点缺点吗?有。多线程很难掌握,稍不注意,就容易使程序崩溃。我们以在路上开车为例:在一个单向行驶的道路上,每辆汽车都遵守交通规则,这时候整体通行是正常的。『单向车道』意味着『一个线程』,『多辆车』意味着『多个 job 任务』。单线程顺利同行如果需要提升车辆的同行效率,一般的做法就是扩展车道,对应程序来说就是『加线程池』,增加线程数。这样在同一时间内,通行的车辆数远远大于单车道。多线程顺利同行。

2024-07-05 17:12:15 150

原创 进程与线程的区别

经过前面几章的学习,我们对线程的基本概念和使用方式已经有了比较充分的了解,那么接下来我们就来分析一下,线程是如何从进程进化而来的,它们之间又有哪些区别,搞清楚两者之间的差别对接下来的学习也是至关重要的,甚至有些公司的面试官也喜欢问这个。

2024-07-03 17:56:35 157

原创 线程组和线程优先级

Java 提供了 ThreadGroup 类来创建一组相关的线程,使线程组管理更方便。每个 Java 线程都有一个优先级,这个优先级会影响到操作系统为这个线程分配处理器时间的顺序。这篇内容将分别来介绍一下线程组和线程优先级。

2024-06-28 11:06:13 146

原创 Java线程的6种状态及切换(透彻讲解)

我们先来看看操作系统中的线程状态转换。在操作系统中,线程被视为轻量级的进程,所以。​系统进程/线程转换图。

2024-06-27 18:05:20 439

原创 获取线程的执行结果

我们讲述了创建线程的 3 种方式,一种是直接继承 Thread,一种是实现 Runnable 接口,另外一种是实现 Callable 接口。前 2 种方式都有一个缺陷:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者线程通信的方式来达到目的,这样使用起来就比较麻烦。Java 1.5 提供了 Callable、Future、FutureTask,它们可以在任务执行完后得到执行结果,今天我们就来详细的了解一下。

2024-06-26 16:01:07 146

原创 java 多线程入门

对于 Java 初学者来说,多线程的很多概念听起来就很难理解。很抽象,对不对?带着这个比喻来理解进程和线程的一些关系,一个进程可以有多个线程就叫多线程。是不是感觉非常好理解了?

2024-06-24 14:45:13 225 2

原创 专业与学校:高考志愿填报的两难抉择

在高考志愿填报的过程中,无论是选择专业优先,还是学校优先,都是一次重要的人生抉择。关键在于了解自己,明确自己的兴趣和职业规划,结合实际情况,做出最适合自己的选择。愿所有的高考生都能在这场抉择中找到属于自己的最佳答案,开启一段精彩的大学生活。

2024-06-24 14:17:52 482

原创 git push -f 的后悔药

如果覆盖小部分代码还可以,但如果覆盖了大量的代码真的会欲哭无泪,分享这个抢救小技巧,希望大家都能在紧要关头派上用场哦!完本地的代码后,在本机检查一下是不是你要的版本,如果一切没问题,再直接用回退回来的版本推到远端就大功告成啦!覆盖了远程的分支,你想要撤销刚才的操作,将分支恢复刚才误操作前的状态。的习惯,工作又时常多线开发,需要多个 branch。,把指令中的 ur_commit_hash。名称,然后把 ur_branch。名字,执行完毕后你会看到。,这时候选择一个你要的。换成你的 branch。

2024-03-06 14:41:13 469

原创 程序员的金三银四求职宝典

金三银四,即三月和四月,被广大程序员视为求职的黄金时期。在这两个月里,各大公司纷纷开放招聘,求职者们则通过一轮又一轮的面试,力争心仪的职位。提示:介绍各大公司的文化特点、工作氛围等,帮助读者更好地了解公司,为选择适合自己的公司提供参考。提示:分享职业规划的方法和建议,帮助读者明确自己的职业目标和发展方向,为未来的职业生涯做好规划。提示:分析当前IT行业的发展趋势和市场需求,帮助读者了解行业动态,为求职和职业规划提供指导。提示:针对常见的面试题,提供解题思路和方法,帮助读者巩固基础知识,提升解决问题的能力。

2024-03-05 11:45:29 196

原创 Java 的七种垃圾收集器

用 C 或 C++ 这样的编程语言写一个应用时,需要编写代码来销毁内存中不再需要的对象。当应用程序扩展得越来越复杂时,未使用对象被忽略释放的可能性就越大。这会导致内存泄露,最终内存耗尽,在某个时刻将没有更多的内存可以分配。结果就是应用程序运行失败并出现 OutOfMemoryError 错误。但在 Java 中,垃圾收集器(Garbage Collection)(GC)会在程序执行过程中自动运行,减轻了手动分配内存和可能的内存泄漏的任务。

2024-03-05 11:43:51 1215

原创 精辟发言!!!!转转转

精辟发言!!!!转转转

2024-03-04 16:35:29 156

原创 IDEA推荐使用十大插件

IDEA推荐使用十大插件

2024-03-04 16:17:41 2946 1

原创 Docker 快速入门实操教程(完结)

Docker 快速入门实操教程。

2024-03-01 14:40:17 1328

原创 三大组合拳 (索引、锁、事务) 之 重拳--“索引”

索引是一种帮助数据库系统提高查询效率的数据结构。它通过按照特定的规则对数据进行排序和存储,从而加快数据的检索速度。

2024-02-27 16:42:01 366

原创 一文讲清DTO、BO、PO、VO

DTO (Data Transfer Object) 数据传输对象: DTO设计模式用于将数据从服务端传输到客户端,或者在不同的服务之间传递。通常,DTO包含了特定业务场景需要的数据结构,并且不包含任何业务逻辑。它简化了不同服务或模块之间的交互,使得各个层之间的耦合度降低。BO (Business Object) 业务对象: BO代表了业务逻辑层中的对象,封装了与某个业务相关的数据以及针对这些数据的操作逻辑。一个BO可能由多个实体属性组成,并处理涉及多个实体的复杂业务逻辑。

2024-02-26 14:05:59 7758

原创 localhost和127.0.0.1的区别是什么?

localhost和127.0.0.1的区别是什么?前端同学本地调试的时候,应该没少和localhost打交道吧,只需要执行 npm run 就能在浏览器中打开你的页面窗口,地址栏显示的就是这个可能大家只是用,也没有去想过这个问题。联想到我之前合作过的一些开发同学对它们俩的区别也没什么概念,所以我觉得有必要普及下。

2024-02-23 10:10:59 986

原创 效率工具:Hutool 嘎嘎香

Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。Hutool 中的工具方法来自每个用户的精雕细琢,它涵盖了 Java 开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

2024-02-21 14:56:30 813

原创 SQL注入是什么?以及Mybatis中#号和$号之间的区别

SQL注入是什么?以及Mybatis中#号和$号之间的区别。

2024-02-04 14:46:14 868

原创 finally中的代码一定会执行吗?

finally中的代码一定会执行吗?

2024-01-30 15:30:23 1240

原创 SpringBoot项目多数据源配置与MyBatis拦截器生效问题解析

SpringBoot项目多数据源配置与MyBatis拦截器生效问题解析。

2024-01-29 10:07:42 1191

原创 什么情况会发生Full GC?如何避免频繁Full GC?Minor GC、Major GC 和 Full GC区别?

什么情况会发生Full GC?如何避免频繁Full GC?Minor GC、Major GC 和 Full GC区别?

2024-01-28 00:10:37 1274

原创 浅谈Java线程池,Java线程池解析。

掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解。如果有哪里理解不正确,非常希望大家指出,接下来大家一起分析学习吧。

2024-01-26 10:06:21 783

原创 SpringBoot统一返回和统一异常处理

在 SpringBoot 项目中,统一返回和统一异常处理是非常常用的一环,它们能提高应用的可读性和可维护性,统一返回有助于保持代码一致性和规范性,在前后端联调时更加方便,统一异常处理,减少了代码冗余,对异常处理更加易于管理。

2024-01-25 11:59:21 1400

原创 SpringBoot项目多数据源配置与MyBatis拦截器生效问题解析

SpringBoot项目多数据源配置与MyBatis拦截器生效问题解析。

2024-01-24 14:55:44 1189

原创 彻底搞懂Spring IOC

IOC(Inversion of Control),即控制反转,它是一种设计思想控制(谁控制谁)之前通过new()进行创建对象,主动去创建依赖对象,而现在通过IOC容器负责实例化、配置和组装 bean。反转(反转什么)之前对象主动直接去获取依赖对象,而现在通过Ioc容器查找及注入(DI) 依赖对象。依赖注入DI(Dependency Injection),即依赖注入,是IOC具体的实现,IOC容器动态的将某个依赖注入到对象之中

2024-01-24 14:30:55 822

原创 springboot项目启动时如何排除一个bean?

springboot默认封装了很多的组件,并且把这些组件都进行了自动化配置封装。也就是说,只要是springboot项目,启动类在@SpringBootApplication注解下,在不需要单独配置bean的情况下,本项目所用到的bean在容器启动的时候都会被自动扫描并注入到IOC容器里。这里我所说的bean主要指的是pom文件里面配置的那些starter,以及还有一些springboot默认封装的一些组件,比如数据源,redis等一些组件。

2024-01-23 11:41:45 1273

原创 【图解】计算机网络:一个URL请求的全过程。

【图解】计算机网络:一个URL请求的全过程。

2024-01-23 09:37:31 449

原创 liunx系统命令大全

liunx系统命令大全

2024-01-23 09:35:49 1410

原创 一口气读完 Java 8 ~ Java 21 所有新特性

一口气读完 Java 8 ~ Java 21 所有新特性

2024-01-22 17:49:02 1688

原创 SpringBoot + 自定义注解 + AOP 打造通用开关

SpringBoot + 自定义注解 + AOP 打造通用开关。

2024-01-18 15:15:46 1120 1

原创 Docker瞬间搭建本地开发环境

Docker瞬间搭建本地开发环境。

2024-01-17 16:39:30 1289 1

原创 git 如何撤回已push的代码

git 如何撤回已push的代码

2024-01-17 11:25:44 596

原创 爱不释手的六款IDEA神仙插件,开发效率翻倍!

爱不释手的六款IDEA神仙插件,开发效率翻倍!

2024-01-16 18:02:17 1099 1

转载 Windows:配置多网卡路由表,WiFi和网线内外网不通策略

Windows:配置多网卡路由表,WiFi和网线内外网不通策略。

2022-04-26 09:36:30 4390 2

原创 mysql中出现Specified key was too long; max key length is 767 bytes,需要innodb_large_prefix设置步骤

mysql中出现Specified key was too long; max key length is 767 bytes,需要innodb_large_prefix设置步骤

2022-01-19 10:23:54 1055

原创 安装Docker Desktop报错WSL 2 installation is incomplete,启动docker 出现WSL 2 installation is incomplete。

安装Docker Desktop报错WSL 2 installation is incomplete,启动docker 出现WSL 2 installation is incomplete。

2022-01-18 14:10:35 1498

原创 正则匹配常用表达式

一、校验数字的表达式数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$ 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 有两位小数的正实数:^[0-9]+(\.[0-9]{2})?$

2021-08-12 10:00:12 611

原创 httpd服务,启动,停止,启停。httpd服务启停。

http服务:1、检查http服务:service --status-all | grep httpd2、停止http服务:service httpd stop检查服务是否停止成功:service --status-all | grep httpd3、启动http服务:service httpd start检查服务是否启动成功:service --status-all | grep httpd4、http服务路径cd /var/www/html端口号:一般是ip:80

2021-06-02 18:12:47 4965

java面试指南,学习指南,电子书籍

java面试指南,学习指南。 JAVA面试核心知识点整理(283页) Java面试题2022最新版大合集(485页) JVM调优工具命令详解 JVM指令手册 并发内存模型与线程规范 彻底理解Java中的各种锁 附赠两份文档: Redis命令参考手册完整版 Java开发简历模板

2024-01-29

数据库导出为html页面源码和POM文件依赖,java导出数据库表结构为html

数据库导出为html页面源码和POM文件依赖,java导出数据库表结构为html。

2024-01-23

oracle+mysql+sql server 数据库字典表生成,生成表字段,注释,索引等数据库表结构数据 支持在线化

oracle+mysql+sql server 数据库字典表生成,生成表字段,注释,索引等数据库表结构数据。 支持在线化。

2024-01-17

阿里云,智能语音, 语音识别操作手册

阿里-智能语音V2.X 录音文件识别RESTful API使用文档 阿里-智能语音V2.X 语音合成RESTful API使用文档

2022-11-08

xshell,xftp 工具,你懂得

Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。

2022-11-01

水果忍者网页版,js+css+html

水果忍者网页版,js+css+html 《水果忍者》当人们打开游戏的时候,看到水果图标很自然就会去点击,但是会看到手指划过的提示,于是就会很自然的采用划过的手势去点击图标,并且会把这种交互方式延续到游戏中。

2022-10-29

liunx 系统安装 docker环境,完成docker部署,安装docker,docker部署。一键安装docker

liunx 系统安装 docker环境,完成docker部署,安装docker,docker部署。 适用于运维人员,开发人员,一键安装docker,需要liunx服务器root权限。

2022-05-30

金山打字通脚本.zip

金山打字通速刷脚本。

2021-09-06

mswinsck.ocx.zip

mswinsck.ocx资源文件 通常是将 OCX文件复制到“ X:\Windows\system32 ” (X代表您系统所在目录盘符,如:C:\Windows\system32 ) 目录下。   有些 OCX文件需要手动注册一下才能使用,手动注册方法:   1.将对应版本的 OCX文件复制到“ X:\Windows\system32 ” (X代表您系统所在目录盘符,如:C:\Windows\system32)目录下。   2.在开始菜单中找到“运行(R)” 或者按快捷键 Win+R 。   3.在mswinsck.ocx文件目录下“运行(R)” 中输入 “ regsvr32 mswinsck.ocx” (不含双引号) 回车即可。

2021-07-12

最全全国身份证行政代码新旧对照

统计用区划代码和城乡划分代码,手工整理的,有需要的可以下载,包含三级分类。身份证行政编码对照表.省/直辖市 地级市 县、县级市、区

2021-06-22

web在线酒店管理系统-java+layui

酒店管理系统,附带sql文件。 登陆模块,员工模块,财务模块,车库模块,房间模块,订单模块。 囊括酒店管理系统的基本功能和一些扩展功能,所有功能能够正常使用。 权限控制:共有三种权限控制:admin,worker,service。

2020-06-23

Web 开发(jsp) 同学录(增删该查)

Web 开发(jsp)开发网页同学录,能够实现条件查询,增加,删除,修改,和详细资料。

2019-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除