java代码审计-某酒店管理系统
java代码审计-某酒店后台管理系统
目录java代码审计-某酒店后台管理系统1、简介2、文件上传漏洞3、CSRF漏洞4、存储型XSS
1、简介
文章只作研究学习,请勿非法渗透测试;
该系统是使用SpringMVC+Mysql搭建开发的一套中小型企业酒店后台管理系统;
这里只对源代码进行...[2024/5/8]
面试官:这就是你理解的Java多线程基础?
引言
现代的操作系统(Windows,Linux,Mac OS)等都可以同时打开多个软件(任务),这些软件在我们的感知上是同时运行的,例如我们可以一边浏览网页,一边听音乐。而CPU执行代码同一时间只能执行一条,但即使我们的电脑是单核CPU也可以同时运行多个任务,如下图所示,这是因为我们的 CP...[2024/5/6]
面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?
一、写在开头
我们在上一篇写ReentrantReadWriteLock读写锁的末尾留了一个小坑,那就是读写锁因为写锁的悲观性,会导致 “写饥饿”,这样一来会大大的降低读写效率,而今天我们就来将此坑填之!填坑工具为:StampedLock,一个素有Java锁王称号的同步类,也是在 java.u...[2024/4/29]
Understand Abstraction and Interface
Foreword
抽象和接口是Java中的两个关键字,也是两种最基本的优化软件项目手段。为什么说它们是一种优化项目的手段?
人分三六九等,不同等级的人,所接触的事和处理的事是不一样的。同理,项目也分大项目和中项目和小项目,大、中、小项目所承载的目标也是不一样的。
先说小项目,如果你使用Jav...[2024/4/24]
Beetl 源码解析:GroupTemplate 类Beetl 源码解析:GroupTemplate 类
本文首发于公众号:腐烂的橘子
前言
Beetl 是一款 Java 模板引擎,在公司的项目中大量运用,它的作用是写通用代码时,有一些差异化的逻辑需要处理,这时可以把这些差异化的逻辑写在模板里,程序直接调用,实现了代码的低耦合。
有人问差异化的东西为什么不能通过配置实现?原因是配置只能将一些...[2024/4/23]
Java面试题:请谈谈Java中的volatile关键字?
在Java中,volatile关键字是一种特殊的修饰符,用于确保多线程环境下的变量可见性和顺序性。当一个变量被声明为volatile时,它可以确保以下两点:
内存可见性:当一个线程修改了一个volatile变量的值,其他线程会立即看到这个改变。这是因为volatile关键字会禁止CPU缓...[2024/4/23]
线程池的运行逻辑与你想象的不一样,它是池族中的异类
只要是 web 项目,程序都会直接或间接使用到线程池,它的使用是如此频繁,以至于像空气一样,大多数时候被我们无视了。但有时候,我们会相当然地认为线程池与其它对象池(如:数据库连接池)一样,要用的时候向池子索取,用完后归还给它即可。然后事实上,线程池独树一帜、鹤立鸡群,它与普通的对象池就是不同。本...[2024/4/23]
Trino418版本动态加载catalog不需要重启集群修改思路及实现2
原来没事的时候改了一个这样的功能,当时也没有仔细研究,后来也没继续弄。详细可以参考 https: www.cnblogs.com/liuzx8888/p/17635913.html
当时有1个问题:新增数据源需要每一个节点都去调取API注册,这...[2024/4/19]
JDBC数据库汇总Attack研究
前言
针对除Mysql的其它数据库的jdbc attack分析
H2 RCE
介绍
H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途:
第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发...[2024/4/19]
【进阶篇】Java 实际开发中积累的几个小技巧(二)
目录前言六、自定义注解6.1定义注解6.2切面实现6.3业务使用七、抽象类和接口7.1隔离业务层与 ORM 层7.2隔离子系统的业务实现7.3选择对比文章小结
前言
笔者目前从事一线 Java 开发今年是第 3 个年头了,从 0-1 的 SaaS、PaaS 的项目做过,基于多租户的标准化开发...[2024/4/17]
setTimeout(fn, 0) // it works - JavaScript 事件循环 动画演示setTimeout(fn, 0) // it works - JavaScript 事件循环 动画演示
在前端代码中很经常看到使用 setTimeout(fn, 0),如下面代码所示,乍一看很多余,但是移除了可能会出现一些奇奇怪怪的问题。要解释这个就需要理解 事件循环(Event Loop),下面会通过一些例子和动画来辅助理解事件循环
setTimeout(() => {
调用一些...[2024/4/17]
今天我们来聊一聊Java中的Semaphore
写在开头
在上几天写《基于AQS手写一个同步器》时,很多同学留言说里面提到的Semaphore,讲得太笼统了,今天趁着周末有空,咱们就一起详细的学习和梳理一把 Semaphore。
什么是Semaphore?
在前面我们讲过的synchronized 和 ReentrantLock 都是一次只...[2024/4/15]
深入理解并发和并行深入理解并发和并行
1 并发与并行
为什么操作系统上可以同时运行多个程序而用户感觉不出来?
因为操作系统营造出了可以同时运行多个程序的假象,通过调度进程以及快速切换CPU上下文,每个进程执行一会就停下来,切换到下个被调度到的进程上,这种切换速度非常快,人无法感知到,从而产生了多个任务同时运行的错觉。
并发(co...[2024/4/15]
美团一面,面试官让介绍AQS原理并手写一个同步器,直接凉了
写在开头
今天在牛客上看到了一个帖子,一个网友吐槽美团一面上来就让手撕同步器,没整出来,结果面试直接凉凉。
就此联想到一周前写的一篇关于AQS知识点解析的博文,当时也曾埋下伏笔说后面会根据AQS的原理实现一个自定义的同步器,那今天就来把这个坑给填上哈。
常用的AQS架构同步器类
自定义同步...[2024/4/11]
keycloak~RequiredActionProvider的使用
使用场景
RequiredActionProvider,它是在认证过程中,需要当前登录的用户执行个性化的动作;当用户符合条件,就被执行RequiredActionProvider对作,当RequiredActionProvider没有正常提交(context.succe ())之前,当前用户仍然...[2024/4/11]
ThreadLocal真会内存泄漏?
前言
在讨论ThreadLocal存在内存泄漏问题之前,需要先了解下面几个知识点:
什么是内存泄漏?什么是ThreadLocal?为什么需要ThreadLocal?
数据一致性问题如何解决数据一致性问题?
当我们了解了上面的知识点以后,会带大家一起去了解真相。包括下面几个知识点:
为什...[2024/4/11]
新手真的别再用过时的jenkins freestyle了,10分钟教你搞定快速编写jenksinfile,快速离线调试
Pipeline是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。它通过Domain Specific Language(DSL)syntax定义Pipeline As Code并且实现持续交付的目的。
Pip...[2024/4/10]
java switch 自定义表格的渲染和编辑示例java switch 自定义表格的渲染和编辑示例
目录正常使用表格自定义表格样式自定义Model渲染器代码:编辑器代码:
不管是什么编程语言,都已经内置好很多典型的前端组件给你使用,使用这些默认组件基本能完成80%的工作了,但是还是有些独特的需求完成不了,比如点击一个按钮,按钮按下要出现五彩斑斓的背景阴影,这种就需要对组件进行自定义了。
...[2024/4/10]
美团一面:说说synchronized的实现原理?问麻了。。。。
引言
在现代软件开发领域,多线程并发编程已经成为提高系统性能、提升用户体验的重要手段。然而,多线程环境下的数据同步与资源共享问题也随之而来,处理不当可能导致数据不一致、死锁等各种并发问题。为此,Java语言提供了一种内置的同步机制——synchronized关键字,它能够有效地解决并发控制的问题...[2024/4/8]
System.gc 之后到底发生了什么 ?
本文基于 OpenJDK17 进行讨论
在 JDK NIO 针对堆外内存的分配场景中,我们经常会看到 System.gc 的身影,比如当我们通过 FileChannel#map 对文件进行内存映射的时候,如果 JVM 进程虚拟内存空间中的虚拟内存不足,JVM 在 native 层就会抛出 ...[2024/4/8]
Array and Set work process
目录Array work principle分析Array操作步骤数readfindinsertdeleteSet work principle分析Set操作步骤数readfindinsertdeleteJava Collection Cla
从单词来看,
Array 很好理解一批一批...[2024/4/8]
利用BCEL字节码构造内存马
前言
BCEL加载类有一个特点,只可以加载jdk原生的类,其它框架的类,都会报错Cla notFound的错误。但是,BCEL的Cla Loader在8u252后被删除了
注入流程分析
获取context
一种比较通用的获取context的方式
WebApplicationContext c...[2024/4/8]
提高生产力!这10个Lambda表达式必须掌握,开发效率嘎嘎上升!
在Java8及更高版本中,Lambda表达式的引入极大地提升了编程的简洁性和效率。本文将围绕十个关键场景,展示Lambda如何助力提升开发效率,让代码更加精炼且易于理解。
集合遍历
传统的for-each循环对集合进行遍历虽然直观,但在处理大量数据时显得冗长。例如:
List<Stri...[2024/4/3]
一文搞懂Java的工具类和API
1.工具类(Utility Cla )
在Java中,工具类通常包含一系列静态方法,用于执行常见的任务,这些任务可能不直接关联到特定的业务逻辑,而是用于处理一些基础的数据转换、字符串操作、文件操作等。工具类通常被设计为无状态的,即不包含任何实例变量,并且所有的方法都是静态的。
例如,下面是一个...[2024/4/3]
判断字符串是否唯一 - 怀念-2018
算法1:用于判断一个字符串的字符是否都是唯一的,即没有重复的字符。
解决思路:首先将输入的字符串转换为字符数组,然后对字符数组进行排序。之后,使用一个while循环遍历排序后的字符数组,如果发现有任何两个相邻的字符相同,则返回false,表示字符串中有重复的字符。如果循环结束后都没有发现相邻的...[2024/4/3]
基于Java NIO 写的一个简单版 Netty 服务端
A Simple Netty Based On JAVA NIO
基于Java NIO 写的一个简单版 Netty 服务端
前置知识
NIO
NIO 一般指 同步非阻塞 IO,同样用于**描述程序访问数据方式 **的还有BIO(同步阻塞)、AIO(异步非阻塞)
同步异步指获取结果的方式,同...[2024/4/3]
简直了,被“Java并发锁”问题追问到自闭...
故事
地铁上,小帅双目空洞地望着窗外...绝望,发自内心地感到绝望...
距离失业已经过去两个月了,这是小帅接到的第四次面试邀请。“回去等通知吧...”,简简单单的六个字,把小帅的心再次打入了冰窖。
上次“【ThreadLocal问出花】”,小帅其实也有吸取教训得,这次对于多线程的问题还是做...[2024/4/3]
.net和java串口通讯压力测试对比, java完胜
最近由于工作要求,需要对一个串口通讯设备进行压力测试,要求连续持续对串口设备发送指令,无间隔,测试设备是否会死机。
要求做到毫秒级,测试第三方的工具,基本上都无法达到毫秒级,最少的也是10毫秒。
于是就自己写代码测试。通过.net写,发现最少能达到1毫秒,但是有遗漏,看日志如下
2024-...[2024/4/1]
如何在Java中读取超过内存大小的文件
读取文件内容,然后进行处理,在Java中我们通常利用 Files 类中的方法,将可以文件内容加载到内存,并流顺利地进行处理。但是,在一些场景下,我们需要处理的文件可能比我们机器所拥有的内存要大。此时,我们则需要采用另一种策略:部分读取它,并具有其他结构来仅编译所需的数据。
接下来,我们就来说说...[2024/3/29]
MappedByteBuffer VS FileChannel:从内核层面对比两者的性能差异
本文基于 Linux 内核 5.4 版本进行讨论
自上篇文章《从 Linux 内核角度探秘 JDK MappedByteBuffer》 发布之后,很多读者朋友私信我说,文章的信息量太大了,其中很多章节介绍的内容都是大家非常想要了解,并且是频繁被搜索的内容,所以根据读者朋友的建议,笔者决定将...[2024/3/29]
【编译原理】手工打造词法分析器
难点:
如何拆词?如何定义分隔符?
匹配的优先级是什么?
关键点:
有限自动机
元素拆分
解析 age >= 45
为了入门字词是如何拆分识别的,我们举一个最简单的例子age >= 45
只有三种类型:标识符(age)、大于号(GE)、数字字面量(IntLiteral)...[2024/3/29]
IDEA (任意 JetBrains IDE)拆分先前 commit
最近在合并上游代码,遇到了一个问题:某个 commit 杂糅了几个不同的特性修改,这可能会导致 rebase 上游代码时需要再对该 commit 进行额外的代码冲突处理
解决方法:合并上游分支前,拆分杂糅的 commit,并将其中不同的特性修改合并(Squash)回相关的 commit。可以直...[2024/3/27]
RMI反序列化分析
RMI介绍
RMI全程Remote Method Invocation (远程方法引用),RMI有客户端和服务端,还有一个注册中心,在java中客户端可以通过RMI调用服务端的方法,流程图如下:
服务端创建RMI后会在RMI Registry(注册中心)注册,之后客户端都是从注册中心调用方...[2024/3/27]
如何使用 JavaScript 导入和导出 Excel
前言
在现代的Web应用开发中,与Excel文件的导入和导出成为了一项常见而重要的任务。无论是数据交换、报告生成还是数据分析,与Excel文件的交互都扮演着至关重要的角色。本文小编将为大家介绍如何在熟悉的电子表格 UI 中轻松导入 Excel 文件,并以编程方式修改表格或允许用户进行编辑,最后...[2024/3/26]
舒服了,学习了,踩到一个 Lombok 的坑!
你好呀,我是歪歪。 踩坑了啊,最近踩了一个 lombok 的坑,有点意思,给你分享一波。 我之前写过一个公共的服务接口,这个接口已经有好几个系统对接并稳定运行了很长一段时间了,长到这个接口都已经交接给别的同事一年多了。 因为是基础服务嘛,相对稳定,所以交出去之后他也一直没有动过这部分代码。 但是...[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]细节与使用经验[Java]细节与使用经验
【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https: www.cnblogs.com/cnb-yuchen/p/18032072
出自【进步*于辰的博客】
纯文字阐述,内容比较干。并且,由于考虑到时间长了恐有所遗漏,便即兴记录,并没有对内容进行筛选、排序。...[2024/3/25]
ForkJoinPool在生产环境中使用遇到的一个问题ForkJoinPool在生产环境中使用遇到的一个问题
1、背景
在我们的项目中有这么一个场景,需要消费kafka中的消息,并生成对应的工单数据。早些时候程序运行的好好的,但是有一天,我们升级了容器的配置,结果导致部分消息无法消费。而消费者的代码是使用CompletableFuture.runAsync(() -> {while (true){...[2024/3/25]
从零开始的 dbt 入门教程 (dbt cloud 自动化篇)从零开始的 dbt 入门教程 (dbt cloud 自动化篇)
一、引
在前面的几篇文章中,我们从 dbt core 聊到了 dbt 项目工程化,我相信前几篇文章足够各位数据开发师从零快速入门 dbt 开发,那么到现在我们更迫切需要解决的是如何让数据更新做到定时化,毕竟作为开发我们肯定没有经历每天定点去手动运行 dbt 命令,那么今天我们将带领大家快速上手...[2024/3/25]
面试官:小伙子知道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正式发布,一文了解全部新特性
就在昨晚,Java 22正式发布!该版本提供了 12 项功能增强,其中包括 7 项预览功能和 1 项孵化器功能。它们涵盖了对 Java 语言、API、性能以及 JDK 中包含的工具的改进。
下面就来一起学习一下该版本都更新了哪些新特性!
Unnamed Variables & Patt...[2024/3/22]
Java22重磅发布!!!!卷不动了,真的卷不动了。。。。
就在3月19日,Java22重磅发布。Java22新增了12项增强功能,其中包括七个预览特性和一个孵化器特性,这些功能都显著到足以引起JDK增强提案(JEPs)的关注。它们涵盖了Java语言、其API、性能以及JDK中包含的工具的改进。
真的卷不动了,,前段时间才将项目升级到Java17。。。...[2024/3/22]
Java SE 22 新增特性
Java SE 22 新增特性
作者:Grey
原文地址:
博客园:Java SE 22 新增特性
CSDN:Java SE 22 新增特性
源码
源仓库: Github:java_new_features
使用未命名的变量和模式
我们经常需要定义一些我们根本不需要的变量。常见的例子包...[2024/3/20]
关于volatile与指令重排序的探讨关于volatile与指令重排序的探讨
写在开头
在之前的学习我们了解到,为了充分利用缓存,提高程序的执行速度,编译器在底层执行的时候,会进行指令重排序的优化操作,但这种优化,在有些时候会带来 有序性 的问题。
那何为有序性呢?我们可以通俗理解为:程序执行的顺序要按照代码的先后顺序。 当然,之前我们还说过发生有序性问题时,我们可以通...[2024/3/20]
深入浅出Java多线程(十三):阻塞队列
引言
大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十三篇内容:阻塞队列。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!
在多线程编程的世界里,生产者-消费者问题是一个经典且频繁出现的场景。设想这样一个情况:有一群持续不断地生产资源的线程(我们称之为“...[2024/3/20]
面试官:volatile如何保证可见性的,具体如何实现?面试官:volatile如何保证可见性的,具体如何实现?
写在开头
在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参数,局部变量以及实例常量,类常量多不能进行修饰。
自JDK1.5之后,官网对volatile进...[2024/3/19]