如何使用 JavaScript 导入和导出 Excel
前言
在现代的Web应用开发中,与Excel文件的导入和导出成为了一项常见而重要的任务。无论是数据交换、报告生成还是数据分析,与Excel文件的交互都扮演着至关重要的角色。本文小编将为大家介绍如何在熟悉的电子表格 UI 中轻松导入 Excel 文件,并以编程方式修改表格或允许用户进行编辑,最后...[2024/3/26]
舒服了,学习了,踩到一个 Lombok 的坑!
你好呀,我是歪歪。 踩坑了啊,最近踩了一个 lombok 的坑,有点意思,给你分享一波。 我之前写过一个公共的服务接口,这个接口已经有好几个系统对接并稳定运行了很长一段时间了,长到这个接口都已经交接给别的同事一年多了。 因为是基础服务嘛,相对稳定,所以交出去之后他也一直没有动过这部分代码。 但是...[2024/3/26]
浅谈分布式任务调度系统Celery的设计与实现
Celery是一个简单、灵活且可靠的分布式任务队列,它支持任务的异步执行、进度监控、重试机制等功能。
Celery的核心组件包括:
Broker:消息中间件,如RabbitMQ。用于任务的发布和订阅。
Worker:任务执行者,运行在各个Worker节点上。
Client:任务提交者,运行在...[2024/3/26]
SpringBoot如何优雅的进行参数校验
写在前面
上一篇文章中我们学会了如何优雅的接收前端参数,传送门
SpringBoot如何优雅的接收前端参数
接收到参数后,接下来要做的就是校验参数的合法性。这一步的重要性就不用多说了。
即使前端已经对数据进行了校验,我们后端还是要再对接收到的数据进行一遍彻底的校验。
这样可以避免张三等人...[2024/3/26]
阿里二面:Java中锁的分类有哪些?你能说全吗?
引言
在多线程并发编程场景中,锁作为一种至关重要的同步工具,承担着协调多个线程对共享资源访问秩序的任务。其核心作用在于确保在特定时间段内,仅有一个线程能够对资源进行访问或修改操作,从而有效地保护数据的完整性和一致性。锁作为一种底层的安全构件,有力地防止了竞态条件和数据不一致性的问题,尤其在涉及多...[2024/3/25]
任何样式,javascript都可以操作,让你所向披靡-云-
前言
习惯了在 c 文件里面编写样式,其实JavaScript 的 CSS对象模型也提供了强大的样式操作能力,
那就随文章一起看看,有多少能力是你不知道的吧。
样式来源
客从八方来, 样式呢, 样式五方来。
chrome旧版本用户自定义样式目录: %LocalAppData%/Goo...[2024/3/25]
阿里二面:谈谈ThreadLocal的内存泄漏问题?问麻了。。。。
引言
ThreadLocal在Java多线程编程中扮演着重要的角色,它提供了一种线程局部存储机制,允许每个线程拥有独立的变量副本,从而有效地避免了线程间的数据共享冲突。ThreadLocal的主要用途在于,当需要为每个线程维护一个独立的上下文变量时,比如每个线程的事务ID、用户登录信息、数据库连...[2024/3/25]
[Java]细节与使用经验
【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https: www.cnblogs.com/cnb-yuchen/p/18032072
出自【进步*于辰的博客】
纯文字阐述,内容比较干。并且,由于考虑到时间长了恐有所遗漏,便即兴记录,并没有对内容进行筛选、排序。...[2024/3/25]
Shiro反序列化分析
前言
Shiro,一个流行的web框架,养活了一大批web狗,现在来对它分析分析。Shiro的gadget是CB链,其实是CC4改过来的,因为Shiro框架是自带Commoncollections的,除此之外还带了一个包叫做CommonBeanUtils,主要利用类就在这个包里
环境搭建
ht...[2024/3/25]
ForkJoinPool在生产环境中使用遇到的一个问题ForkJoinPool在生产环境中使用遇到的一个问题
1、背景
在我们的项目中有这么一个场景,需要消费kafka中的消息,并生成对应的工单数据。早些时候程序运行的好好的,但是有一天,我们升级了容器的配置,结果导致部分消息无法消费。而消费者的代码是使用CompletableFuture.runAsync(() -> {while (true){...[2024/3/25]
从零开始的 dbt 入门教程 (dbt cloud 自动化篇)
一、引
在前面的几篇文章中,我们从 dbt core 聊到了 dbt 项目工程化,我相信前几篇文章足够各位数据开发师从零快速入门 dbt 开发,那么到现在我们更迫切需要解决的是如何让数据更新做到定时化,毕竟作为开发我们肯定没有经历每天定点去手动运行 dbt 命令,那么今天我们将带领大家快速上手...[2024/3/25]
面试官:小伙子知道synchronized的优化过程吗?我:嘚吧嘚吧嘚,面试官:出去!面试官:小伙子知道synchronized的优化过程吗?我:嘚吧嘚吧嘚,面试官:出去!
写在开头
面试官:小伙子,多线程中锁用过吗?
我:那是自然!
面试官:那你知道synchronized的优化吗?
我:synchronized作为重锁,开销大,在早期不被推荐使用,后期进行了优化,至于怎么优化的话,您让我想想哈...
面试官:好的,那你出去好好想吧!
对于synchro...[2024/3/25]
啪,还敢抛出异常啪,还敢抛出异常
前言
去年又重新刷了路遥的《平凡的世界》,最近也在朋友推荐下,来看了路遥的另一部成名作《人生》。
故事中的主人公高加林,虽生在农村,面朝黄土背朝天,却不甘心像父辈一样或者,一心想着摆脱民语的束缚,追求他的理想生活。
然而命运多舛,在他所想象的理想生活中,一次次跌倒,最终不得不承认自己的平凡,...[2024/3/25]
【干货】Java开发者快速上手.NET指南
前言
前几天有小伙伴在技术群里发了一个微软官方出的:适用于Java开发人员的.NET快速入门免费电子书,今天大姚来分享一下Java开发者想要快速上手.NET有哪些教程和优质资料。
微软适用于Java开发人员的.NET快速入门指南
下载阅读地址:https: dotnet.microsoft.c...[2024/3/22]
Java 22正式发布,一文了解全部新特性
就在昨晚,Java 22正式发布!该版本提供了 12 项功能增强,其中包括 7 项预览功能和 1 项孵化器功能。它们涵盖了对 Java 语言、API、性能以及 JDK 中包含的工具的改进。
下面就来一起学习一下该版本都更新了哪些新特性!
Unnamed Variables & Patt...[2024/3/22]
从零开始学Spring Boot系列-集成Kafka
Kafka简介
Apache Kafka是一个开源的分布式流处理平台,由LinkedIn公司开发和维护,后来捐赠给了Apache软件基金会。Kafka主要用于构建实时数据管道和流应用。它类似于一个分布式、高吞吐量的发布-订阅消息系统,可以处理消费者网站的所有动作流数据。这种动作流数据包括页面浏览...[2024/3/22]
Java22重磅发布!!!!卷不动了,真的卷不动了。。。。
就在3月19日,Java22重磅发布。Java22新增了12项增强功能,其中包括七个预览特性和一个孵化器特性,这些功能都显著到足以引起JDK增强提案(JEPs)的关注。它们涵盖了Java语言、其API、性能以及JDK中包含的工具的改进。
真的卷不动了,,前段时间才将项目升级到Java17。。。...[2024/3/22]
开源一个教学型分库分表示例项目 shardingsphere-jdbc-demo
在笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。
分库分表之所以被广泛使用,因为工程相对简单,但分库分表并不仅仅是分片,还是需要考虑如何扩缩容(全量同步、增量同步、数据校验等)。
因此笔者做了一个教学型分库分表示例项目 ,计划将分库分表的技术体系都实际演示一遍。
ht...[2024/3/22]
Solon Web 文件上传的最佳实践
文件上传是 Web 开发中最常见的一个应用场景。一般在处理数据时,会有两种常见的方案:直接把文件流放在内存里,或者把文件流先缓冲到磁盘。
1、如果是高频且文件极小
使用纯内存模式,默认即可。如果高频小文件,是不适合用“临时文件模式”的,磁盘可能容易刷坏。只能多配些内存!
2、如果是低频或者文件...[2024/3/20]
Java SE 22 新增特性Java SE 22 新增特性
Java SE 22 新增特性
作者:Grey
原文地址:
博客园:Java SE 22 新增特性
CSDN:Java SE 22 新增特性
源码
源仓库: Github:java_new_features
使用未命名的变量和模式
我们经常需要定义一些我们根本不需要的变量。常见的例子包...[2024/3/20]
关于volatile与指令重排序的探讨
写在开头
在之前的学习我们了解到,为了充分利用缓存,提高程序的执行速度,编译器在底层执行的时候,会进行指令重排序的优化操作,但这种优化,在有些时候会带来 有序性 的问题。
那何为有序性呢?我们可以通俗理解为:程序执行的顺序要按照代码的先后顺序。 当然,之前我们还说过发生有序性问题时,我们可以通...[2024/3/20]
深入浅出Java多线程(十三):阻塞队列
引言
大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十三篇内容:阻塞队列。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!
在多线程编程的世界里,生产者-消费者问题是一个经典且频繁出现的场景。设想这样一个情况:有一群持续不断地生产资源的线程(我们称之为“...[2024/3/20]
什么是设计模式?
在此分享下个人拙见,文章有点长,需要静下心来慢慢看,或者去WX公众号点击上方的听书↑
学习设计模式需要具备的基础知识
熟悉一门面向对象的编程语言
理解面向对象的三大特性,尤其是多态
能看懂UML的类图
本文就以下几点进行展开
什么是设计模式
如果将代码的设计和编写...[2024/3/19]
设计模式学习(一)单例模式的几种实现方式
目录前言饿汉式懒汉式懒汉式DCLP局部静态式(Meyers'' Singleton)单例模板参考文章
前言
单例模式,其核心目标是确保在程序运行的过程中,有且只有存在一个实例才能保证他们的逻辑正确性以及良好的效率。因此单例模式的实现思路就是确保一个类有且只有一个实例,并提供一个该实例的全局访...[2024/3/19]
面试官:volatile如何保证可见性的,具体如何实现?
写在开头
在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参数,局部变量以及实例常量,类常量多不能进行修饰。
自JDK1.5之后,官网对volatile进...[2024/3/19]
面试官:小伙子,能聊明白JMM给你SSP!我:嘚吧嘚吧一万字,直接征服面试官!面试官:小伙子,能聊明白JMM给你SSP!我:嘚吧嘚吧一万字,直接征服面试官!
写在开头
面试官:小伙子,JMM了解吗?
我:JMM(Java Memory Model),Java内存模型呀,学过的!
面试官:那能给我详细的聊一聊吗,越详细越好!
我:嗯~,确定越详细越好?起码得说一万字,您有时间听完?
面试官:你要是真能说一万字全是干货的话,我当场拍板要你,给你S...[2024/3/18]
写了个简单爬虫,分析 Boss 直聘自动驾驶岗位
两年前,朋友想知道 Bo 直聘上关于自动驾驶的岗位有哪些 ,于是,笔者写了一个简单的爬虫 crawler-bo ,将岗位的信息收集起来。
这篇文章,笔者想分享爬虫 crawler-bo 的设计思路。
1 基本原理 Selenium + chromedriver
对于很多动态渲染的网...[2024/3/18]
springboot如何优雅的获取前端参数
写在前面
对于初学者来说,困难的不是理论知识,而是如何在程序中具体实现。
现在的项目基本上都是前后端分离的项目,如何打通前后端,接收前端传过来的参数呢?
废话不多说,这篇文章就来说一说接收前端参数的具体操作
一、获取路径中的值
1.1 核心代码
@GetMapping("/getArtic...[2024/3/18]
走进volatile的世界,探索它与可见性,有序性,原子性之间的爱恨情仇!
写在开头
在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参数,局部变量以及实例常量,类常量多不能进行修饰。
自JDK1.5之后,官网对volatile进...[2024/3/18]
工作中最常见的6种OOM问题
前言
最近我写的几篇线上问题相关的文章:《糟糕,CPU100%了》《如何防止被恶意刷接口》《我调用第三方接口遇到的13大坑》发表之后,在全网广受好评。
今天接着线上问题这个话题,跟大家一起聊聊线上服务出现OOM问题的6种场景,希望对你会有所帮助。
1 堆内存OOM
堆内存OOM是最常见的...[2024/3/18]
不要升级!不要升级!MacOS 14.4 引发Java 应用崩溃
如果最近您收到了MacOS 14.4的升级提醒,那么建议你暂时先不要升级!
在x上,Java开发领域的一些大v们,也发现了这个问题,并提醒大家不要升级。
根据Java官方发布的文章了解到,该问题主要是由于macOS上运行的进程可能会访问受保护内存区域中的内存。在 macOS 14...[2024/3/18]
多线程系列(二十一) -ForkJoin使用详解
一、摘要
从 JDK 1.7 开始,引入了一种新的 Fork/Join 线程池框架,它可以把一个大任务拆成多个小任务并行执行,最后汇总执行结果。
比如当前要计算一个数组的和,最简单的办法就是用一个循环在一个线程中完成,但是当数组特别大的时候,这种执行效率比较差,例如下面的示例代码。
long...[2024/3/18]
还在用Calendar操作Date?Java8都弃用了,还不知道它的这款强大的工具吗?还在用Calendar操作Date?Java8都弃用了,还不知道它的这款强大的工具吗?
引言
在过去的Java版本中,日期和时间的处理主要依赖于java.util.Date和java.util.Calendar类,然而随着业务系统的复杂以及技术层面的提升,这些传统的日期时间类暴露出了若干显著的不足之处。随着Java8的发布,其引入了一套全新的日期时间API,彻底改变了我们处理日期和...[2024/3/18]
风控规则引擎(一):Java 动态脚本
风控规则引擎(一):Java 动态脚本
日常场景
共享单车会根据微信分或者芝麻分来判断是否交押金
汽车租赁公司也会根据微信分或者芝麻分来判断是否交押金
在一些外卖 APP 都会提供根据你的信用等级来发放贷款产品
金融 APP 中会根据很复杂规则来判断用户是否有借款资格,以及贷款金额。
在简单...[2024/3/15]
JVM内存结构
我们都知道,我们写的Java程序需要先经过编译,生成了.cla 文件(字节码文件)。然而,计算机并不能直接解释.cla 文件里面的内容,这时候就需要一个能加载、解释.cla 文件并且能按.cla 文件里的内容进行处理的一个东西--JVM。
JVM,就是Java虚拟机。它是一种规范,有针对不...[2024/3/15]
netty Recycler对象池netty Recycler对象池
前言
池化思想在实际开发中有很多应用,指的是针对一些创建成本高,创建频繁的对象,用完不弃,将其缓存在对象池子里,下次使用时优先从池子里获取,如果获取到则可以直接使用,以此降低创建对象的开销。
我们最熟悉的数据库连接池就是一种池化思想的应用,数据库操作是非常频繁的,数据库连接的创建、销毁开销很大...[2024/3/15]
在Java中如何优雅的停止一个线程?可别再用Thread.stop()了!
写在开头
经过上几篇博文的学习,我们知道在Java中可以通过new Thread().start()创建一个线程,那今天我们就来思考另外一个问题:线程的终止
自然终止有两种情况:
1. 线程的任务执行完成;
2. 线程在执行任务过程中发生异常。
start之后,如果线程没有走到终止状...[2024/3/15]
缓存把我坑惨了..
故事
春天,办公室外的世界总是让人神往的,小猫带着耳机,托着腮帮,望着外面美好的春光神游着...
一声不和谐的座机电话声打破这份本该属于小猫的宁静,“hi,小猫,线上有个客户想购买A产品规格的商品,投诉说下单总是失败,帮忙看一下啥原因。”客服部小姐姐甜美的声音从电话那头传来。“哦哦,好,我看一...[2024/3/15]
面试官:说说反射的底层实现原理?
反射是 Java 面试中必问的面试题,但只有很少人能真正的理解“反射”并讲明白反射,更别说能说清楚它的底层实现原理了。所以本文就通过大白话的方式来系统的讲解一下反射,希望大家看完之后能真正的理解并掌握“反射”这项技术。
1.什么是反射?
反射在程序运行期间动态获取类和操纵类的一种技术。通过...[2024/3/15]
一张图搞清楚wait、sleep、join、yield四者区别,面试官直接被征服!
写在开头
在线程的生命周期中,不同状态之间切换时,可以通过调用sleep()、wait()、join()、yield()等方法进行线程状态控制,针对这一部分知识点,面试官们也会做做文章,比如问你这些方法的作用以及之间的区别。
那么今天我们就一起来总结一下这几个方法的作用及区别,先画一个思维导图...[2024/3/15]
深入浅出Java多线程(十一):AQS深入浅出Java多线程(十一):AQS
引言
大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十一篇内容:AQS(AbstractQueuedSynchronizer)。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!
在现代多核CPU环境中,多线程编程已成为提升系统性能和并发处理能力的关键手段...[2024/3/13]
多线程系列(十八) -AQS原理浅析
一、摘要
在之前的文章中,我们介绍了 ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier、Semaphore、ThreadPoolExecutor 等并发工具类的使用方式,它们在请求共享资源的时候,都能实现线程同步的效果。
在使用方...[2024/3/13]
Spring多线程事务处理
一、背景
本文主要介绍了spring多线程事务的解决方案,心急的小伙伴可以跳过上面的理论介绍分析部分直接看最终解决方案。
在我们日常的业务活动中,经常会出现大规模的修改插入操作,比如在3.0的活动赛事创建,涉及到十几张表的插入(一张表可能插入一行或者多行数据),由于单线程模型的关系,所有的s...[2024/3/13]
面试准备不充分,被Java守护线程干懵了,面试官主打一个东西没用但你得会
写在开头
面试官:小伙子请聊一聊Java中的精灵线程?
我:什么?精灵线程?啥时候精灵线程?
面试官:精灵线程没听过?那守护线程呢?
我:守护线程知道,就是为普通线程服务的线程嘛。
面试官:没了?守护线程的特点,怎么使用,需要注意啥,Java中经典的守护线程都有啥?
我:不知道。。。 ...[2024/3/11]
VSCode 配置 Spring Boot 项目开发环境
神器IDEA在升级到2023之后越发卡顿, EDU邮箱也不能用了, 照现在这个JDK版本的升级速度, 神器不升级也不行, 需要开始物色替代品. 其它IDE我用得少, VSCode还是比较熟悉的, 可以作为备选项.
两三年前曾经试过配置Java环境, 存在不少问题作罢. 最近搜了下相关的文章, ...[2024/3/11]
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
写在开头
在前面的几篇博客里,我们学习了Java的多线程,包括线程的作用、创建方式、重要性等,那么今天我们就要正式踏入线程,去学习更加深层次的知识点了。
第一个需要学的就是线程的生命周期,也可以将之理解为线程的几种状态,以及互相之间的切换,这几乎是Java多线程的面试必考题,每一年都有大量的同...[2024/3/11]
Java 程序员第一次运行 Python 项目,使用 python-pptx 提取 ppt 中的文字和图片
人工智能时代,最需要学习的编程语言是:python 。笔者是个 python 小白,昨天花了两个小时,第一次成功运行起来 python 项目 。
项目是 powerpoint-extractor ,可以将 ppt 文件中的图片提取出来,并输出到固定的目录。
1 安装 python 环境
...[2024/3/11]
『Java 语法基础』面向对象有哪些特性『Java 语法基础』面向对象有哪些特性
面向对象编程(OOP) 是一个将现实世界抽象为一系列对象的编程范式,这些对象通过消息传递机制来互相交流和协作。
OOP 的主要特性包括四个基本概念:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)以及抽象(Abstraction)。
封装...[2024/3/11]
JavaScript 最新动态:2024 年新功能
前言
随着 Web 技术的日新月异,JavaScript 也在不断地吸收新的特性和技术,以满足日益复杂和多样化的开发需求。在 2024 年,JavaScript 迎来了一系列令人瞩目的新功能,这些功能不仅提升了开发者的效率,也极大地丰富了 Web 应用的表现力和交互性。
在接下来的内容中,我们...[2024/3/7]
面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。
写在开头
昨天有个小伙伴私信说自己面试挂在了“Java有几种创建线程的方式”上,我问他怎么回答的,他说自己有背过八股文,回答了:继承Thread类、实现Runnable接口、实现Callable接口、使用线程池这四种,但是面试官让说出8种创建方式,他没说出来,面试就挂了,面试官给的理由是:只关注...[2024/3/7]