自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 Java8新特性

文章目录一、lamda表达式1.使用2.总结:3.Java内置的4大核心函数式接口Java8即jdk1.8,是Java语言开发的一个主要版本,Oracle公司与2014年3月发布。Java8为 Java语言、编译器、类库、开发工具与JVM带来了大量新特性。一、lamda表达式lambda表达式是一个匿名函数,可以写出更简洁,更灵活的代码。1.使用1.(->):lambda操作符,或者叫做箭头操作符;2.箭头操作符左边:lambda形参列表(其实就是接口中的抽象方法的形参列表)3.箭头操作

2022-03-29 15:43:12 4060

原创 MyBatis

文章目录一、简介二、使用:三、全局配置文件:四、SQL映射文件:1、cache – 给定命名空间的缓存配置。2、cache-ref – 其他命名空间缓存配置的引用。3、resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。4、parameterMap – 已废弃!5、sql – 可被其他语句引用的可重用语句块6、 insert 、update、delete – 映射插入语句7、select映射查询语句8、联合查询:五、动态sql:1、if2、choose (when, o

2021-07-21 09:20:25 218

原创 Java——查找算法

文章目录一、线性查找:二、二分查找:三、插值查找:在Java中常用的查找有四种:(1)顺序(线性)查找(2)二分查找(折半查找)(3)插值查找(4)斐波那契查找(黄金分割点查找)一、线性查找:public class SeqSearch { public static void main(String[] args) { int[] arr = {1,9,11,-1,43,89}; int index = seqSearch(arr, 11);

2021-07-19 22:05:42 208

原创 spring框架梳理

Spring 和 JavaWeb整合使用:1.spring 来控制事务(dao-JdbcTemplate)2.所有的组件Autowired3.管理数据库大体方法:1.导入相关包2.写配置(1)将所有组件加入容器中@Controller:servlet层,目前不能标注在servlet层(tomcat服务器一启动,就会创建servlet对象,若同时进行了标注,则ioc容器也会创建出一个对象,但是tomcat还是会用自己创建出来的对象,所以标注是没有意义的) 方法:在webUtils类中,重写g

2021-07-19 10:22:04 209

原创 图的入门和 深度优先遍历、广度优先遍历

文章目录一、基础知识:(1)基本概念:(2)图的表示方式:二、代码实现:一、基础知识:(1)基本概念:(2)图的表示方式:邻接矩阵:邻接表:二、代码实现:包含图的简单实现,深度优先遍历、广度优先遍历。深度优先遍历:广度优先遍历:代码汇总:package graph;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;/** * 图的简单实现 */

2021-06-24 09:38:47 113

原创 HTML、CSS笔记

文章目录一、HTML基本知识:(1)HTML书写规范:(2)HTML标签介绍:(3)标签的语法:(4)常用标签介绍:二、CSS基本知识:(1)语法规则:(2)CSS和HTML的结合:(3)CSS选择器:(4)常用样式:注:Java 文件是需要先编译,再由 java 虚拟机跑起来。但 HTML 文件它不需要编译,直接由浏览器进行解析执行。一、HTML基本知识:(1)HTML书写规范:<!DOCTYPE html> <!-- 约束声明--><html lang="en"

2021-06-24 09:35:16 230

原创 JavaScript入门笔记

文章目录一、简介:二、JavaScript 和 html 代码的结合方式:2.1、第一种方式2.2、第二种方式三、变量及运算:(1)关系(比较)运算:(2)逻辑运算:(3)数组:(4)函数:(5)自定义对象:(6)JS中的事件:一、简介:Javascript 语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行 JavaScript 代码。 JS 是 Netscape 网景公司的产品,最早取名为 LiveScript;为了吸引更多 java 程序员。更名为 JavaScript

2021-06-24 09:34:56 84

原创 jQuery笔记

文章目录一、jQuery核心函数:1、传入参数为 [ 函数 ] 时:2、传入参数为 [ HTML 字符串 ] 时:3、传入参数为 [ 选择器字符串 ] 时:4、传入参数为 [ DOM 对象 ] 时:二、jQuery 对象和 dom 对象区分:1、jQuery 对象,dom 对象:2、jQuery 对象的本质:3、jQuery 对象和 Dom 对象使用区别:4、Dom 对象和 jQuery 对象互转:一、jQuery核心函数:简单测试:1、传入参数为 [ 函数 ] 时:表示页面加载完成之后。相

2021-06-24 09:34:00 50

原创 Java——平衡二叉树

文章目录一、基本概念:二、实现:1、单旋转:2、双旋转:一、基本概念:平衡二叉树是对 二叉排序树的改进。二、实现:首先要根据条件判断是否要进行平衡二叉树的调整:要获取到左右子树高度。 //******************************************************** //计算高度 //返回当前节点的高度,(以该节点为根节点的树的高度) public int height(){ return Math.max(left =

2021-05-09 16:23:42 254

原创 Java——二叉排序树

文章目录一、基本概念:二、二叉排序树的创建和遍历:三、二叉排序树删除节点:一、基本概念:二、二叉排序树的创建和遍历:package binarysorttree;public class BinarySortTreeDemo { public static void main(String[] args) { int[] arr = {7,3,10,12,5,1,9}; BinarySortTree binarySortTree = new Binar

2021-05-08 20:14:22 98

原创 赫夫曼树、赫夫曼编码

文章目录一、基本概念:二、创建赫夫曼树:1.思路:2.代码实现:三、赫夫曼编码:1.基本原理:2.案例:数据压缩(1)创建赫夫曼树:(2)生成赫夫曼编码和赫夫曼编码后的数据:一、基本概念:赫夫曼树几个重要概念和举例说明:路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为 1,则从根结点到第 L 层结点的路径长度为 L-1。结点的权及带权路径长度:若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。

2021-05-07 15:39:13 207

原创 Java数据结构和算法——排序

文章目录一、排序算法介绍:1.基本知识:2.算法的常见时间复杂度:3.平均时间复杂度和最坏时间复杂度:4.空间复杂度:二、排序算法:1.冒泡排序:2.选择排序:3.插入排序:4.希尔排序:5.快速排序:6.归并排序:一、排序算法介绍:1.基本知识:2.算法的常见时间复杂度:3.平均时间复杂度和最坏时间复杂度:4.空间复杂度:二、排序算法:1.冒泡排序:小结冒泡排序:(1)一共进行数组大小-1 次的 排序趟数(大循环)(2)每趟排序的次数在逐渐减少,即每趟排序

2021-05-04 12:05:42 134

原创 Java——数组+链表实现简单的哈希表

package hashtable;import java.util.Scanner;/** * 实现:数组 + 链表 */public class HashTableDemo { public static void main(String[] args) { //创建哈希表 HashTable hashTab = new HashTable(7); //写一个简单的菜单 String key = ""; .

2021-05-02 22:30:28 170

原创 Java——顺序存储二叉树的遍历

在数组中:(1)第n个元素的左子节点为 2n + 1;(2)第n个元素的右子节点为 2n + 2;(3)第n个元素的父节点为(n-1)/ 2;n表示二叉树中的第几个元素(按0开始编号),也是在数组中的存储顺序。需求:给一个数组[1,2,3,4,5,6,7],要求以二叉树的前、中、后序遍历的方式进行输出。package tree;/** * 以数组的方式存储二叉树并完成遍历 */public class ArrayBinaryTreeDemo { public static vo

2021-05-02 22:04:03 93

原创 Java——二叉树的前序、中序、后序遍历及前、中、后序查找

package tree;/** * 二叉树的前序遍历、中序遍历、后序遍历 */public class BinaryTreeDemo { public static void main(String[] args) { BinaryTree binaryTree = new BinaryTree(); HeroNode root = new HeroNode(1, "宋江"); HeroNode node2 = new HeroNode(

2021-05-02 21:57:18 89

原创 MySQL数据库

文章目录一、数据库基本概念:二、SQL:三、DDL:操作数据库、表:操作数据库:操作表:四、图形化界面工具SQLyog:五、DML:添加数据:删除数据:修改数据:六、DQL:一、数据库基本概念:1.什么是数据库:用于存储和管理数据的仓库。2.数据库的特点:(1)持久化存储数据。其实数据库就是一个文件系统;(2)方便存储和管理数据;(3)使用了统一的方式操作数据库----SQL。3.常见的数据库软件:是对数据库的一种实现。Oracle,MYSQL;在web应用中使用最多的就是MySQL数据

2021-04-29 12:15:09 124

原创 Java——网络编程

文章目录一、概述:(1)IP地址:InetAddress类(2)端口号:(3)网络协议:二、TCP网络编程:三、UDP网络编程:四、URL编程:一、概述:网络编程中两个要素:(1)IP和端口号;(2)提供网络协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)(1)IP地址:InetAddress类本地回路地址:127.0.0.1 对应着:localhost实例化方法:InetAddress没有显示构造器,被私有化了,通过静态方法来创建对象。//获取想要获取的域名IP

2021-04-19 21:57:30 64

原创 Java——其他常用类的使用

文章目录一、System:二、Math类:三、BigInteger 与 BigDecimal:1.BigInteger:2.BigDecimal:一、System:举例: String javaVersion = System.getProperty("java.version"); System.out.println(javaVersion); String javaHome = System.getProperty("java.home"); System.out.pri

2021-04-14 10:58:01 56

原创 Java——比较器

文章目录一、Comparable接口:二、Comparator接口:一、Comparable接口:1.像String、包装类等实现了Comparable接口,重写了compareTo()方法,给出了比较两个对象大小的方法。2.像String、包装类等重写了compareTo()方法后,是进行从小到大的排列,即顺序排序。3.重写compareTo()的规则:4.对于自定义类来说,如果需要排序,可以让自定义类实现Comparable接口,重写compareTo(obj)方法,在方法中指名如何排序。

2021-04-13 20:08:42 58

原创 Java——日期时间API

一、java.lang.System:long times = System.currentTimeMillis(); //返回的是当前时间与1970年1月1月1日0分0秒之间以毫秒为单位的时间差 //称为时间戳 System.out.println(times);二、java.util.Date and java.sql.Date:将java.util.Date 对象转换为java.sql.Date对象: //将java.util.Date 对象转换为java.sql.Dat

2021-04-13 17:44:37 111

原创 Java——StringBuffer和StringBuilder的使用

文章目录String、StringBuffer、StringBuilder三者的异同?String:不可变的字符序列。StringBuffer:可变的字符序列;线程安全的(有synchronize修饰方法)但效率低StringBuilder:可变的字符序列;线程不安全,效率高(jdk5.0新增)相同点:底层使用char[ ]存储。源码分析:String str = new String();//char[] value = new char[0]; String str1 = new St

2021-04-13 10:56:12 242

原创 Java数据结构——栈、中后缀表达式的计算

文章目录一、栈:1.数组模拟栈的简单实现:2.单链表模拟栈:3.使用栈计算中缀表达式的值:二、前缀、中缀、后缀表达式:1.前缀表达式:2.中缀表达式:3.后缀表达式:三、实现一个逆波兰计算器:一、栈:1.数组模拟栈的简单实现:package stack;import java.util.Scanner;public class ArrayStackDemo { public static void main(String[] args) { //测试栈 ArrayStack

2021-03-22 15:37:14 280

原创 Java数据结构——稀疏矩阵、数组模拟队列、单链表、双向链表、单向环形链表

文章目录线性结构:非线性结构:稀疏数组和队列:数据结构包括线性结构和非线性结构。线性结构:(1)线性结构作为最常见的数据结构,其特点是数据元素之间存在一对一的线性关系;(2)线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为线性表,顺序表中的存储元素是连续的;(3)链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素预计相邻元素的地址信息;(4)线性结构常见的有:数组、队列、链表和栈。非线性结构:非线性结构包括:二维数组、多维数组,广

2021-03-18 21:11:31 248 1

原创 pytorch 模型参数量、FLOPs统计方法

文章目录一、使用第三方工具:torchstat:ptflops:其他工具:二、使用函数统计模型参数量:一、使用第三方工具:torchstat:安装:pip install torchstattorchstat GitHub 源码页面例子:from torchstat import statfrom backbone import EfficientDetBackbonemodel = EfficientDetBackbone()stat(model, (3, 1280, 1280))输

2021-02-08 11:26:53 2183 1

原创 2020.12.10——Java线程

文章目录一、基本概念:1.程序、进程、线程:2.多线程的创建和启动:3.Thread类的相关方法:4.线程的优先级:二、线程的生命周期:三、线程的同步:一、基本概念:1.程序、进程、线程:何时需要多线程:程序需要同时执行两个或多个任务。程序需要实现一些需要等待的任务时,如用户输入、文件读写操作、网络操作、搜索等。需要在后台运行一些程序时。2.多线程的创建和启动:run():想要在开启的多线程中运行的代码逻辑,就写到run()方法中。start():用来启动线程,本质上就是开始运行r

2021-01-21 18:23:05 74

原创 2020.11.29——反射

文章目录一、理解class类并实例化class类对象:二、通过反射调用类的完整结构:1.获得全部接口、所继承的父类:2.全部的构造器:3.全部的方法:4.全部的Field:5.类所在的包:三、通过反射创建对象:1.创建对象:2.通过反射强制调用私有的构造方法:四、通过反射调用类中的指定方法、指定属性:1.调用指定方法:2.调用指定属性:五、Java动态代理:反射机制:就是通过一个抽象的类名能够在自己记忆(加载类的内存)中,找到这个类的具体信息。前提:jvm已经加载过这个类,相当于有了对这个类的记忆。

2020-12-02 10:06:37 99

原创 2020.11.19——IO流

文章目录一、File类:基本知识:File类递归遍历文件:二、Java IO原理:基础知识:文件字节输入流:文件字节输出流:文件字符输入流:缓冲流:主要内容:一、java.io.File类的使用;二、IO原理;三、流的分类:(1)文件流:数据流的读写都是基于文件的操作。FileInputStream / FileOutputStream / FIleReader / FileWriter(2)缓冲流:数据流的读写都是基于内存的操作。BufferedIputStream / BufferedOut

2020-11-20 10:20:08 191

原创 2020.11.11——Java枚举和注解

文章目录一、枚举:1.概述:2.使用enum定义枚举类:3.实现接口的枚举类:4.枚举类的方法:二、注解(Annotation):1.概述:2.基本的注解:3.自定义注解:一、枚举:1.概述:某些情况下,一个类的对象是有限而且固定的。手动实现枚举类:private 修饰构造器;属性使用private final 修饰;把该类的所有实例都使用 public static final 来说修饰;枚举类中每个枚举都是单例模式。2.使用enum定义枚举类:3.实现接口的枚举类:4.枚举类

2020-11-11 17:19:16 109

原创 爬虫问题——2020.10.16 Request url must be str or unicode, got NoneType:

问题描述1.使用scrapy框架进行爬取图片时,用xpath解析打印获取的img的src属性值为none type,scrapy crawl 运行爬虫脚本时报错:Request url must be str or unicode, got NoneType:2.换了一种方式:用requests模块进行请求,用xpath 进行解析,打印img的src属性值,有一些属性值可以正常输出,但还是出现了错误,如下:分析:查看了网页源码,src属性值得架构都是一样的,并都有这个属性值。暂未发现原因。...

2020-11-11 16:56:32 1657

原创 爬虫——2020.10.11 CrawlSpider使用

CrawlSpider:是一个类,Spider的一个子类。专门用作于全站数据爬取。也就是说,我们创建的爬虫文件中,父类是CrawlSpider。使用方法:1.创建一个工程2.cd 到工程目录下3.创建爬虫文件(CrawlSpider):scrapy genspider -t crawl name ww.xxx.com4.链接提取器:根据指定的规则(allow:正则表达式)进行指定链接的提取。5.规则解析器:将链接提取器提取到的链接进行指定规则(callback)的解析操作。follw=True

2020-11-11 16:56:11 123

原创 爬虫——2020.10.11 scrapy下载中间件

中间件:下载中间件:使用下载中间件时,要记得开启下载中间件,在配置文件中:DOWNLOADER_MIDDLEWARES。操作文件位置在中间件中的下载中间件类中。位置:引擎和下载器之间作用:批量拦截到整个工程中所有的请求和响应拦截请求:(1)请求头信息中有UA信息,进行UA伪装:封装一个UA列表,在拦截请求后随机进行选取UA信息。(2)代理IP设定:代理操作一般写在拦截异常中。同样先封装好代理池,分为http,https两种。设定判断条件,然后进行随机选择,最后将修改好的请求进行返回

2020-11-11 16:56:03 103

原创 爬虫——2020.10.10 scrapy图片数据爬取

文章目录图片数据爬取:ImagePipelineImagePipeline:使用流程:图片数据爬取:ImagePipeline基于scrapy爬取字符串类型的数据和爬取图片类型的数据区别:字符串:只需基于xpath解析出并提交给管道进行持久化存储。图片:xpath解析出图片src的属性值,单独的对图片地址进行请求,然后获取图片二进制类型的数据。ImagePipeline:只需将img的src属性值进行解析,提交到管道,管道就会对图片的src进行请求发送获取图片的二进制数据,并进行持久化存储。

2020-11-11 16:55:55 130

原创 爬虫——2020.10.10 scrapy请求传参

请求传参:使用场景:爬取的数据不在同一页面中。也就是说爬取的目标可能在详情url中,即深度爬取。例子:1.第一步:实现方法:重写一个解析详情页的parse方法,在原始parse方法下,手动进行请求发送中,加入meta参数,即可将item传递给解析详情页的parse方法。就是将不同页面解析返回的item封装到同一个item中。yield scrapy.Request(detail_url,callback=self.detail_parse,meta={'item':item})2.第二步

2020-11-11 16:55:45 145

原创 爬虫——2020.10.9 scrapy五大核心组件

scrapy五大核心组件:引擎:用来处理整个系统的数据流,触发事务(框架核心)调度器:用来接受引擎发过来的请求,压入队列中,并在引擎中再次请求时返回,可以想象成一个URL的优先队列,由他来决定下一个要抓取的是什么,同时去除重复的网址下载器:用于下载网页内容,并将网页内容返回给蜘蛛(scrapy下载器是建立在twisted这个高效的异步模型上的)爬虫:爬虫是主要干活的,用于从特定网页中提取自己需要的信息,即所谓的实体(item)。用户也可以从中提取出链接,让scrapy继续抓取下一个页面项目管道

2020-11-11 16:55:36 325

原创 爬虫——2020.10.9 scrapy全站爬取

scrapy全站爬取:含义:就是将网站中某板块下的全部页码对应的页面数据进行爬取。实现方式:(1)将所有页面的url添加到start_url列表中(不推荐)(2)手动进行请求发送(推荐):callback回调函数专门用作于数据解析。yield scrapy.Request(url=new_url,callback=self.parse)...

2020-11-11 16:55:27 78

原创 爬虫——2020.10.08 scrapy框架基本使用

文章目录scrapy框架基本概念:scrapy框架基本使用:scrapy框架基本概念:框架:就是一个集成了很多功能并且具有很强通用性的的一个项目模板。学习:学习其中封装好的各种功能的用法。scrapy:爬虫中封装好的一个明星框架。具有高性能的持久化存储,异步数据下载,高性能的数据解析,分布式。环境配置:pip install scrapy。过程会安装一些依赖项。测试:在终端输入scrapy指令,没有报错即表示安装成功。scrapy框架基本使用:创建一个工程:scrapy startpr

2020-11-11 16:55:17 770

原创 爬虫——2020.10.7 selenium模块的基本使用

文章目录为什么使用selenium模块:selenium模块简介:selenium使用流程:为什么使用selenium模块:可以便捷的获取网站中动态加载的数据。便捷实现用户模拟登录。selenium模块简介:基于浏览器自动化的一个模块。selenium使用流程:1.环境安装:pip install selenium2.下载浏览器驱动程序。3.实例化一个浏览器对象,然后编写基于浏览器自动化的操作代码。from selenium import webdriverobj = webdrive

2020-11-11 16:55:04 57

原创 爬虫——2020-09-29聚焦爬虫---数据解析

聚焦爬虫编码流程:1.指定url2.发起请求3.获取响应数据4.数据解析5.持久化存储数据解析分类:正则bs4xpath:重点,通用性比较强数据解析概念:解析的局部的文本内容都会在标签之间或者标签对应的属性中存储1.进行指定标签的定位2.标签或者标签对应的属性中存储的数据值进行提取(解析)...

2020-11-11 16:54:51 156

原创 爬虫——2020.10.6 代理相关知识

代理:破解封IP的这种反爬机制。什么是代理:代理服务器。代理的作用:突破自身的IP访问限制,并隐藏自身的真实IP。代理相关的网站:(1)快代理(2)西祠代理(3)www.goubanjia.com代理IP类型:(1)http:应用到http协议对应封url中(2)https:应用到https协议对应的url中。代理IP的匿名度:(1)透明:服务器知道这次请求使用了代理,也知道请求对应的真实IP(2)匿名:知道使用了代理,但不知道真实IP(3)高匿:不知道使用了代理,更不知道真实

2020-11-11 16:54:39 85

原创 爬虫——2020.10.5 验证码识别+模拟登录

验证码识别:验证码的作用:反爬虫。他是动态的,用户每次发送请求,验证码都会刷新。爬取方式:通过第三方工具进行爬取;首先获取验证码的url,保存验证码图像到本地,然后利用第三方工具进行识别。为post请求类型,并且携带参数。response.status_code若响应的状态码为200,则表示请求成功。模拟登录:爬取基于某些用户的用户信息。点击登录按钮后会发起一个post请求。post请求中会携带登录之前录入的相关信息(用户名,密码,验证码等)。验证码在每次请求后都会变化。http/

2020-11-11 16:54:30 382

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除