基于Java爬取微博数据(五) 补充微博正文列表图片 or 视频 内容
基于Java爬取微博数据五 补充微博正文列表图片 or 视频 内容
- 数据分析
- 补充图片 or 视频
- 执行结果
在通过对微博正文内容中的图片 or 视频内容进行分析后,图片 or 视频 链接是可以直接通过 Java 代码下载或者转存的,那么这样就可以补充我们在 【基于Java爬取微博数据(一) 微博主页正文列表数据】 时缺失的图片 or 视频信息了,当然,如果你的需求并不需要转存微博正文列表内容中的图片 or 视频的话,那么你就无需进行下面的操作了。在开始进行微博主页正文列表数据 补充 图片 or 视频内容之前,先来分析一下获取到的微博正文列表数据的内容。
数据分析
同样的,我们先找到获取微博正文列表数据的 ajax 请求 /ajax/statuses/mymblog?uid=1686546714&page=1&feature=0 的响应返回数据
获取到微博正文列表请求响应返回的数据之后,我从中取出一个含图片的完整的微博正文 json 对象 以及 一个含视频的完整的微博正文 json 对象来做一个比较
通过对比工具 Beyond Compare 进行比较这两种情况下返回数据格式的不同,可以看到 含图片的微博正文 返回数据比 含视频的微博正文多了 pic_infos 对象
继续向下比较可以看到 含图片的微博正文 比 含视频的微博正文 少了 page_info对象 而 page_info对象 里面的 media_info 对象正是视频所在对象
到这里,对于微博正文列表内容 含图片微博正文 以及 含视频微博正文 的数据格式基本的分析及对比就结束了,下面开始在 获取微博正文列表内容 DemoWeiBo 的 main 方法中补充这一块内容的获取。
补充图片 or 视频
下面开始补充图片 or 视频 链接的获取操作,考虑到视频链接有 Expires 过期时间字段,那么这里在导出 微博正文列表内容 到 Excel 中时保存 转存后的图片 or 视频路径,首先给导出实体类 ExcelData 增加如下字段
然后在获取微博正文内容列表 main 方法中增加如下代码,这里需要注意的是 pic_ids 和 pic_infos 是配套出现的, pic_ids 的值 就是 pic_infos 子对象的 key
关于 pic_infos 的子对象包括多种 宽高 尺寸的图片链接地址,你可以根据自己的需要选择不同宽高的图片进行转存
最后补充的转存微博正文图片的代码如下
下面再来看获取视频操作,你可以选择 media_info 对象内的以下几种清晰度的视频,
或者也可以选择 media_info 对象内的 playback_list ,里面是 四种清晰度的视频选择,你可以选择其中一种或者多种清晰度的视频链接
最终补充获取微博正文视频内容的代码如下
到这里,补充微博正文内容列表 获取 图片 or 视频的操作就完成了,改造后的 DemoWeiBo.java 代码完整版如下
package com.ruoyi.web.controller.demo.controller;import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;public class DemoWeiBo
{/*** 主函数入口,用于从微博抓取数据并存储到Excel中。** @param args 命令行参数(未使用)* @throws ParseException 当日期解析发生错误时抛出*/public static void main(String[] args) throws ParseException {// 定义微博数据抓取的URL模板String url = "https://weibo.com/ajax/statuses/mymblog?uid=1686546714&feature=0&page=%s";String unfoldurl = "https://weibo.com/ajax/statuses/longtext?id=%s";String cookie = "你的 Cookie";// 初始化日期格式SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//初始化导出Excel数据列表List<ExcelData> excelDataList = new ArrayList<>();// 循环抓取前2页数据for (int i = 1; i <= 3; i++) {try {// 输出开始抓取的提示信息System.out.println("开始获取第" + i + "页数据");// 格式化URL并发送HTTP请求获取响应String urlstr = String.format(url, i);HttpResponse response = HttpUtil.createGet(urlstr).header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36").header("Cookie",cookie).execute();// 解析响应体String body = response.body();//System.out.println(body);JSONObject jsonObject = JSON.parseObject(body).getJSONObject("data");JSONArray list = null;if (Objects.nonNull(jsonObject)) {// 处理数据列表list = jsonObject.getJSONArray("list");// 遍历并处理每条微博数据for (Object o : list) {JSONObject data = (JSONObject) o;// 解析并处理微博的其他信息Date created = new Date(data.getString("created_at"));System.out.println("created:"+dateFormat.format(created));String regex = "<[^<>]*>";String text = data.getString("text").replaceAll(regex, "");String repost = data.getString("reposts_count");String comment = data.getString("comments_count");String like = data.getString("attitudes_count");//获取微博正文图片信息StringBuffer pic_url = new StringBuffer();Long pic_num = data.getLong("pic_num");if (pic_num > 0 ) {JSONArray pic_ids = data.getJSONArray("pic_ids");JSONObject pic_infos = data.getJSONObject("pic_infos");// 遍历 pic_ids 获取 pic_infos 子对象 keyfor (Object json : pic_ids) {String key = (String) json;JSONObject pic = pic_infos.getJSONObject(key);JSONObject largest = pic.getJSONObject("largest");// 提取图片URL并处理String imageUrl = largest.getString("url");String filename = imageUrl.substring(imageUrl.lastIndexOf("/") + 1);// 下载图片String savePath = "E:\\2024weibo\\" + filename;downloadPicture(imageUrl, savePath);pic_url = pic_url.append(savePath).append(",");}}//获取微博正文视频信息String video_url = "";JSONObject page_info = data.getJSONObject("page_info");if (Objects.nonNull(page_info)) {JSONObject media_info = page_info.getJSONObject("media_info");String mp4_hd_url = media_info.getString("mp4_hd_url");String filename = mp4_hd_url.substring(mp4_hd_url.lastIndexOf("/") + 1, mp4_hd_url.indexOf("?"));// 下载视频String savePath = "E:\\2024weibo\\" + filename;downloadPicture(mp4_hd_url, savePath);video_url = savePath;}//有一种情况,就是当页面文本内容过多的时候,微博默认不展示全部,而是出现 【...展示】 按钮,此时需要再请求一个 URL 获取展开后的文本内容if (text.lastIndexOf("...展开") != -1) {//说明存在 展开 需要重新获取 text 内容String mblogid = data.getString("mblogid");// 格式化URL并发送HTTP请求获取响应String unfoldurlstr = String.format(unfoldurl, mblogid);HttpResponse response2 = HttpUtil.createGet(unfoldurlstr).header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36").header("Cookie",cookie).execute();// {"ok": 1,"http_code": 200,"data": {}}String body2 = response2.body();JSONObject jsonObject2 = JSONObject.parseObject(body2).getJSONObject("data");String longTextContent = jsonObject2.getString("longTextContent");System.out.println("longTextContent:"+longTextContent);//补全后的内容赋给 texttext = longTextContent;}// 创建ExcelData对象并填充数据ExcelData excelData = new ExcelData();//发布时间excelData.setDate(created);//点赞数excelData.setLike(Long.parseLong(like));//评论数excelData.setComment(Long.parseLong(comment));//转发数excelData.setRepost(Long.parseLong(repost));//原始内容excelData.setContent(text);//图片地址excelData.setImgUrl(pic_url.toString());//视频地址excelData.setVideoUrl(video_url);excelDataList.add(excelData);}}// 输出完成提示并关闭响应,休眠以避免频繁请求System.out.println("第" + i + "页数据获取完毕");response.close();// 如果列表为空,终止循环if (list == null || list.size() == 0) {break;}Thread.sleep(700);} catch (Exception e) {// 打印异常信息e.printStackTrace();}}// 输出开始写入Excel的提示System.out.println("Excel写入数据开始");// 写入Excel的函数调用EasyExcel.write("E:/微博.xlsx", ExcelData.class).sheet("Sheet1").doWrite(excelDataList);System.out.println("Excel写入数据结束");}/*** 下载图片到指定路径** @param imageUrl 图片的URL地址* @param savePath 图片保存的本地路径*/public static void downloadPicture(String imageUrl, String savePath){BufferedInputStream in = null;FileOutputStream out = null;HttpURLConnection connection = null;try {// 创建URL对象并打开连接URL url = new URL(imageUrl);connection = (HttpURLConnection) url.openConnection();// 设置请求方法为GETconnection.setRequestMethod("GET");// 建立连接connection.connect();// 获取响应码并判断是否下载成功int responseCode = connection.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {// 创建输入流和输出流,用于读取和保存图片in = new BufferedInputStream(connection.getInputStream());out = new FileOutputStream(savePath);// 缓冲区,用于一次读取和写入一定量的数据byte[] buffer = new byte[1024];int bytesRead;// 循环读取直到没有数据while ((bytesRead = in.read(buffer)) != -1) {out.write(buffer, 0, bytesRead);}System.out.println("图片/视频 下载成功,保存路径:" + savePath);} else {// 响应码不为HTTP_OK,下载失败System.out.println("无法下载图片/视频,响应码:" + responseCode);}}catch (Exception e) {// 捕获异常并打印堆栈信息e.printStackTrace();}finally {// 无论成功或失败,最后都关闭流和连接// 关闭输入流if (in != null) {try {in.close();} catch (IOException e) {// 将IO异常转为运行时异常抛出throw new RuntimeException(e);}}// 关闭输出流if (out != null) {try {out.close();} catch (IOException e) {// 将IO异常转为运行时异常抛出throw new RuntimeException(e);}}// 关闭连接if (connection != null) {connection.disconnect();}}}
}
执行结果
执行main 方法后的输出 Excel 结果如图
图片链接和视频链接都已经转存记录成功。
相关文章:
![](https://i-blog.csdnimg.cn/direct/7ff22355dcb1471086757e51fb006564.png)
基于Java爬取微博数据(五) 补充微博正文列表图片 or 视频 内容
基于Java爬取微博数据五 补充微博正文列表图片 or 视频 内容 数据分析补充图片 or 视频执行结果 在通过对微博正文内容中的图片 or 视频内容进行分析后,图片 or 视频 链接是可以直接通过 Java 代码下载或者转存的,那么这样就可以补充我们在 【基于Java爬…...
![](https://i-blog.csdnimg.cn/direct/a6b8cc4ea5b043edabe1bfcb6f07242c.png)
反射异常捕获 | InvocationTargetException 要用e.getCause()打印才能看到具体异常
背景:线上某段和反射相关的代码报错了,但是异常信息打印只看到了 InvocationTargetException,没打印具体的异常。就像这样:java.lang.reflect.InvocationTargetException: null 查阅资料后发现要用e.getCause()才能打印具体异常&a…...
![](https://i-blog.csdnimg.cn/direct/e5e9665bc5db4baeb05b18efd0c575e2.png)
【计算机网络】网络版本计算器
此前我们关于TCP协议一直写的都是直接recv或者read,有了字节流的概念后,我们知道这样直接读可能会出错,所以我们如何进行分割完整报文?这就需要报头来解决了! 但当前我们先不谈这个话题,先从头开始。 将会…...
![](https://img-blog.csdnimg.cn/img_convert/bae360c87763395fd38807ed213dc466.png)
使用 Python 爬虫进行网站流量分析:Referer 头的利用
在互联网时代,网站流量分析是了解用户行为、优化网站结构和提升用户体验的重要手段。本文将介绍如何使用 Python 爬虫技术结合 HTTP Referer 头进行网站流量分析,以及如何实现这一过程。 什么是 HTTP Referer 头? HTTP Referer 头是一个请求…...
![](https://www.ngui.cc/images/no-images.jpg)
梧桐数据库(WuTongDB):数据库技术中LL算法详解
LL 算法是一种自顶向下的语法分析算法,广泛用于构建解析器。LL 分析器逐个读取输入符号,从左到右分析(Left-to-Right),并使用最左推导(Leftmost Derivation)来生成语法树。因此,LL 分…...
![](https://img-blog.csdnimg.cn/img_convert/1aa7d7a78793007c38310179b3887551.jpeg)
【秋招笔试】8.18大疆秋招(第一套)-后端岗
🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…...
![](https://www.ngui.cc/images/no-images.jpg)
CSS 的text-size-adjust属性
text-size-adjust 属性在CSS中用于控制用户是否可以调整网页中文字的字体大小。这个属性主要针对移动设备上的浏览器,尤其是那些允许用户通过捏合(pinch)手势来缩放整个页面的浏览器。 语法 text-size-adjust: none; text-size-adjust: aut…...
![](https://i-blog.csdnimg.cn/direct/7c7c110fa2cb403ba21db81e89f2c01f.png)
阿里MAXCOMPUTE数据专辑信息读取并同步数据表
阿里MAXCOMPUTE数据专辑信息读取并同步数据表 在阿里云大数据体系中,我们可以使用数据地图的数据专辑,对数据的类别等进行一个管理 那么管理后的数据,我们想要落表进行相关的数据分析,如何做呢? 查看阿里云官方文档…...
![](https://img-blog.csdnimg.cn/330a8744c54347028f04a91c5b656f70.jpg)
rufus制作ubantu的U盘安装介质时,rufus界面上的分区类型选什么?
rufus制作ubantu的U盘安装介质时,rufus软件界面上的分区类型选什么(如下图)? 在使用Rufus制作Ubuntu的U盘安装介质时,分区类型的选择取决于我们的计算机的引导方式。 以下是具体的选择建议: 1、查看计算机的引导方式…...
![](https://i-blog.csdnimg.cn/direct/4897df638ed34bc7862bcab5b8b25c46.png)
【系统架构设计师-2018年】案例分析-答案及详解
试题一(25分) 阅读以下关于软件系统设计的叙述,在答题纸上回答问题1至问题3。 【说明】 某文化产业集团委托软件公司开发一套文化用品商城系统,业务涉及文化用品销售、定制、竞拍和点评等板块,以提升商城的信息化建设…...
![](https://www.ngui.cc/images/no-images.jpg)
linux驱动入门实验班——平台总线设备驱动模型和设备树
目录 前言 一、重要结构体 二、编程思路 1.platform_driver结构体 2.probe 三、使用设备树 1.步进电机 2.红外遥控 四、代码示例 前言 在这里主要记录学习韦东山老师Linux驱动人入门实验班的笔记,韦东山老师的驱动课程讲的非常好,想要学习驱动…...
![](https://i-blog.csdnimg.cn/direct/fe57e10861154bd6a3c9a85fd2f7c5e4.png)
零基础学习Python(六)
1. 元类的应用 使用元类给对象添加一个固有属性author: 对类名进行限定,要求类名必须是大写字母开头: class MetaC(type):def __init__(cls, name, bases, attrs):if not name.istitle():raise TypeError("类名必须是大写字母开头~")return …...
![](https://i-blog.csdnimg.cn/direct/4f0a4e7f9818450b8086f2d2eaf12652.png)
微信小程序--31(todolist案例)
一.功能 输入待办事件添加代办事件删除代办事件 二、步骤 1.添加输入框 .wxml代码: <!-- 1.输入框 --><input type"text" bindinput"handleInput" value"{{text}}" /> .wxss代码: /* 1.输入框样式 */ i…...
![](https://www.ngui.cc/images/no-images.jpg)
springboot项目使用本地依赖项,打包后出现NoClassDefFoundError的一种解决方法
可以把本地依赖项上传到本地仓库后再引用 建立 Maven 本地仓库并将依赖上传到本地仓库 要建立 Maven 本地仓库并将依赖上传到本地仓库,可以按照以下步骤进行操作: 1. 配置 Maven 本地仓库路径 Maven 默认会在用户的主目录下的 .m2/repository 目录创…...
![](https://i-blog.csdnimg.cn/direct/e06906ab2ca54709af069126f719013a.png)
Maven高级使用指南
在开发大型项目时,Maven作为一个强大的构建和项目管理工具,能显著提升项目管理和构建的效率。然而,随着项目的扩大,维护和管理的复杂性也随之增加。本文将探讨一些高级的Maven用法和解决方案,以帮助你更好地管理大型项…...
![](https://www.ngui.cc/images/no-images.jpg)
windows docker 执行apt-get 权限问题
今天在windows下安装的docker 部署的容器执行apt-get遇到权限问题 PS C:\Users\xiaok> docker exec -it jenkins sh $ apt-get update Reading package lists... Done E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied) E: Unable to l…...
![](https://i-blog.csdnimg.cn/direct/eb234bf41cab42d280aa018de046f389.png)
Linux系统信息排查
目录 介绍步骤 介绍 1、熟悉查看CPU信息、操作系统信息、用户信息、特殊权限账户、启动项和任务计划的排查命令 2、在进行受害主机排查时,首先要对主机系统进行基本排查,方便对受害主机有一个初步的了解。 3、利用lscpu和uname -a查看系统硬件软件基本…...
![](https://i-blog.csdnimg.cn/direct/40a2047893e94721b506f7a08debbfc5.png#pic_center)
《图解设计模式》笔记(四)分开考虑
九、Bridge模式:将类的功能层次结构与实现层次结构分离 类的两个层次结构和作用 类的功能层次结构:希望增加新功能时 父类有基本功能,在子类中增加新功能 Something父类 …├─SomethingGood子类 想要再增加新功能 Something父类 …├─So…...
![](https://i-blog.csdnimg.cn/direct/cafeffc5ee714758847449eff98c84ec.png)
Linux shell编程学习笔记74:sed命令——沧海横流任我行(中)
0 前言 自 60 年代末以来,sed 一直是 Unix 标准工具箱的一部分。 Sed在以下三种情况下特别有用: 编辑太大的文件,无法进行舒适的交互式编辑; 当编辑命令序列过于复杂而无法在交互模式下轻松键入时,可以编辑任何大小的…...
![](https://i-blog.csdnimg.cn/direct/12e6ea3d3b5d4d40841e7ff50d64a81e.png)
[数据集][目标检测]道路积水检测数据集VOC+YOLO格式2699张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2699 标注数量(xml文件个数):2699 标注数量(txt文件个数):2699 标注…...
![](https://i-blog.csdnimg.cn/direct/850fb0c4d66c4abab08e4c503076e5d5.png)
不同路径
不同路径 思路: 法一:动态规划 const int N 110; class Solution { int dp[N][N];//dp[i][j]:从起点走到 i j的路径个数。 public:int uniquePaths(int m, int n) {for(int i1;i<n;i){dp[1][i]1;} for(int i1;i<m;i) dp[i][1]1;f…...
![](https://i-blog.csdnimg.cn/direct/a4976a55e43a450a97c0ed1a951b5119.png)
【HTML】HTML学习之引入CSS样式表
1、CSS样式规则 选择器{属性1:属性值1; 属性2:属性值2; 属性3:属性值3;}2、HTML引入CSS样式表 2.1、行内式 行内式也称为内联样式,是通过标签的style属性来设置元素的样式,其基本语法格式如下: <标签名 style"属性1:属性值1; 属性2:属性值2;…...
![](https://i-blog.csdnimg.cn/direct/bce85b848a5f4bb599967df2f2a20e48.png)
shaushaushau1
CVE-2023-7130 靶标介绍: College Notes Gallery 2.0 允许通过“/notes/login.php”中的参数‘user’进行 SQL 注入。利用这个问题可能会使攻击者有机会破坏应用程序,访问或修改数据. 已经告诉你在哪里存在sql注入了,一般上来应该先目录扫…...
![](https://img-blog.csdnimg.cn/direct/cd137335378c45e4a7300d4c8953cf95.png)
揭秘面试必备:高频算法与面试题全面解析
干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…...
![](https://www.ngui.cc/images/no-images.jpg)
设计模式-visit模式-在语法树的实践
文章目录 背景示例代码分析灵活性双重分派 总结 背景 很多项目代码有accept()用法,在calcite 里也看到了这种,深入了解一下 语法树遍历:编译器通常会将源代码解析成抽象语法树(AST)。为了实现不同的编译阶段ÿ…...
![](https://i-blog.csdnimg.cn/direct/f023528a296d446f9bd2fe3b71e629b9.png#pic_center)
ZK-Rollups测评
1. 引言 Matter Labs团队和多个高校研究人员一起,发布2024年论文《Analyzing and Benchmarking ZK-Rollups》,开源代码见: https://github.com/StefanosChaliasos/zkrollup-benchmarking(Python) 其中: …...
![](https://www.ngui.cc/images/no-images.jpg)
redis生产使用场景(一):并行流+二级缓存
本文主要介绍 redis 缓存在线上的使用场景 由于业务的特殊性,在生产库用户表中,大概有 50 多万的测试用户,在真实业务计算中,要把测试用户给筛选掉,所以在计算前,需要把测试用户加载到 redis 缓存中&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
EXCEL跨文件查询,指定条件列,返回满足条件的指定列
EXCEL跨文件查询,指定条件列,返回满足条件的指定列 Private Sub cmd_find_from_workbooks_Click() Dim S_Cols As String, thePath As String, Sor_Col As Integer, sz_Cols As Variant S_Cols T_jieguo_cols.Text sz_Cols Split(S_Cols, ",&quo…...
![](https://i-blog.csdnimg.cn/direct/3a9394486b814bfb8375b65a74a4d637.png)
[数据集][目标检测]流水线物件检测数据集VOC+YOLO格式9255张26类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):9255 标注数量(xml文件个数):9255 标注数量(txt文件个数):9255 标注…...
![](https://img-blog.csdnimg.cn/img_convert/50e73996fb40bb854b8febfb94d91dd4.jpeg)
StarRocks 存算分离 Compaction 原理
前言 StarRocks 中每次数据摄入都会生成一个新的数据版本,而查询时需要将所有版本数据进行合并才能获得一个正确的结果,如果历史数据版本太多,那么查询时需要读取的文件数也会很多,造成查询效率低下。因而 StarRocks 存在内部任务…...
![](/images/no-images.jpg)
安徽做公司网站哪家好/关键词热度
RT,在Hive中,使用了Group By后,是无法再sort,再取Top K的,我们可以用UDF distributed by sort by 实现这个功能。Assume you have a table with three columns: user, category and value. For each user, you want …...
![](https://images2018.cnblogs.com/blog/1430442/201808/1430442-20180822153031617-1233460822.png)
星巴克网站开发票/怎么做个网站
先上一个不修改的样式,如下: import easygui as gg.msgbox("hello","hi")注意左上角的图标为红色的Tk字样 修改后: import easygui as g from Tkinter import * tk Tk()tk.iconbitmap(default rC:\Users\xxoo\Download…...
烟台seo网站诊断/seo外包公司费用
晚上忽然发现自己的MAC从运行程序到看到Spring boot日志时间超过20秒。新建个空的boot空工程也需要10秒才会看到boot的启动日志。 最后设置了gc日志看了下有无异常情况。 从jvisualvm看下 Java HotSpot(TM) 64-Bit Server VM (25.131-b11) for bsd-amd64 JRE (1.8.0_131…...
![](https://img-blog.csdnimg.cn/20200308223219761.png)
wordpress具体作用/google服务框架
文章目录1 基础术语2 常见垃圾收集算法2.1 常见标记算法2.1.1 引用计数器算法2.1.2 可达性分析算法2.2 常见收集算法2.2.1 标记-清除算法2.2.2 标记-压缩算法2.2.3 复制算法2.2.4 增量算法2.2.5 分代收集算法3. GC触发的过程红\color{#FF0000}{红}红 橙\color{#FF7D00}{橙}橙 黄…...
![](https://img-blog.csdnimg.cn/2020111815163211.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ZlaTIwMTQwOTA4,size_16,color_FFFFFF,t_70#pic_center)
什么浏览器不限制网站/免费网站推广网站破解版
环境 Ubuntu20.04CLion 2020.2.4MySQL5.7 源码 代码下载自己各显神通吧,直接git clone会比较慢 我使用的是这个油猴脚本的直接下载单个版本的,没有git相关信息。 安装依赖 包含各种编译所需依赖,其中部分是ubuntu系统已经有的 sudo apt…...
![](/images/no-images.jpg)
用asp做的大型网站/html网页制作app
原文出处:http://www.linuxidc.com/Linux/2013-02/79999.htm 1.安装Ubuntu12.xx(本人使用的是12.10,其他版本未测试) 2.配置java环境 下载jdk-6u34-linux-x64.bin(百度google),终端中执行安装&a…...