自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python爬虫入门实战学习笔记(一)

爬虫入门

2022-10-08 17:16:34 648 1

原创 Python入门(十二)

Python异常处理

2022-09-26 18:51:08 308

原创 Python入门(十一)

python文件操作

2022-09-26 16:25:20 301

原创 Python入门(十)

Python函数

2022-09-26 15:02:26 138

原创 Python入门(九)

python集合

2022-09-26 13:57:27 150

原创 Python入门(八)

python字典

2022-09-26 13:49:53 112

原创 Python入门(七)

python元组

2022-09-26 09:41:10 148

原创 Python入门(六)

python列表

2022-09-24 16:24:25 333

原创 python入门(五)

python字符串

2022-09-24 13:36:30 154

原创 Python入门(四)

循环与条件语句

2022-09-24 10:07:45 119

原创 Python入门(三)

输入函数input()作用:接受来自用户的输入返回值类型:输入值的类型为str值的存储:使用=对输入值进行存储breakfast = input('今天早餐吃什么?')print(breakfast)#当运行该代码时 控制台会显示:“今天早晨吃什么?”这句话,同时光标处于闪烁的状态。#此时可以在控制台内输入内容并且单击回车结束输入,例如我们输入“面包”然后单击回车结束。#这时控制台会执行 print(breakfast),输出结果为“面包”input()的用处a = int(inpu

2021-11-05 17:34:47 99

原创 Python入门(二)

变量的定义和使用变量由三部分组成·标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取·类型:表示的是对象的数据类型,使用内置函数type(obj)来获取·值:表示对象所存储的具体数据,使用print(obj)来获取变量的多次赋值当对象再次赋值时,变量名指向新的空间,原来空间中的内容(id,type,value)都被当作内存垃圾,会被python的垃圾回收机制回收。python中常见的数据类型整数类型——int可以表示正数、负数、0十进制为默认进制、二进制以0b开头、8进

2021-11-03 17:37:21 109

原创 Python入门(一)

入门(一)

2021-11-02 17:38:54 106

原创 JavaScript中参数带双引号怎么办

今天在写小项目的时候遇到一个问题,来记录一下。问题今天从后端往前端传html类型的字符串时,前端页面总是乱码,起初不知道是什么特殊符号,后来发现是双引号!!!!!!!!!!!!!!!!如果我们从后端传到前端的参数中含有双引号,如红框中${emailInfo.content}中包含双引号。那么在调用的时候,其中的双引号就会和onclick后面的 " 双引号发生反应,导致整个代码出错!!!!...

2020-04-10 01:08:42 3652 1

原创 手写简易HashMap

