- 博客(33)
- 问答 (1)
- 收藏
- 关注
原创 JVM--类的加载机制
本文介绍JVM中类加载器的种类和类加载机制(双亲委派)以及JDK9以后的类加载器的变化由不同的类加载器解析相同路径下的类信息得到的类对象不会相同Tomcat:在Tomcat中启动了两个Web服务,这两个服务有着相同的类名不同实现的实现类,此时如果不打破双亲委派机制,先启动的Web服务就会去加载好对应的类,那么后启动的Web服务在自下而上查询类是否被加载过时,就会直接返回先启动服务的类对象那么Tomcat如何打破双亲委派机制呢?给每个服务都专门弄一个类加载器。
2025-01-23 15:11:31
909
原创 理解字节码
本文主要介绍用Jclasslib来分析字节码文件的重点组成以及根据字节码文件可以分析出哪些信息,以及在服务器上如何使用java命令来获取并分析字节码文件,IDEA重新编译单个文件,Arthas的常用功能
2024-11-27 12:25:10
316
原创 如何获取歌曲id---cloudmusic
答:X-Requested-With用来标识HTTP请求的来源,那么在请求中带有X-Requested-With:"XMLHttpRequest"的标识就可以告诉网站后端当前接收请求是通过XHR对象发起的AJAX请求,(因为之前在这个网站上通过歌名来扒歌曲id的时候,请求头里没带X-Requested:"XMLHttpRequest"就一直给我返回错误的数据(很直白的返回一句话你这个请求有猫腻啊。AJAX请求在开发中的主要作用:在不刷新整个页面的情况下更新部分页面内容。,防止爬虫请求成功获取到后台数据。
2024-07-07 21:51:57
559
原创 Java防挨骂--01
StringBuffer也是可变字符序列,它与StringBuider的区别有,它更安全(会做线程同步检查),但是效率较低(因为做了检查)。在遇到字符拼接需求时,习惯使用StringBuilder,而不要使用String.因为String是不可变字符序列,在拼接时会产生新的String对象来进行拼接。StringBuider是可变字符序列,在拼接时效率和对资源的占用都表现更优。
2024-05-10 21:27:04
329
2
原创 视频播放量的变化逻辑
以此文记录爬虫逆向学习思路代理ip+cookie来刷播放缺陷:据说破站这方面的检测很严格了,这种刷播放的方式,不会真的观看视频,就是点播一下,如果很多播放量都是这种点播而且还都是游客播放b站是能检测到的,检测到就刷了也没用播放量也不会涨的。
2023-12-10 20:35:49
1322
原创 JS逆向之网易云音乐&Python爬虫之网易云音乐爬取
缺点:不能够爬会员歌曲网易云音乐网页的源代码里没有下载歌曲的url,开发者工具里也无法在浏览器渲染后的页面代码里找到,所以–进行抓包。抓包发现目标。访问一下url。
2023-12-10 20:35:23
1679
原创 Python-自制简易音乐播放器
原理简单:通过外链和歌曲Id拼接成下载链接来下载歌单中的歌曲。缺点:这个外链可能会失效,而且不能用这个外链来下载会员歌曲,而且这个外链怎么来的未知。
2023-12-10 20:35:05
1620
原创 acm刷题踩坑记录和经验
另外,使用 calloc() 函数时需要注意,如果分配的内存块过大,可能会导致内存不足的问题。long long :-9223372036854775808~+9223372036854775807 (数据位数:19位)//踩过这个坑,因为它能将分配的内存初始化为0!使用new和malloc不会初始化内存为0!double:-1.7×10^(-308) ~+1.7x10^(+308) (16位有效数字)float:-3.4× 10^(-38) ~+3.4× 10^(+38) (7位有效数字)
2023-12-10 20:34:31
1386
原创 网络爬虫js逆向解决网站登录RSA加密问题+session维护登录状态(cookie-响应头)请求爬取+手动添加cookie(js中)
因为session中一直维护的是响应头中的cookie,Js代码中生成的cookie它是需要手动添加的,缺失了这部分cookie可能就会导致访问登录后才能访问的网页时又要求你进行登录(跳转到登录页的请求返回登录页信息)观察分析ajax请求中的大部分参数由e来给定,且在打上断点后运行第一次中断时,观察到e中url的值为/common/getTime,ajax中url的值即为:/apis/common/getTime。可以判断释放断点后发送了登录的请求,因为使用了对应的参数,
2023-12-10 20:34:07
1610
原创 Python爬虫实战之爬淘宝商品--selenium+Xpath
代码链接利用selenium来自动翻页爬取淘宝商品的标题,价格,销量,产地信息。注意自己配置好python环境(谷歌驱动…)jgs = []fkrss = []cdds = []main()data = {'标题': titles, '客单价': jgs, '销量': fkrss, '产地': cdds}df.to_excel('FL销售.xlsx', index=False)
2023-11-19 15:03:56
4651
1
原创 爬虫scrapy-将某网站内的试题爬取出来并保存为本地markdown文件
本文用于参考学习,请执行配置好scrapy环境后再进行编程实操代码。
2023-11-16 00:20:05
4175
4
原创 E. 最短的名字-湖南省第八届大学生计算机程序设计竞赛试题-字典树
从该节点(最多)分支出n个字符串(这个节点被这n个字符串共用了),此时sum的值就要加n,因为这n个字符串的前缀名都必需要用这个字母一次.然后从该节点往下遍历下一层节点,如果又遇到一个节点count值为2的那么sum加2,理由同上文一致。从head指向的第一层(a-z)开始遍历每个节点(也就是每个字符串的开头)如果遇到count值不为0的节点(补充一个点:图中没写数字的节点count值就为0,表示这个字符未被使用过)判断该节点的count值为1还是大于1,如果为1表示该字母是。
2023-07-05 11:44:57
147
1
原创 A - 2018(湖南省第十四届大学生计算机程序设计竞赛)-动态规划
n,m的范围都在[1,2000]内,根据题目的样例看出不取模的数据结果可能还挺大的,要注意溢出的问题,使用表示范围较大的数据类型.ans[i,j]=dp[i,j]*dp[i,j]%mod (取模是题目要求,ans为答案)题目意思就是让你求出能满足条件且矩阵规格固定的矩阵数目.
2023-07-04 08:58:51
135
原创 c++/int a[]{}是什么意思?
int a[101]{}” 是 C++ 中定义一个整型数组的语法。它的意思是创建一个包含 101 个整数的数组,其中的每个元素都会被初始化为 0。这个语法是在 C++11 中引入的,可用于初始化数组元素。在这种情况下,编译器会自动将数组元素初始化为默认值,即对于整型数组,初始化为 0。如果省略 “{}”,则数组的元素将不会被初始化,而是保留为随机值。因此,使用 “{}” 初始化数组可以确保所有元素都有一个明确定义的初始值。
2023-06-22 22:16:35
1113
1
原创 Trie树/并查集
路径压缩:每次查询find(x),就把自己的父亲fa[x]维护成最新查询到的find(fa[x]),集合(树)当前这条链的最大深度就为2,能极大节省时间。AcWing 835. Trie字符串统计。AcWing 836. 合并集合。N为单个字符串最大长度;
2023-05-29 21:21:47
94
原创 静态栈/队列/链表/单调队列(滑动窗口)/单调栈
使用指针+结构体的方式动态实现栈、链表等数据结构时都需要new Node;容易因此(new Node)TLE,处于效率考虑,刷题时一般不采用这种动态的方式。虽然可以通过直接初始化n个Node进行改进,但是那种方式本质就和数组模拟差不多。
2023-05-28 14:30:23
146
原创 前缀+差分+离散化+区间合并(C/C++)
借用一道例题来深度了解:分析一下就可以发现:在这个无限长的数轴中进行n次插入值,n最大为10^5.进行m次询问,每次询问有两个边界[L,R],L
2023-05-23 22:12:45
421
2
原创 排序(快排和归并排序) AND 二分法
原理与基本步骤在一组数中选取一个基准数,以这个数为基准把小于等于和大于等于它的数分为大小两组,然后对这大小两组进行同样的操作,又选取基准数进行分组,直到一组只有一个数为止;在这个过程中数据就会被有序(从小到大)的排好;注意一个点:被分成的两组数据中都可能有等于基准数的数,在小于组中该基准数是最大值,在大于组中这些基准数是最小值;那么经过递归对小组们排序后相同的基准数便被排到了一起;还有一件事写递归就必须要有递归结束的条件,这是最先要想好的事情;基本步骤:选取基准数→ 分组 → 利用递归来再分组借鉴
2023-05-06 22:15:30
254
4
原创 竞赛--C++速成
cout输出小数(fixed:保存;setprecision:精度;right:右对齐)TLE:Time Limit Exceeded(超时);memset:将a数组中的值。
2023-04-30 20:53:50
366
1
原创 Javascript基础
html:网页元素;css:网页元素的属性介绍;Javascript:网页元素的功能介绍;var alertvalue="网络异常";/变量定义/var alertvalue="正在重新连接";/变量重新赋值/ecmascript:JS的编译标准;undefined:没被定义的var 变量;Boolean:布尔值也就是真假值;Object:对象是拥有属性和方法的数据。(函数也可以作为数据类型----引用类型)可以使用typeof()来检测数据类型;
2023-01-02 19:49:49
204
原创 html5+css3---元素样式+选择器
html5,css3是html,css的迭代产物,相较以前的html和css,迭代产生的区别简单来说就是标签,功能样式都变得更加丰富;其中html5的产生对互联网行业的影响尤为重大,由于它在ios和Android系统上的兼容性都很好,所以现在经常借助它开发在两种系统上都通用的软件;
2022-12-11 20:51:44
256
原创 HTML+CSS--基础学习
前端有三宝:html,css,javascript;我对html+css的基础学习主要是学习常用html标签和常用css样式及一些样式规则;标签大体构成了我们网页的主要元素;样式对标签的属性调节让我们的网页看起来井井有条,看起来舒服;如果说html是创造了一个网页上的物体,那么css标签可以说就是这个物体的一个形容词,来形容这个物体的形状、颜色、大小、位置种种特征;提示:以下是本篇文章正文内容,下面案例可供参考。
2022-11-23 22:37:58
633
1
原创 递归-汉诺塔递归代码解读示例-n=3
假设你已经懂了汉诺塔的规则。#include <stdio.h>void move(char a,char c,int n);void hannuota(int n,char a,char b,char c);int main(){int n;scanf("%d",&n);char a='a',b='b',c='c';hannuota(n,a,b,c);return 0;}void move(char a,char c,int n){printf("第%
2022-11-18 00:16:32
241
原创 C语言常犯错误
明明代码就是这么写的怎么会输出一个不是我想要的值呢?小王是一个有志儿童,电棍也是一个有志教师。一天,小王问电棍,我今天要用c语言输入3,4,5这几个整数然后输出3.000000,4.000000,5.000000,明明代码没问题,编译器没报错,为啥就是得不到想要的结果呢?答没有进行数据类型转换,函数的错误使用。定义的是int类型的三个整数a,b,c使用scanf进行赋值,经常就有人在这时候犯错,什么少了&,该用%d的时候用%f,该用%s的时候用%c.输入的时候,你的scanf是这
2022-10-14 01:11:29
316
播放量增加逻辑供学习交流.zip
2023-12-10
头条新闻爬虫供学习交流.zip
2023-12-10
在中国石油官网收集的原油现货价格数据 1999-7-7到2023-12-7 WTI,布伦特,迪拜,阿曼,塔皮斯等国家数据
2023-12-09
淘宝FL销售店铺的基本数据(产地+价格+销量+标题)
2023-11-19
爬虫爬取taobao搜索页商品基本数据(可翻页)+ selenium + Xpath (爬虫具有时效性)
2023-11-19
python(scrapy)实战练习基本功 爬取网站的题库存为markdown文件 按类存好
2023-11-15
python-b站评论区点赞
2023-11-15
根据已知的一组数据求方程系数的拟合问题
2022-08-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人