Java
6.13API接口服务类漏洞探针
ip地址解析:www.x.x.x.com, 对应网站目录为d:/wwwroot/xiaodi/ 而127.x.x.x,对应网站目录为d:/wwwroot/,可能存在网站备份文件zip,所以ip网址端口都的扫描; 协议端弱口令爆破: 超级弱口令检查工具; 端口服务安全问题(用于无思路时) 思路:利用探针对端口探测后,对口令安全、Web漏洞、中间件版本漏洞等; API接口Application
从零手写实现 nginx-21-modules 模块
前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat 手写 nginx 系列 如果你对 nginx 原理感兴趣,可以阅读: 从零手写实现 nginx-01-为什
Java技术书籍大全
目录入门书籍基础书籍多线程与并发网络编程数据结构语言基础进阶性能优化响应式编程JVM虚拟机代码&设计优化设计模式框架与中间件数据库缓存与NoSQL消息队列ORM框架Spring家族高并发分布式搜索引擎大数据架构分布式架构微服务架构架构方法论JVM周边语言项目管理&领导力&流程项目管理团队管理数学与算法数学算法职业素养与个人成长职业素养提升个人软技能大厂出品阿里巴巴技术丛书京
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下: 90~100为A; 80~89为B; 70~79为C; 60~69为D; 0~59为E; Input 一个整数。 Output 输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
package Demo3; import java.util.Scanner; public class D2 { /** * 90~100为A; * * 80~89为B; * * 70~79为C; * * 60~69为D; * * 0~59为E; * */ public static void main(String[] args) { Scanner sc =
求实数的绝对值 Description 求实数的绝对值。 Input 一个实数 Output 输出一行,结果保留两位小数
Scanner sc = new Scanner(System.in); System.out.println("请输入:"); double value = sc.nextDouble(); //格式化:使用 String.format("%.2f", absoluteNumber // ) 将绝对值转换为带有两位
Bootstrap的datetimepicker默认自动打开弹框(js中打开弹窗)
$(function(){ $('#datetimepicker').datetimepicker('show'); });
以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的
本文基于 OpenJDK17 进行讨论 1. Reference 相关概念及其应用场景总览 Reference(引用)是 JVM 中非常核心且重要的一个概念,垃圾回收器判断一个对象存活与否都是围绕着这个 Reference 来的,JVM 将 Reference 又细分为几种具体的引用类型,它们分别是:StrongReference,SoftReference,WeakReference,Ph
Nexus Repository Manager3 EL注入(CVE-2018-16621)复现
描述 在 org.sonatype.nexus.security.privilege.PrivilegesExistValidator 和 org.sonatype.nexus.security.role.RolesExistValidator 类中,会将没有找到的 privilege 或 role 放入错误模板中,而在错误模板在渲染的时候会提取其中的EL表达式并执行 产品介绍 Nexus Rep
自定义MyBatis插件
插件原理回顾 在前面,我们通过 MyBatis插件机制介绍与原理 分析了 MyBatis 插件的基本原理,但是可能还只是理论上的分析,没有实战的锻炼可能理解的还是不够透彻。接下来,我们通过自定义插件实例来进一步深度理解 MyBatis 插件的插件机制。 插件接口 MyBatis 插件接口-Interceptor 有哪些方法? intercept 方法,插件的核心方法 plugin
二叉搜索树(待补充)
二叉搜索树,是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 任意节点的左,右子树也分别为二叉搜索树; 没有键值相等的节点。 用Java来表示二叉树 首先,需要一个节点对象的类。这个对象包含数据域和指向节点的两个子节点的引用。 其次,需要一个树对象的类。这
Oracle报错:“Error in invoking target ‘agent nmhs’ of makefile...”
Oracle报错:“Error in invoking target ‘agent nmhs’ of makefile...” 前言:Oracle在安装过程中的报错一定要重视,这决定你后续是否能完成安装以及是否能使用。我这边会陆续汇总一些报错现象以及解决方案共享。##Install Product 86%报错信息 :“Error in invoking target '
elasticsearch之ik分词器和自定义词库实现
ElasticSearch分词器 所谓的分词就是通过tokenizer(分词器)将一个字符串拆分为多个独立的tokens(词元-独立的单词),然后输出为tokens流的过程。 例如"my name is HanMeiMei"这样一个字符串就会被默认的分词器拆分为[my,name,is HanMeiMei].ElasticSearch中提供了很多默认的分词器,我们可以来演示看看效果 但
面试官:谈谈对SpringAI的理解?
Spring AI 已经发布了好长时间了,目前已经更新到 1.0 版本了,所以身为 Java 程序员的你,如果还对 Spring AI 一点都不了解的话,那就有点太落伍了。 言归正传,那什么是 Spring AI?如何快速进行 Spring AI 开发呢? 1.什么是Spring AI? Spring AI 是 Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发
Nacos 2.0 升级文档以及鉴权
权限校验 | Nacos 本文档包含两个部分:Nacos2.0.0的部署,以及如何从Nacos1.x平滑升级至Nacos2.0.0。 部署部分,适用于直接部署Nacos2.0.0以上版本的用户。 升级部分,适用于从Nacos1.X版本平滑升级到Nacos2.0.0版本(以及2.0.0-BETA版本)的用户。Nacos2.0.0-ALPHA版本无法进行平滑升级,请勿参照本文档进行升级。
DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门
场景 DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139491855 Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑: https://b
Future集合会等线程池执行完才开始遍历吗?
先说结论:Future集合并不是等线程池执行完才开始遍历,而是线程池内的线程执行完一条Future集合就立即遍历一条 在使用线程池的业务场景下,我们经常需要获取线程执行的返回值,此时我们需要Callable对象当做线程池参数并用List<Future>接收,然后遍历List<Future>获取我们想要的值。 但是,如果List<Future>是等线程池中所有的
Java线程池maximumPoolSize和workQueue哪个先饱和?
先说结论,真正的饱和顺序是corePoolSize -> workQueue -> maximumPoolSize。 我们都知道,线程池有以下参数 corePoolSize:核心线程池大小,即使没有任务,这些线程也会一直存活。 maximumPoolSize:最大线程池大小,当任务量超过核心线程数时,最多可以创建这么多线程。 keepAliveTime:非核心线程在空闲时等待新任
软件工程团队作业 总结
1. 项目概述 心语航标:连接心灵的数字港湾 项目名称:心语航标安卓App,旨在打造一个集心理健康调查、人工智能咨询服务、匿名社交、高效通讯及丰富心理教育资源于一体的综合平台。在这个数字时代,心语航标如同一座灯塔,为需要心灵慰藉和成长的用户提供了一个安全、私密且充满支持的环境。 主要功能: 调查问卷:通过专
简单导出更新版---详细
1.导入依赖 时间的格式一样要注意 格式不对 会导致 解析错误 导出不合理的数据 一定记得加produces="application/octet-stream" 切记!!!!!!! 处理数据 如果想要文字 进行封装方法处理 当查询条件是ids时 用 来处理 这是用的时候注意事项 &n
动态线程池思想学习及实践
相关文档 美团线程池实践:https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html 线程池思想解析:https://www.javadoop.com/post/java-thread-pool 引言 在后台项目开发过程中,我们常常借助线程池来实现多线程任务,以此提升系统的吞吐率和响应性;而线程池的参数配置却是一
如何快速开发一个鸿蒙原生app
华为鸿蒙操作系统(HarmonyOS)自2.0版本正式上线以来,在短时间内就部署超过了2亿台设备,纵观全球操作系统的发展史,也是十分罕见的。与其他手机操作系统不同,HarmonyOS自诞生之日起,就是一款面向多设备、分布式的万物互联操作系统。“1+8+N”是HarmonyOS打造的全场景战略,其中,“1”是智能手机,“8”是指大屏、音箱、眼镜、手表、车机、耳机、平板电脑和PC“八大行星”。 &n
A项目往redis存数据,B项目取不到的解决方案
我往A项目中存了LoginUser类型的数据, 在A项目中取数据可以直接取。但是到了B项目中,就取不到了 这是因为: redis中存的是复杂对象,对这个复杂对象进行反序列化,要有他的完全限定名。 Java的默认序列化机制会记录类的完全限定名(包括包名),在反序列化时也需要找到这个类。这意味着如果类的包名或者类路径不同,就会导致反序列化失败。 为了避免这些问题,通常会使用
单连接多路径,合并多服务器公网带宽---MPTCP---aggligator
https://sliphua.work/try-mptcp/#%E5%BC%80%E5%8F%91%E8%80%85%E6%8E%A5%E5%85%A5 对单一连接进行拆分发送合并接收,有拓展传输层 TCP 的 MPTCP 标准,也有使用普通 TCP 自定义应用层协议来实现的纯上层工具。理论上来说,前者的上限更高,后者兼容度更广。 这几天分别尝试了一下 Linux
dbt yaml selector 简单说明
dbt 基于yaml 的selector 实际上就是一个yaml 格式文件,我们在运行的时候可以指定一个配置好的selector 文件,这样实际运行的 时候就比较方便了 主要作用 清晰 方便版本控制 可重用 参考使用 配置 selectors.yml selectors: - name: nightly_diet_snowplow de
[转帖]见识一下SQL Server隐式转换处理的不同
隐式转换(Implicit Conversion)就像他的名字一样,是个隐秘、不容易被发现的问题,但归根结底,还是设计开发中未遵守相关的规范,或者说是不良的设计开发习惯所导致的。 如果在条件中的字段和变量类型不一致,数据库会按照低精度向高精度的顺序进行隐式转换,转换的过程就会消耗资源,例如CPU,但是更关键的是如果隐式转换的字段是索引列,就会导
千万级流量冲击下,如何保证极致性能
1 简要介绍 随着互联网的快速发展,网络应用的流量规模不断攀升,特别是在电商大促、明星直播、重大赛事、头条热搜等热点事件中,秒级100w请求成为了常态。在这样的流量冲击下,如何确保系统稳定、高效地处理每一个请求,为用户提供极致的体验,成为了技术团队面临的重要挑战。本文将深入探讨在超高流量下如何保证系统的极致性能。 2 架构建设方案 在解决千万级流量下的流量冲击问题时,我们需要综合运用多种技术手段,
MapStruct - 注解汇总
@Mapper @Mapper 将接口或抽象类标记为映射器,并自动生成映射实现类代码。 @Mapping @Mapping 用于配置属性或枚举常量的映射关系。 @Mappings @Mappings 用于声明多个@Mapping。 @BeforeMapping @AfterMapping @BeforeMapping 和 @AfterMapping 标记在映射方法开始或结束后时需要调用的方法
初始MyBatis ,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析
1. 初始MyBatis ,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析 @目录1. 初始MyBatis ,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析每博一文案2. 前沿知识2.1 框架(framework)2.2 三层架构2.3 分析 JDBC 的缺点3. 初始了解MyBatis4. MyBatis第一个入门程序4.1 MyBatis下载
Vue2入门之超详细教程十八-自定义指令
Vue2入门之超详细教程十四-自定义指令 1、简介 定义语法 分为局部自定义指令和全局自定义指令 配置对象中常用的3个回调 bind:指令与蒜素被插入成功时调用 inserted:指令所在元素被插入页面时被调用 update:指令所在模板结构被重新解析时调用 备注: 指令定义时不加v-,但使用时要加v- 指令名如果是多个单词,要使用kebab-case命名方式,不要用camelCa