- 1. 线程池线程池是一种管理和复用线程的机制,它可以避免频繁创建和销毁线程的开销,提高程序的性能和稳定性。Java提供了Executor框架来支持线程池的实现,常用的实现类有ThreadPoolExecutor和ScheduledThreadPoolExecutor。示例代码:```java// 创建一个固定大小的线程池ExecutorService executor = Executors... 1. 线程池线程池是一种管理和复用线程的机制,它可以避免频繁创建和销毁线程的开销,提高程序的性能和稳定性。Java提供了Executor框架来支持线程池的实现,常用的实现类有ThreadPoolExecutor和ScheduledThreadPoolExecutor。示例代码:```java// 创建一个固定大小的线程池ExecutorService executor = Executors...
- 要实现Excel一万条数据批量导入,可以使用Apache POI库来读取和解析Excel文件,并使用JDBC连接数据库将数据批量插入。以下是一个简单的示例代码:import java.io.File;import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManager;import ja... 要实现Excel一万条数据批量导入,可以使用Apache POI库来读取和解析Excel文件,并使用JDBC连接数据库将数据批量插入。以下是一个简单的示例代码:import java.io.File;import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManager;import ja...
- 基于Redis实现分布式锁Redis是一个高性能的内存数据库,支持分布式锁的实现。基于Redis实现分布式锁的步骤如下:(1)获取Redis连接(2)使用setnx命令设置键值对,如果返回值为1,则表示获取锁成功,否则获取锁失败(3)如果获取锁失败,则使用get命令获取锁的值,并判断当前时间是否大于锁的超时时间,如果是,则使用getset命令设置新的锁值,并判断返回的值是否与获取的值相等,如... 基于Redis实现分布式锁Redis是一个高性能的内存数据库,支持分布式锁的实现。基于Redis实现分布式锁的步骤如下:(1)获取Redis连接(2)使用setnx命令设置键值对,如果返回值为1,则表示获取锁成功,否则获取锁失败(3)如果获取锁失败,则使用get命令获取锁的值,并判断当前时间是否大于锁的超时时间,如果是,则使用getset命令设置新的锁值,并判断返回的值是否与获取的值相等,如...
- 昨天的排版并不是很满意,而且每天公众号只能发布一篇文章,近期资料看了很多,需要复习巩固一下,在群里,私聊小伙伴问了很多问题,今天都得到了解决。[昨天好奇哈,就像试试countdownLatch容量改为Integer.MaxValue会不会崩。结果了,并不会,只是最大值为2147483647换算为秒大概66年,估计服务器会睡着]JVM:Java Virtual Machine什么是JMM?ja... 昨天的排版并不是很满意,而且每天公众号只能发布一篇文章,近期资料看了很多,需要复习巩固一下,在群里,私聊小伙伴问了很多问题,今天都得到了解决。[昨天好奇哈,就像试试countdownLatch容量改为Integer.MaxValue会不会崩。结果了,并不会,只是最大值为2147483647换算为秒大概66年,估计服务器会睡着]JVM:Java Virtual Machine什么是JMM?ja...
- 长话短说停止发布有关“Go 中的模式”的内容,它们只不过是移植到 Go 语法的冗长 Java 样板,甚至不使用正确的 Go 习惯用法。人们不断发布“Go 中的模式 - XXXXX”文章。它们甚至不是面向对象的模式,但人们一直按原样发布它们。这些“模式”并不是用 Go 惯用语言编写的。即使它们是,很容易发现,Go 也不是面向对象的语言;它是面向对象的语言。或者是吗?那么什么是面向对象呢?创建 ... 长话短说停止发布有关“Go 中的模式”的内容,它们只不过是移植到 Go 语法的冗长 Java 样板,甚至不使用正确的 Go 习惯用法。人们不断发布“Go 中的模式 - XXXXX”文章。它们甚至不是面向对象的模式,但人们一直按原样发布它们。这些“模式”并不是用 Go 惯用语言编写的。即使它们是,很容易发现,Go 也不是面向对象的语言;它是面向对象的语言。或者是吗?那么什么是面向对象呢?创建 ...
- 昨天忘关电脑了,今天极其极其慢,开了没几个应用,一卡一卡,同步打开几个笔记都卡到不能加载,平时上网课吧,小伙伴说不系统,那根据网课的大纲白*自己找资料不香么?大纲太大了,放在最后。1.进程与线程的关系进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间)。线程则是进程中执行运算的最小单位,即执行处理机调度的基本单位。2.内存与线程内存管理与线程进程组成内存分配,系统不会为线程... 昨天忘关电脑了,今天极其极其慢,开了没几个应用,一卡一卡,同步打开几个笔记都卡到不能加载,平时上网课吧,小伙伴说不系统,那根据网课的大纲白*自己找资料不香么?大纲太大了,放在最后。1.进程与线程的关系进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间)。线程则是进程中执行运算的最小单位,即执行处理机调度的基本单位。2.内存与线程内存管理与线程进程组成内存分配,系统不会为线程...
- 继续根据大纲整理问题。10:对象锁和类锁synchronized常用于修饰方法和代码块,对象锁作用于对象的实例方法(不能通过类名调用,通过创建对象调用),比如单例模式的双重检索机制,而类锁并非真的存在。11:对象锁的同步与异步同步:即为共享,同步为了解决线程安全问题异步:即线程间互不影响,相互独立/** * @author zhaokk * @create 2020-02-23-14:45 ... 继续根据大纲整理问题。10:对象锁和类锁synchronized常用于修饰方法和代码块,对象锁作用于对象的实例方法(不能通过类名调用,通过创建对象调用),比如单例模式的双重检索机制,而类锁并非真的存在。11:对象锁的同步与异步同步:即为共享,同步为了解决线程安全问题异步:即线程间互不影响,相互独立/** * @author zhaokk * @create 2020-02-23-14:45 ...
- 根据大纲整理资料。其实这个完结不了的,因为这个追踪源码debug太耗时间了,都是根据往期资料整理一下,怕时间久了就不太系统,另外最近要看的资料太多,所以尽快整理完吧,要想特别细的整理,或者需要更深层次的理解,还是要下功夫的,美团的技术博客对并发及应用都做了整理,追踪源码和整理的图文都很完美。我根据网易云课堂的大纲整理下,加深下印象,因为笔记记得太散,整理起来也比较麻烦。33:Reentran... 根据大纲整理资料。其实这个完结不了的,因为这个追踪源码debug太耗时间了,都是根据往期资料整理一下,怕时间久了就不太系统,另外最近要看的资料太多,所以尽快整理完吧,要想特别细的整理,或者需要更深层次的理解,还是要下功夫的,美团的技术博客对并发及应用都做了整理,追踪源码和整理的图文都很完美。我根据网易云课堂的大纲整理下,加深下印象,因为笔记记得太散,整理起来也比较麻烦。33:Reentran...
- 之前找过很多开源项目,用于生成代码,和权限管理,但功能全的需要付费,小功能的项目又不实用,这次的开源项目,功能十分强大,且拿来即用。介绍SpringBoot_v2项目是努力打造springboot框架的极致细腻的脚手架。原生纯净,可在线生成controller、mapperxml、dao、service、html、sql代码,极大减少开发难度,增加开发进度神器脚手架!!不求回报,你使用快乐就... 之前找过很多开源项目,用于生成代码,和权限管理,但功能全的需要付费,小功能的项目又不实用,这次的开源项目,功能十分强大,且拿来即用。介绍SpringBoot_v2项目是努力打造springboot框架的极致细腻的脚手架。原生纯净,可在线生成controller、mapperxml、dao、service、html、sql代码,极大减少开发难度,增加开发进度神器脚手架!!不求回报,你使用快乐就...
- 杀死一个开发,只需要变更三次需求。2.1-volatile的应用(wall la tai l 还是 wall lei tai l)它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值,它不会引起线程上下文的切换和调度CPU术语定义volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的汇编... 杀死一个开发,只需要变更三次需求。2.1-volatile的应用(wall la tai l 还是 wall lei tai l)它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值,它不会引起线程上下文的切换和调度CPU术语定义volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的汇编...
- 那篇并编程艺术3写完了,但下午发现了原创度更高的个人真实案例分析,反正已经写完了,随时可以发,个人问题的优化记忆才更深。1.go to语法今天偶然看到ThreadPoolExecutor的addworker方法用到了go to,他到底是个优雅高级语法,还是个混淆语法。public static void main(String[] args) { for (int i = 0;... 那篇并编程艺术3写完了,但下午发现了原创度更高的个人真实案例分析,反正已经写完了,随时可以发,个人问题的优化记忆才更深。1.go to语法今天偶然看到ThreadPoolExecutor的addworker方法用到了go to,他到底是个优雅高级语法,还是个混淆语法。public static void main(String[] args) { for (int i = 0;...
- 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。参考《Java并发编程的艺术》happens-before简介从JDK 5开始,Java使用新的JSR-133内存模型(除非特别说明,本文针对的都是JSR-133内存模型)。JSR-133使用happens-before的概念来阐述操作之间的内... 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。参考《Java并发编程的艺术》happens-before简介从JDK 5开始,Java使用新的JSR-133内存模型(除非特别说明,本文针对的都是JSR-133内存模型)。JSR-133使用happens-before的概念来阐述操作之间的内...
- 抢红包的这个问题,最最开始关注是因为阿里的场景面试题提到过的当时的代码处理还很简单,先从普通场景探索下红包问题拼手气红包–线性切割法场景:100块钱红包,群内50人,红包数量为20个,30个人将抢不到红包这个算法可以把总金额想象成一条线段,每个人都有机会切一刀,前面的人切完(有失公平性,会出现第一个切一大段的情况,后面需要改造),剩下的后面的人再接着切剩下的,这样越是前面的人截取的长度(理解... 抢红包的这个问题,最最开始关注是因为阿里的场景面试题提到过的当时的代码处理还很简单,先从普通场景探索下红包问题拼手气红包–线性切割法场景:100块钱红包,群内50人,红包数量为20个,30个人将抢不到红包这个算法可以把总金额想象成一条线段,每个人都有机会切一刀,前面的人切完(有失公平性,会出现第一个切一大段的情况,后面需要改造),剩下的后面的人再接着切剩下的,这样越是前面的人截取的长度(理解...
- 在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,一一分析每个部分的结构。继续看这张表:接着上一博文所说,魔数后面分别是次版本号和主版本号。由上图可知其分别占用两个字节。被蓝色框框住的就是次版本号,划红线的就是主版本号。再次说明,Class文件内部的数据是按照规则紧凑排列的,中间不会有空隙... 在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,一一分析每个部分的结构。继续看这张表:接着上一博文所说,魔数后面分别是次版本号和主版本号。由上图可知其分别占用两个字节。被蓝色框框住的就是次版本号,划红线的就是主版本号。再次说明,Class文件内部的数据是按照规则紧凑排列的,中间不会有空隙...
- 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文... 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签