/** * 自定义简单HashMap * * @author 孙昊 */public class ShHashMap<K,V> { Node<K,V>[] table;//位桶数组 int size;//存放键值对个数 //构造方法:定义一个长度为16的数组(长度需要是2的整数次幂,按位与的散列算法需要这样的条件) public ShHashMap...

2020-03-29 11:27:04 155

原创 重写equals()方法就尽量重写hashcode()方法的原因

equals方法与hashcode方法都是Object类中的方法。我们就先来看一下这两个方法的源码:如上面两张图所示,hashcode()是一个本地native方法,返回的是对象引用指向该对象的内存地址。而equals()方法也比较的是两个对象的地址是否相同。那么为什么我们重写equals()方法就要尽量重写hashcode()方法呢?原因在hashcode()方法的文档注释中已经...

2020-03-28 00:17:10 242

原创 doGet()与doPost()的区别

doget() 和 dopost() 分别对应 http 协议中的 GET 和 POST 方法,请求是 GET 方法就调用 doget() ,请求是 POST 方法就调用 dopost() 方法。GET 和 post 方法有本质的区别;GET 只有一个流,参数附加到 url 后,大小个数都有严格的限制,且只能是字符串;POST 的参数不通过 url 而是通过其他流的传递参数,所以可以很大,也可...

2020-03-20 09:41:19 677

原创 Linux根目录下各个目录的作用

/bin :重要的二进制(binary)可执行程序,系统的所有用户使用的命令都在这个目录下。/sbin/:存放超级用户可执行的命令。(super binary)/boot/:系统启动资源目录,包含引导加载程序相关的文件。/dev/:设备(device)文件保存位置,包含设备文件,包括终端设备,USB或连接到系统的任何设备。/etc/:系统默认配置文件保存位置。也...

2020-03-19 20:45:15 348

原创 JVM堆内存(heap)

Java堆内存管理是影响性能的主要因素之一。堆内存溢出是Java项目中非常常见的故障,在解决该问题之前,我们需要先了解一下什么是Java堆内存。是什么我们先来看一下,Java堆内存是如何划分的JDK8之前从JDK8开始,新生代与老年代更名(只是单纯的更名),无论哪个版本的JDK,其堆内存的划分都没有变化废弃永久代在JDK8版本废弃了永久代,替代的是元空间(MetaSpace),元空间...

2020-03-08 12:01:34 327 1

原创 忘记mysql密码怎么办

本次操作所有需要用到的密令行:bin>net stop mysqlbin>mysqld --skip-grant-tablesbin>mysqlmysql>use mysqlmysql>update user set password=password(“123456”) where user=“root”;mysql>flush privilege...

2020-03-07 00:51:57 183

原创 邮件发送原理

什么是邮件服务器在现在的Internet上存在大量的电子邮件服务器,例如国内的163.com、sohu.com等网站都提供了免费的面向公众的电子邮件服务器。在许多大的公司里也提供了面向内部员工的电子邮件服务器。不管是面向公众的电子邮件服务器,还是面向公司内部的电子邮件服务器,都可以实现电子邮件的发送和接收。电子邮件服务器跟现实生活中的邮局类似,可以实现如下功能:1、接收用户投递的电子邮件;...

2020-03-07 00:34:08 550

原创 网络编程TCP与UDP的区别

套接字(Socket)为了方便开发网络应用程序,美国伯克利大学在Unix上实现的一种应用程序访问网络的通信协议Socket,Socket的出现使程序员可以方便的访问TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议简单说:套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP...

2020-03-06 12:00:45 495

原创 多线程之线程池

线程池是什么线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程...

2020-03-05 21:18:25 165

原创 IO流

I是指Input(输入),O是指Output(输出)在Java中,文件的输入和输出都是通过流(Stream)来实现的,流的概念源于Unix中pipe(管道)的概念。在Unix系统中,管道是一条不间断的字节流,用来实现程序或者进程间的通信,或读写外围设备、外部文件等。一个流,必须有源端和目的端,他们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。对于流而...

2020-03-05 20:21:46 157

原创 IO之NIO

什么是IO流I是指Input(输入),O是指Output(输出)。在Java中,文件的输入和输出是通过流(Stream)来实现的,流的概念源于Unix中管道(pipe)的概念。在Unix系统中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。...

2020-03-03 16:59:41 111

原创 IO之File类总结

什么是File类File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。File类构造方法File(String pathname):通过路径名,创建一个新的File实例public class Test{ public static void main(String []args){ File file = new File("D:\\Program_F...

2020-03-02 20:14:21 189

原创 Mybatis一级缓存与二级缓存

为了提升查询效率,提高用户体验,MyBatis提供了数据缓存支持,依据数据缓存的有效范围默认定义了一级缓存和二级缓存一级缓存一级缓存默认开启,不能关闭该缓存为SqlSession级别的缓存,也称为本地缓存我们来看一下一级缓存的作用效果public class Test { public static void main(String[] args) { tr...

2020-03-02 13:05:03 194

原创 SpringMVC工作原理

先上图请求执行过程详细见:https://blog.csdn.net/S_Tian/article/details/104365603① 服务器发出请求至 前端控制器DispatcherServlet② DispatcherServlet收到请求调用HandlerMapping处理器映射器。处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如...

2020-03-01 13:51:50 122

原创 SpringMVC详述拦截器

首先 我们想使用拦截器 要在application.xml中进行如下配置:这里这个MyInterceptor是我们自己写的拦截器,如下功能如上图 我们接下来分析一下源码,详述一下 拦截器中每个方法的作用preHandle方法如上面两张图所示,就找到了我们自定义拦截器中的preHandler方法如果我们自己写的preHandler方法返回结果为false,则doDispatch方法...

2020-02-28 17:16:02 130

原创 SpringMVC异常处理

初始化异常解析器初始化过程详情见我以前的博客:https://blog.csdn.net/S_Tian/article/details/104369506要进行异常处理,首先要初始化异常解析器,即进入initHandlerExceptionResolvers方法,我们点进去默认初始化如果我们不在application.xml文件中配置<mvc:annotation-driven&...

2020-02-28 15:05:41 259

原创 SpringMVC详述自定义视图执行过程

前面的请求执行过程,详情见:https://blog.csdn.net/S_Tian/article/details/104365603现在是在DispatcherServlet中的doDispatch方法中。然后我们点击进入processDispatchResult方法,此处若有异常则进行异常处理(之后分析异常处理)DispatcherServlet中的render方法中有一个view...

2020-02-27 18:06:41 183

原创 详述ThreadLocal

ThreadLocal的作用和目的:用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。每个线程调用全局ThreadLocal对象的set方法,就相当于往期内部的map中增加一条记录,key是各自的线程对象,value是各自的set方法传进去的值。在线程结束时可以调用ThreadLocal.clear()方法,这样...

2020-02-26 13:11:47 272

原创 SpringMVC中SessionAttributes注解

SessionAttributes注解:默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后,数据就失效了。如果要跨页面使用。那么需要使用到session。而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中。该注解只能应用在类上该注解用于将Map、ModelMap、Model或ModelAndView中的数据暂存到H...

2020-02-25 22:46:19 394

原创 SpringMVC数据格式化

将时间字符串转换为Date对象除了使用数据类型转换器外还可以通过数据格式化的方式实现:我们在封装vo类时,添加这样两个注解可以将pattern值中的字符串格式,转换为birth对应的Date类型,money对应的int类型对象添加了这样两个注解之后,就不用手写转换类了我们提交这样一个表单Controller层代码如下在这里我们需要注意,输入的格式一定要按照pattern属性的...

2020-02-25 21:06:36 141

原创 SpringMVC数据类型转换器

为什么要使用数据类型转换器Spring MVC默认数据类型转换器:这些类型转换器可以完成大多数Java类型的转换工作,也可以自定义类型转换器以实现特殊需求,比如将日期字符串转换为Date类型。下面这个红色的标注就是我们自定义类型的转换器如何定义一个自定义类型转换器首先 我们明确一下我们的需求:日期字符串转换为Date类型。ConversionService是Spring类型转换体系的...

2020-02-25 20:49:19 392

原创 线程常用方法

run与start方法线程的run()方法是由java虚拟机直接调用的,如果我们没有启动线程(没有调用线程的start()方法)而是在应用代码中直接调用run()方法,那么这个线程的run()方法其实运行在当前线程(即run()方法的调用方所在的线程)之中,而不是运行在其自身的线程中,从而违背了创建线程的初衷public class MyThread extends Thread{ pub...

2020-02-24 23:41:37 270

原创 线程及其生命周期

什么是线程与进程程序(Program)是为实现特定目标或解决特定问题而用计算机语言(比如Java语言)编写的命令序列的集合。进程(process):指一个程序的一次执行过程。线程(thread):又称为轻量级进程,线程是一个程序中实现单一功能的一个指令序列,是一个程序的单个执行流,存在于进程中,是一个进程的一部分。进程与线程的关系:一个进程可以包含多个线程,而一个线程必须在一个进程之内...

2020-02-24 17:46:25 128

原创 SpringMVC中配置DispatcherServlet时load-on-startup标签作用

含义在servlet配置时,<load-on-startup>标签的含义是:标记是否在发布web项目时就创建DispatcherServlet对象并执行init方法,当值为0或大于0时,表示web项目一发布就加载该Servlet并执行inti方法当是一个负数或者没有指定时,则指示容器在该Servlet被选择时才加载创建DispatcherServlet对象执行init方法正数...

2020-02-18 10:45:46 873

原创 SpringMVC中请求request执行过程

我们先在web.xml中配置好了 DispatcherServlet类我们服务器端发送的请求 首先进入service方法 可是我们的DispatcherServlet类中没有service方法,所以自动执行其父类的父类的父类HttpServlet抽象类的该方法HttpServlet类中的service方法最后将request和response传到了doGet方法,就近原则,传到了Dispa...

2020-02-17 23:31:14 591

原创 MyBatis之动态SQL

什么是动态sqlmybatis 核心对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。为什么使用动态sql利用动态 SQL可以很方便地根据不同条件拼接 SQL 语句。怎么使用动态sql我们使用不同的标签 具体操作在数据库中每个表对应模块的对应xml文件,与EL、JSTL有几分相似之处具体操作如下:where标签:我们可以发现 有了where标签就不用在sql...

2020-02-12 21:11:19 161

空空如也

空空如也

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

TA关注的人

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