草庐IT

闲谈Java9到Java20,你学会了吗?

一、概述自从java9开始商用后,到现在一直停留在java8上。去年偶然看过说java17之后开始不商用了,而且springboot3和spring6最低要求JDK17,奈何太忙了一直没时间去梳理。趁现在这段时间得空,从9开始到20,逐个的去梳理下,看看有哪些变化。当然了,限于个人能力有限,本文非正式说明,只是个人见解,不可当真。先来个历代特性数图,心里有个大致的认知。二、各版本简介2.1JDK9JDK9特性数最多的原因是这个版本引入了模块化概念对JRE进行了优化,目录结构和之前有很大不同。还增加了一个jshell命令,实现在命令行也能快速执行java代码的功能,对于一些简单的main方法测试

闲谈Java9到Java20,你学会了吗?

一、概述自从java9开始商用后,到现在一直停留在java8上。去年偶然看过说java17之后开始不商用了,而且springboot3和spring6最低要求JDK17,奈何太忙了一直没时间去梳理。趁现在这段时间得空,从9开始到20,逐个的去梳理下,看看有哪些变化。当然了,限于个人能力有限,本文非正式说明,只是个人见解,不可当真。先来个历代特性数图,心里有个大致的认知。二、各版本简介2.1JDK9JDK9特性数最多的原因是这个版本引入了模块化概念对JRE进行了优化,目录结构和之前有很大不同。还增加了一个jshell命令,实现在命令行也能快速执行java代码的功能,对于一些简单的main方法测试

一张图看懂 USDT三种类型地址 Omni、ERC20、TRC20的区别

USDT是当前实用最广泛,市值最高的稳定币,它是中心化的公司Tether发行的。在今年的4月17日之前,市场上存在着2种不同类型的USDT。4月17日又多了一种波场TRC20协议发行的USDT,它们各自有什么区别呢?哪个转账最快到账?哪种最安全?手续费最低?USDT三种链类型Omni、ERC20、TRC20的区别Tether公司发行发行的USDT稳定币一共有三种类型,分别是基于比特币、以太坊和TRON。基于比特币和基于以太坊的USDT,两者不兼容、不能相互转账,可以从存储的地址中判断USDT是属于哪一种。USDT是Tether公司推出的基于稳定价值货币美元(USD)的代币TetherUSD(简

一张图看懂 USDT三种类型地址 Omni、ERC20、TRC20的区别

USDT是当前实用最广泛,市值最高的稳定币,它是中心化的公司Tether发行的。在今年的4月17日之前,市场上存在着2种不同类型的USDT。4月17日又多了一种波场TRC20协议发行的USDT,它们各自有什么区别呢?哪个转账最快到账?哪种最安全?手续费最低?USDT三种链类型Omni、ERC20、TRC20的区别Tether公司发行发行的USDT稳定币一共有三种类型,分别是基于比特币、以太坊和TRON。基于比特币和基于以太坊的USDT,两者不兼容、不能相互转账,可以从存储的地址中判断USDT是属于哪一种。USDT是Tether公司推出的基于稳定价值货币美元(USD)的代币TetherUSD(简

ubuntu 20.04 设置DNS

ubuntu20.04设置DNSubuntu20.04设置DNS快捷步骤下面是命令解释1、决定系统dns的文件是/etc/resolv.conf2、谁能最终影响/etc/resolv.conf,就是/etc/systemd/resolved.conf3、/etc/resolv.conf软链接到/run/systemd/resolve/resolv.confubuntu20.04设置DNS快捷步骤修改/etc/systemd/resolved.conf文件,在其中添加dns;sudovi/etc/systemd/resolved.conf;加入一个新行DNS=114.114.114.1148.8

ubuntu 20.04 设置DNS

ubuntu20.04设置DNSubuntu20.04设置DNS快捷步骤下面是命令解释1、决定系统dns的文件是/etc/resolv.conf2、谁能最终影响/etc/resolv.conf,就是/etc/systemd/resolved.conf3、/etc/resolv.conf软链接到/run/systemd/resolve/resolv.confubuntu20.04设置DNS快捷步骤修改/etc/systemd/resolved.conf文件,在其中添加dns;sudovi/etc/systemd/resolved.conf;加入一个新行DNS=114.114.114.1148.8

【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)

  前言:介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。擅长:对于技术、工具、漏洞原理、黑产打击的研究。C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。导读:面向读者:对于网络安全方面的学者。 本文知识点(读者自测): (1)HTML标记之间的XSS(√)(2)HTML标记属性中的XSS(√)(3)从其他数据库表中检索数据(√)(4)客户端模

【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)

  前言:介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。擅长:对于技术、工具、漏洞原理、黑产打击的研究。C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。导读:面向读者:对于网络安全方面的学者。 本文知识点(读者自测): (1)HTML标记之间的XSS(√)(2)HTML标记属性中的XSS(√)(3)从其他数据库表中检索数据(√)(4)客户端模

下列程序的运行结果是 #include <stdio.h> void main() { int x = 10, y = 20, z = 30;

1、直接运行程序得出结果#includevoidmain(){intx=10,y=20,z=30;printf("%d%d%d%d\n",x=y=z,x=y==z,x==(y=z),x==(y==z));}不用说程序运行就知道结果了:303000可是,这到底是怎么来的?2、分析一下每一次计算后x,y,z的值分别是多少,于是改成了如下代码形式:#includevoidmain(){intx=10,y=20,z=30;//printf("%d%d%d%d\n",x=y=z,x=y==z,x==(y=z),x==(y==z));printf("%d%d%d%d\n",x=y=z,x,y,z);pri

下列程序的运行结果是 #include <stdio.h> void main() { int x = 10, y = 20, z = 30;

1、直接运行程序得出结果#includevoidmain(){intx=10,y=20,z=30;printf("%d%d%d%d\n",x=y=z,x=y==z,x==(y=z),x==(y==z));}不用说程序运行就知道结果了:303000可是,这到底是怎么来的?2、分析一下每一次计算后x,y,z的值分别是多少,于是改成了如下代码形式:#includevoidmain(){intx=10,y=20,z=30;//printf("%d%d%d%d\n",x=y=z,x=y==z,x==(y=z),x==(y==z));printf("%d%d%d%d\n",x=y=z,x,y,z);pri