- 在上一篇博文中,我们知道了如何获得二进制的字节流,并根据获得的字节流去装载一个类。同时也了解到类加载器的存在,每个加载器对应着不同的加载目录,相互配合着,从而使整个加载过程稳定而安全。那么他们是如何配合的呢?如果我自己写一个类,名字叫做String可以吗?首先我们来看一张图:图中除了最底下的那个加载器是我们没有讲到的,其余的都有说到过。其实底下那个就是我们自己实现的类加载器,用于自定义加载c... 在上一篇博文中,我们知道了如何获得二进制的字节流,并根据获得的字节流去装载一个类。同时也了解到类加载器的存在,每个加载器对应着不同的加载目录,相互配合着,从而使整个加载过程稳定而安全。那么他们是如何配合的呢?如果我自己写一个类,名字叫做String可以吗?首先我们来看一张图:图中除了最底下的那个加载器是我们没有讲到的,其余的都有说到过。其实底下那个就是我们自己实现的类加载器,用于自定义加载c...
- 一、前言今天我们讲类加载机制5个阶段中的第一个阶段,加载,又叫装载。为了便于阅读,以下都叫做装载。装载的第一步就是要获得二进制的字节流,它可以从读.class文件获得,也可以从网络中接收别人发送的字节流。反正只要符合虚拟机规定的字节流格式都可以进入这个阶段。有了字节流之后,要进行装载还需要一个工具,那就是加载器了。加载器既可以使用系统提供的引导类加载器,也可以使用用户自己定义的加载器,只需... 一、前言今天我们讲类加载机制5个阶段中的第一个阶段,加载,又叫装载。为了便于阅读,以下都叫做装载。装载的第一步就是要获得二进制的字节流,它可以从读.class文件获得,也可以从网络中接收别人发送的字节流。反正只要符合虚拟机规定的字节流格式都可以进入这个阶段。有了字节流之后,要进行装载还需要一个工具,那就是加载器了。加载器既可以使用系统提供的引导类加载器,也可以使用用户自己定义的加载器,只需...
- 在业务开发中,登录接口是非常常见的场景,随着业务的发展,需要支持多种登录形式 java设计模式之策略模式搭配SPI(一) java设计模式之策略模式搭配SPI(二) java设计模式之策略模式搭配SPI(完结)那么登陆接口该如何书写?如何设计接口?面对大量if else如何进行优化?我们今天讲解的是在项目中如何应用策略模式。登陆场景登录方法实现策略(Strategy)模式的定义:该模式定义了... 在业务开发中,登录接口是非常常见的场景,随着业务的发展,需要支持多种登录形式 java设计模式之策略模式搭配SPI(一) java设计模式之策略模式搭配SPI(二) java设计模式之策略模式搭配SPI(完结)那么登陆接口该如何书写?如何设计接口?面对大量if else如何进行优化?我们今天讲解的是在项目中如何应用策略模式。登陆场景登录方法实现策略(Strategy)模式的定义:该模式定义了...
- 一、概念: redos漏洞主要指的是,由于正则引起的资源耗尽风险。二、漏洞底层原理 解释不来。三、大白话解释 不合理的正则会导致检测文本时,疯狂的匹配,同时会设置多个节点,每个节点又有很多种匹配方法,导致需要匹配的次数过于巨大,线程一直被占用,导致的性能耗尽。 最多的情况就是自我重复的情况。四、举例 示例:(a|aa)+ 输入文本:aaaaa... 一、概念: redos漏洞主要指的是,由于正则引起的资源耗尽风险。二、漏洞底层原理 解释不来。三、大白话解释 不合理的正则会导致检测文本时,疯狂的匹配,同时会设置多个节点,每个节点又有很多种匹配方法,导致需要匹配的次数过于巨大,线程一直被占用,导致的性能耗尽。 最多的情况就是自我重复的情况。四、举例 示例:(a|aa)+ 输入文本:aaaaa...
- Java是一种广泛使用的编程语言和平台,但在某些情况下,您可能需要在Ubuntu系统上完全卸载Java。本文将详细介绍如何在Ubuntu上卸载Java,并清理与Java相关的文件和配置。请注意,在执行卸载操作之前,请确保您不再需要Java,并备份重要的Java应用程序和数据。 步骤 1:检查 Java 安装在开始卸载之前,首先需要确定系统上已安装的Java版本和组件。可以使用以下命令检查Ja... Java是一种广泛使用的编程语言和平台,但在某些情况下,您可能需要在Ubuntu系统上完全卸载Java。本文将详细介绍如何在Ubuntu上卸载Java,并清理与Java相关的文件和配置。请注意,在执行卸载操作之前,请确保您不再需要Java,并备份重要的Java应用程序和数据。 步骤 1:检查 Java 安装在开始卸载之前,首先需要确定系统上已安装的Java版本和组件。可以使用以下命令检查Ja...
- SSRF漏洞排查关键字:URL、HttpClient、request、URLConnection。漏洞原理:主要针对系统需要对其他系统发起连接请求的方法,如果请求地址完全可控,就可导致通过当前系统,访问与当前系统处于同一局域内的系统,造成网络跳板攻击,任意访问,信息泄露等等 建议解决方案:只需要能不让用户控制url目标地址即可,或者进行有效的校验,在允许范围内输出。 SSRF漏洞排查关键字:URL、HttpClient、request、URLConnection。漏洞原理:主要针对系统需要对其他系统发起连接请求的方法,如果请求地址完全可控,就可导致通过当前系统,访问与当前系统处于同一局域内的系统,造成网络跳板攻击,任意访问,信息泄露等等 建议解决方案:只需要能不让用户控制url目标地址即可,或者进行有效的校验,在允许范围内输出。
- 代码注入漏洞关键字排查:.exec 、 Runtime 建议解决方案:代码排查是否可控,做安全校验,防止危险命令 代码注入漏洞关键字排查:.exec 、 Runtime 建议解决方案:代码排查是否可控,做安全校验,防止危险命令
- Scala是下一代 Java 虚拟机 (JVM) 语言,作为Java的现代替代品正在迅速普及。早在 1995 年推出的 Java 已经从不起眼的开端发展成为编程语言中无可争议的领导者之一,尤其是在服务器端编程领域。然而,Scala 的受欢迎程度在过去几年中一直在稳步增长。2019 年,当 Twitter 决定将其平台从 Ruby 切换到 Scala 时,引起了 Web 开发界许多开发人员的关... Scala是下一代 Java 虚拟机 (JVM) 语言,作为Java的现代替代品正在迅速普及。早在 1995 年推出的 Java 已经从不起眼的开端发展成为编程语言中无可争议的领导者之一,尤其是在服务器端编程领域。然而,Scala 的受欢迎程度在过去几年中一直在稳步增长。2019 年,当 Twitter 决定将其平台从 Ruby 切换到 Scala 时,引起了 Web 开发界许多开发人员的关...
- 第 1 步:转到以下网站Java 17 链接第 2 步:双击下载的 exe 文件转到系统变量然后点击路径点击编辑按钮更多前端相关学习教程B站搜索“千锋教育” 第 1 步:转到以下网站Java 17 链接第 2 步:双击下载的 exe 文件转到系统变量然后点击路径点击编辑按钮更多前端相关学习教程B站搜索“千锋教育”
- 反序列化漏洞主要分为四种情况:1.原生java场景2.JSON场景3.XML场景4.YAML场景对应的工具或者关键字排查:1.原生java场景:ObjectInputStrem 、readObject() 、defaultReadObject 建议解决方案:安全校验,如类名校验2.JSON场景:parseObject()、parse()、ObjectMapper.reaValue ... 反序列化漏洞主要分为四种情况:1.原生java场景2.JSON场景3.XML场景4.YAML场景对应的工具或者关键字排查:1.原生java场景:ObjectInputStrem 、readObject() 、defaultReadObject 建议解决方案:安全校验,如类名校验2.JSON场景:parseObject()、parse()、ObjectMapper.reaValue ...
- @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)建议先去浏览本人ssm专栏发布的ssm快速入门案例(一)(二)后再阅读本文章四、基于Spring... @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)建议先去浏览本人ssm专栏发布的ssm快速入门案例(一)(二)后再阅读本文章四、基于Spring...
- 在Java开发领域,术语"node affinity"通常不是与Java语言本身直接相关的概念。然而,在某些特定的上下文中,可以将"node affinity"应用于Java应用程序的部署和调度方面。在Java开发中,"node affinity"可能指的是以下几个方面:服务器亲和性:在分布式环境中部署Java应用程序时,可以考虑将特定的Java应用程序部署在特定的服务器节点上,以实现服务器... 在Java开发领域,术语"node affinity"通常不是与Java语言本身直接相关的概念。然而,在某些特定的上下文中,可以将"node affinity"应用于Java应用程序的部署和调度方面。在Java开发中,"node affinity"可能指的是以下几个方面:服务器亲和性:在分布式环境中部署Java应用程序时,可以考虑将特定的Java应用程序部署在特定的服务器节点上,以实现服务器...
- 一、前言堆分为年轻代和年老代。永久代是非堆内存,它又叫做方法区(一般的说法),主要存储已被加载的类信息、常量、静态变量。而该区域在java8已被删除,取而代之的是元空间,会在后面的章节细讲。 二、什么是标记?怎么标记?第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器GC的清理。 至于怎么标记,一般有两种方法:引用计数和可达性分析。 2.1 引用计数引用计数实现起来... 一、前言堆分为年轻代和年老代。永久代是非堆内存,它又叫做方法区(一般的说法),主要存储已被加载的类信息、常量、静态变量。而该区域在java8已被删除,取而代之的是元空间,会在后面的章节细讲。 二、什么是标记?怎么标记?第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器GC的清理。 至于怎么标记,一般有两种方法:引用计数和可达性分析。 2.1 引用计数引用计数实现起来...
- 一、前言众所周知,在java中内存主要分为以下几类:寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制。栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)堆:存放所有new出来的对象。静态域:存放静态成员(static定义的)。常量池:存放字符串常量和基本类型常量(public... 一、前言众所周知,在java中内存主要分为以下几类:寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制。栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)堆:存放所有new出来的对象。静态域:存放静态成员(static定义的)。常量池:存放字符串常量和基本类型常量(public...
- 简单工厂模式(Simple Factory Pattern)是工厂模式的一种简单实现方式,它属于创建型模式。简单工厂模式中只有一个“工厂”类,它可以根据类型来创建不同的“产品”实例。 简单工厂模式(Simple Factory Pattern)是工厂模式的一种简单实现方式,它属于创建型模式。简单工厂模式中只有一个“工厂”类,它可以根据类型来创建不同的“产品”实例。
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化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 规格体系从零搭建业务项目。
即将直播
热门标签