next

我想撸代码!

社会主义新天地 提交于 2020-11-01 18:20:09
这几天忙着写论文,忙着写作业。都没有好好撸代码,总结出来自己不会的东西也没有去学。就很难受也很无奈。果然时间规划是个大学问。😭附上今晚没有撸完的代码。 #include <stdio.h> #include <stdlib.h> typedef struct line{ struct line * prior; int data; struct line * next; }line; //双链表的创建 line* initLine(line * head); //双链表插入元素,add表示插入位置 line * insertLine(line * head,int data,int add); //双链表删除指定元素 line * delLine(line * head,int data); //双链表中查找指定元素 int selectElem(line * head,int elem); //双链表中更改指定位置节点中存储的数据,add表示更改位置 line *amendElem(line * p,int add,int newElem); //输出双链表的实现函数 void display(line * head); int main() { line * head=NULL; //创建双链表 head=initLine(head); display(head); /

ArrayList和LinkedList

两盒软妹~` 提交于 2020-11-01 18:08:19
微信公众号:MyClass社区 如有问题或建议,请公众号留言 1.ArrayList并发测试 写在前边,越是简单的数据结构,我们有时候就是容易忽略。并发下的ArrayList会出现什么情况,大家可能会说因为 并发扩容可能 抛数据越界异常,真的是这样吗?我们进行简单测试,分析一下: @ Test public void conTestArrayListSizeAdd () throws Exception { List<Integer> list = new ArrayList<>(); ExecutorService executorService = Executors.newFixedThreadPool( 10 ); for ( int threadNum = 0 ; threadNum < 10 ; threadNum++) { executorService.submit( new Runnable() { @Override public void run() { for ( int i = 0 ; i < 10 ; i++) { list .add(size++); } } }); } Thread.sleep( 1000 ); System.out.println( "size" + list .size()+ ",list:" + list );

Python网络爬虫入门篇

六眼飞鱼酱① 提交于 2020-11-01 15:12:15
1. 预备知识 学习者需要预先掌握Python的数字类型、字符串类型、分支、循环、函数、列表类型、字典类型、文件和第三方库使用等概念和编程方法。 Python入门篇: https://www.cnblogs.com/wenwei-blog/p/10592541.html 2. Python爬虫基本流程 a. 发送请求 使用http库向目标站点发起请求,即发送一个Request,Request包含:请求头、请求体等。 Request模块缺陷:不能执行JS 和CSS 代码。 b. 获取响应内容 如果requests的内容存在于目标服务器上,那么服务器会返回请求内容。 Response包含:html、Json字符串、图片,视频等。 c. 解析内容 对用户而言,就是寻找自己需要的信息。对于Python爬虫而言,就是利用正则表达式或者其他库提取目标信息。 解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等 解析json数据:json模块 解析二进制数据:以wb的方式写入文件 d. 保存数据 解析得到的数据可以多种形式,如文本,音频,视频保存在本地。 数据库(MySQL,Mongdb、Redis) 文件 3. Requests库入门 Requests是用python语言基于urllib编写的,采用的是Apache2

2020Java面试试题及答案(基础部分)

与世无争的帅哥 提交于 2020-11-01 14:44:00
世人慌慌张张,不过图碎银几两。偏偏这碎银几两,能解世间万种慌张。最近实在揭不开锅了,有了换工作的想法,网上整理了部分Java基础面试题,好东西要拿出来分享。好了不多说了进入正题。 如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加我们的扫描二维码,各种面试资料简历模板免费送! 1、面向对象的三个特征 封装(即包装或隐藏): 封装从字面上来理解就是包装的意思,专业点就是信息隐藏。它指的是将对象的数据、状态信息和对数据的操作方法及细节隐藏在对象内部, 不允许外部程序直接访问对象的内部信息或直接对对象进行操作,而是向外提供一些安全可靠的方法供外部程序对对象进行安全的访问和操作。 好处: 隐藏信息和实现细节 可以对成员进行更精确的控制,限制对对象的不合理访问 便于修改,提高代码的可维护性 良好的封装能够减少耦合 继承: 使用现有的类的所有功能,并无须重新编写原来的这些类的基础上对这些功能进行扩展(可以增加新的数据或新的功能)。 特点: 子类拥有父类非private的属性和方法 子类可以拥有自己属性和方法,即子类可以对父类进行扩展 子类可以重写父类已实现的方法 多态: 所谓多态就是一个实例的相同方法在不同的情形下有不同的表现形式,即程序中定义的引用变量所指向的具体类型和通过引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定

《python3网络爬虫开发实战》--Scrapy

左心房为你撑大大i 提交于 2020-11-01 10:08:33
1. 架构 引擎(Scrapy):用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler):用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 下载器(Downloader):用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) 爬虫(Spiders):爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面 项目管道(Pipeline):负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。 下载器中间件(Downloader Middlewares):位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。 爬虫中间件(Spider Middlewares):介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。 调度中间件(Scheduler Middewares):介于Scrapy引擎和调度之间的中间件

[web 前端] web本地存储(localStorage、sessionStorage)

╄→гoц情女王★ 提交于 2020-11-01 07:33:53
cp from : https://blog.csdn.net/mjzhang1993/article/details/70820868 web 本地存储 (localStorage、sessionStorage) 说明 对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和 sessionStorage sessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载 localStorage(长期存储) :与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存在 API sessionStorage 和 localStorage 的用法基本一致,引用类型的值要转换成JSON 1. 保存数据到本地 const info = { name: 'Lee' , age: 20 , id: '001' }; sessionStorage.setItem( 'key' , JSON.stringify(info)); localStorage.setItem( 'key', JSON.stringify(info)); 2. 从本地存储获取数据 var data1 = JSON.parse(sessionStorage.getItem

死锁案例之九

情到浓时终转凉″ 提交于 2020-11-01 04:07:37
来源:公众号yangyidba 一 前言 死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。 二 案例分析 2.1 业务场景 业务开发同学要初始化数据,他们的逻辑是 批量执行insert values(x,x,x),(x,x,x); 该表有唯一键,批量插入的唯一键相邻,出现大量死锁 。 2.2 环境说明 MySQL 5.6.24 事务隔离级别为RR CREATE TABLE `tc` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID', `c1` bigint(20) unsigned NOT NULL DEFAULT '0', `c2` bigint(20) unsigned NOT NULL DEFAULT '0', `c3` bigint(20) unsigned NOT NULL DEFAULT '0', `c4` tinyint(4) NOT NULL DEFAULT '0', `c5` tinyint(4) NOT NULL DEFAULT '0', `created_at` datetime NOT NULL DEFAULT '1970-01-01 08:00:00',

Java 容器 × HashMap[JDK 1.8]源码学习

五迷三道 提交于 2020-10-31 11:14:42
HashMap 属性 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { /*--------------常量--------------*/ // 默认hash桶初始长度16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 // hash桶最大容量2的30次幂 static final int MAXIMUM_CAPACITY = 1 << 30; // 默认加载因子为0.75f static final float DEFAULT_LOAD_FACTOR = 0.75f; // 链表的数量大于等于8个并且桶的数量大于等于64时链表树化 static final int TREEIFY_THRESHOLD = 8; // hash表某个节点链表的数量小于等于6时树拆分 static final int UNTREEIFY_THRESHOLD = 6; // 树化时最小桶的数量 static final int MIN_TREEIFY_CAPACITY = 64; /*--------------实例变量--------------*/ // hash桶

Pytorch报错记录

£可爱£侵袭症+ 提交于 2020-10-31 08:51:49
1.BrokenPipeError 执行以下命令时: a,b = iter(train_loader).next() 报错:BrokenPipeError: [Errno 32] Broken pipe 错误原因 :子进程原因 On Windows the subprocesses will import (i.e. execute) the main module at start. You need to insert an if __name__ == '__main__': guard in the main module to avoid creating subprocesses recursively. 解决方法: Please see my edited response where I did exactly that. The requirement for wrapping the code inside of if __name__ == '__main__' code isn't immediately obvoius, as it is only required for Windows machines.就是说在windows下必须将上面的代码打包在if __name__ == '__main__'语句下面。这时不会报错了。 还有人说:I also

S2-052

馋奶兔 提交于 2020-10-31 08:10:18
前言 S2-052的RCE漏洞和以前的有些不同,不再是ognl表达式注入了,而是xml反序列化漏洞导致的RCE(另外还有S2-055漏洞是fastjson的反序列化漏洞)。我复现的时候遇到一个坑,导致一直复现不成功,就是必须要jdk1.8以上的版本才行。 正文 之前讲过执行action之前会先经过一些内置的拦截器,使用rest插件之后也是类似的,只不过经过的拦截器有变化了,如下图: 这次的漏洞就出现在ContentTypeInterceptor中,debug进去看看: 可以看到,通过getHandlerForRequest获得一个Handler后,调用handler的toObject方法,而输入的参数就是请求body,跟进getHandlerForRequest: 发现是通过请求头Content-Type来选择对应的Handler的,这是的漏洞就出现在,当Content-Type时会选用XStreamHandler,调用它的toObject() 很明显,调用了Xstream的fromXML方法,导致了xml的反序列化漏洞。 发送一个post请求,修改请求头信息为Content-Type: application/xml,发送post数据就是POC了,使用marshalsec工具( https://github.com/mbechler/marshalsec)生成如下poc: