自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秋忆夏伤的博客

学习笔记、备忘要点:

  • 博客(428)
  • 资源 (3)
  • 收藏
  • 关注

原创 java学习笔记(一):Java 基础知识

一、java语言的三个版本:1、JavaSE:java 语言的标准版,用于桌面应用的开发,是其他两个版本的基础。(java 基础)2、JavaME:java 语言的小型版,用于嵌入式消费类电子设备。(已经被 android 和 ios 所取代)3、JavaEE:java 语言的企业版,用于 web 方向的网站开发。二、java虚拟机 - JVM: JVM:java virtual machine,java 虚拟机,简称 JVM,是运行所有 java 程序的假想计算机,是 java

2022-03-15 09:07:57 369

原创 Python学习笔记(三十一):连接 mysql 数据库

python 中连接 mysql 数据库,可以使用 mysql-connector,mysql-connector 是 mysql 官方提供的驱动;是属于第三方的模块,所以需要手动安装;也可以使用 pymysql 驱动来连接 mysql 数据库,pymysql 是 python3 版本中的,python2 中使用的是 mysqldb;pymysql 模块也是第三方模块,需要手动安装;两种方法差不多,我是用 mysql-connector 模块连接的;1、创建 mysql 数据库连接:.

2020-07-03 17:03:19 1129

原创 Python学习笔记(三十):TCP 通信

TCP 简介:TCP 协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议;TCP 通信需要经过 创建连接、数据传送、终止连接 三个步骤;TCP 通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,"打电话";TCP 特点: 面向连接: 通信双方必须先建立连接才能进行数据的传输,双方都必须为该连接分配必要的系统内核资源,以管理连接的状态和连接上的传输;

2020-07-03 15:45:50 435

原创 Python学习笔记(二十九):UDP 通信

网络通信:本地的进程间通信可以有很多种,比如队列、同步(互斥锁)等;那么网络中进程之间如何通信??首先要解决的问题是,如何准确标识一个网络中的进程;我们知道,网络中的 ip 地址可以准确的标识一个主机,而 "协议+端口" 可以准确的标识一个主机中的应用程序(进程);这样,利用 ip地址、协议、端口 就可以标识网络的进程了,网络中的进程可以利用这个标志与其他进程进行通信;socket:socket,也称为套接字,是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能.

2020-07-03 15:05:59 317

原创 Python学习笔记(二十八):线程

进程和线程的区别: 进程:是系统进行资源分配和调度的一个独立单位; 线程:是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈);但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。 一个程序至少有一个进程,一个进程至少有一个线程; 线程的划分尺度小于进程(资源比进程少),使得多线程程序的并发性高; 进程在执行过程中,拥有独立的

2020-07-03 12:10:17 226

原创 Python学习笔记(二十七):进程间通信 Queue

进程之间有时候需要通信,可以使用 multiprocessing 模块中的 Queue 类来实现进程间的数据传递,Queue 是一个消息队列,循序 先进先出 的规则;初始化 Queue 对象时(q = Queue()),若括号中没有指定最大可接收的消息数量,或数量为负值,那么就代表可接受的消息数量没有上限,直到内存的尽头;Queue 常用的方法: Queue.qsize():返回当前消息队列包含的消息数量; Queue.empty():如果队列为空,返回 True,否则返回 F.

2020-06-29 17:32:25 434

原创 Python学习笔记(二十六):使用进程池 Pool 创建子进程

接上一篇文章:Python学习笔记(二十五):使用跨平台的 Process 创建子进程当需要创建的子进程数量不多时,可以直接利用 multiprocessing 模块中的 Process 类动态生成多个进程;但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以使用 multiprocessing 模块提供的 Pool 类去完成;初始化 Pool 对象时,可以指定一个最大进程数,当有新的请求提交到 Pool 中时,如果池还没有满,那么就会创建一个新的进程来执行该请求;但如果池中的进程数

2020-06-29 17:29:14 738

原创 Python学习笔记(二十五):使用跨平台的 Process 创建子进程

Process 类:fork() 方法只在类 linux 系统下可以使用,在 windows 下无法使用;但是 python 是跨平台的,自然也应该提供一个跨平台的多进程支持;multiprocessing 模块就是跨平台版本的多进程模块,即在 linux 系统下和 windows 系统下都可以使用;multiprocessing 模块提供了一个 Process 类来代表一个进程;以后尽量使用 Process 方法代替 fork() 方法创建子进程;以下例子用 Process .

2020-06-29 17:23:38 1576

原创 Python学习笔记(二十四):在 linux 系统下使用 fork() 创建子进程

进程:编写完毕的代码,在没有运行的时候,称之为程序;正在运行的代码,就称之为进程;进程,除了包含代码以外,还有需要运行的环境等,所以和程序是有区别的;fork() 方法创建子进程:Python 的 os 模块,封装了常见的系统调用,其中就包括 fork(),可以在 python 程序中轻松的创建子进程;注意:fork() 方法只能用在类 linux 系统下,不能用在 windows 系统下;先看下面一段代码:# 导入 os 模块import os# 调用 for.

2020-06-23 17:57:57 1681

原创 Python学习笔记(二十三):在运行的时候动态添加属性和方法

动态语言和静态语言的区别:静态语言:先编译,后运行;像 C、C++、Java 等;编译之后什么样,运行的时候就是什么样;并且静态语言的类中有哪些属性,以及哪些方法,在定义类的时候就已经指定好了,在使用类的时候不能修改;动态语言:不需要编译,直接运行,并且可以在运行的过程修改代码,即可以为类以及对象动态添加属性或者方法;像 Python、javascript、php 等;动态给对象添加属性:# 定义一个类class Person(object): # 初始化方法:为对象初始化.

2020-06-23 13:42:39 417

原创 Python学习笔记(二十二):装饰器

装饰器:如果有一些函数,已经实现了某些功能,要求在不修改这些函数源代码,并且调用名称不变的前提下,对这些函数的功能进行一些扩展,就可以使用装饰器来实现;比如存在如下两个函数:# 定义两个函数def test1(): print("=== test1 ===")def test2(): print("=== test2 ===")# 调用函数test1()test2()要求不能修改原函数的代码,以及调用名称不变的情况下,对函数功能进行扩展: # 定义一个通

2020-06-23 11:55:40 189

原创 Python学习笔记(二十一):函数名重名

函数名重名:在其他语言中,如果存在函数名相同,参数也相同,返回类型也相同的情况,会出现错误;但是在 python 中不会出错,而是后定义的函数,会覆盖掉先定义的函数;如下代码:# 定义两个函数,名称相同def test(): print("=== test1 ===")def test(): print("=== test2 ===")# 调用函数test()输出结果:这是因为:第一次定义函数 test() 的时候,python 解析器会在内存中开辟一个

2020-06-23 11:47:53 2826

原创 Python学习笔记(二十):闭包

接上一篇文章:Python学习笔记(十九):函数引用闭包:在一个函数内部再定义一个函数,并且这个函数用到了外部函数的变量,那么就称这个内部函数为闭包;# 定义一个函数def test(num): print("=== 1 ===") # 在函数内部再定义一个函数,并且这个函数用到了外部函数的变量, # 那么就称这个内部函数为闭包 def test_in(num2): print("=== 2 ===") print(num .

2020-06-23 11:45:02 145

原创 Python学习笔记(十九):函数引用

函数引用:先看下面一段代码:# 定义一个函数def test(): print("=== test ===")test()print(test)输出结果:从输出结果可以看出:当函数名带有小括号的时候(test()),表示调用该函数;但是如果函数名不带有小括号(test),就表示一个指向函数块的对象,此时 test 表示函数的引用; <function test at 0x009994A8> 表示该对象是 function 类型的,对象名为 test,

2020-06-23 11:41:46 1511

原创 Python学习笔记(十八):property 的用法

1、为私有属性添加 getter、setter 方法:有些时候,我们需要设置类中的属性是私有的,让外部不能直接操作属性,而是通过属性的 getter 和 setter 方法,间接操作私有属性; # 定义一个类class Money(object): # 初始化方法 def __init__(self): # 私有属性 self.__money = 100 # 公有的 getter 方法 def getMoney(self):

2020-06-21 19:16:51 180

原创 Python学习笔记(十七):模块 和 包

模块:python 中的模块相当于 C/C++ 中的头文件,在 C/C++ 中需要通过 #include 导入头文件,才可以使用头文件中的函数,而在 python 中导入模块,要使用 import 关键字,导入模块之后,才可以使用模块中的方法;python 中的模块是以 .py 为后缀的文件,它既可以包含函数,也可以包含变量;模块文件也是源码文件;python 中的所有模块,可以在安装路径下的 lib 文件夹下查看,如下所示:ubuntu 环境下 python3 模块的位置在 /user

2020-06-20 22:59:04 1156

原创 Python学习笔记(十六):异常处理机制

python 中捕获异常的基本用法:# try 语句是正常执行的代码try: # 打开文件(读取中文数据时需要指定 encoding 参数) fd = open("a.txt", "r", encoding="UTF-8") try: # 循环一行一行读取文件 while True: line = fd.readline() # 如果读取结束,退出循环 if (len(

2020-06-13 22:12:45 472

原创 Python学习笔记(十五):python 中的面向对象

和其他编程相比,python 在尽可能不增加新的语法和语义的情况下加入了类机制; python 中的类提供了面向对象编程的所有基本功能:封装,继承,多态; 类的定义:python 中定义类的语法如下:class 类名: 属性列表 方法列表# 定义一个类:以 class 关键字开始,后跟类名,然后以冒号结尾class Cat: # 属性 name = "" age = 0 # 方法(self 后面再讲) def e..

2020-06-13 10:58:11 371

原创 Python学习笔记(十四):文件的读写

打开文件:python 内置的 open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程中,都需要使用这个对象;注意:使用 open() 方法操作文件之后,一定要调用 close() 方法关闭文件;open() 方法常用形式是接收两个参数,file(文件名)和 mode(打开模式):open(file, mode);完整的语法格式为:open(file, mode='r', buffering=None, encoding=None, errors=None, newl

2020-06-12 17:05:07 519

原创 Python学习笔记(十三):函数

函数是组织好的,可以重复使用的,用来实现单一,或相关联功能的代码块; 函数能提高应用的模块性,和代码的重复利用率; 定义函数的规则: 函数代码块必须以 def 关键词开头,后接函数名称和小括号(); 需要传入函数的参数必须写在小括号中,参数不用指定类型; 当函数需要多个参数时,调用时根据顺序依次给参数赋值; 定义函数时小括号后面必须以冒号结尾; 函数体代码块不用使用大括号{},而是使用缩进; 函数中返回数据可以用 return 关键...

2020-06-12 10:37:40 195

原创 Python学习笔记(十二):迭代器与生成器

Python迭代器与生成器迭代器: 迭代是 Python 最强大的功能之一,是访问集合元素的一种方式; 迭代器是一个可以记住遍历的位置的对象; 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束; 迭代器只能往前,不能后退; 迭代器有两个基本的方法:iter() 和 next();iter() 用于创建迭代器对象,next() 用于访问下一个元素; 字符串、列表、元组等对象都可以创建迭代器; # 创建一个列表list1 = .

2020-06-11 15:32:22 168

原创 Python学习笔记(十一):循环语句

Python 循环语句while 循环:python 中没有 do ... while ... 循环;# 循环语句:求 1-100 的累积和i = 1sum = 0# while 语句必须以 冒号(:) 结尾while i <= 100: sum += i # 累加 i += 1 # 变量自加# 输出累加的和print(sum)循环语句嵌套条件语句:# 循环语句:求 1-100 中所有偶数的累积和i = 1sum = 0w

2020-06-11 15:28:17 221

原创 Python学习笔记(十):条件语句:

Python 条件语句:if else 条件语句:# input 获取到的所有数据,都被当做字符串类型处理age = input("请输入您的年龄:")# 将字符串类型的数据转换成整形int_age = int(age)# if else 条件语句必须以 冒号(:) 结尾,表示后面是满足条件后要执行的语句块;# python 的语句块不使用大括号{}来控制,而是使用缩进来控制;同一个语句块中的语句,必须拥有相同的缩进数量;if int_age >= 18: print

2020-06-11 14:41:45 140

原创 Python学习笔记(九):数据类型之 Set

Set(集合) 集合(set)是一个无序,不重复元素序列; 可以使用大括号 { } 或者 set() 函数创建集合。注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典; # 定义一个集合:集合是一个无序,不重复元素序列peoples = {'jack', 'lily', 'jack', 'lucy', 'tom'}print(type(peoples)) # 集合的数据类型print(peoples)

2020-06-11 11:53:50 584

原创 Python学习笔记(八):数据类型之 Dictionary

Dictionary(字典) 字典(dictionary)是 Python 中另一个非常有用的内置数据类型。 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典是一种映射类型,字典用大括号 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。 键(key)必须使用不可变类型,如数字、字符串、元组。 在同一个字典中,键(key)必须是唯一的;如果一个 key 出现两次,后面的赋值

2020-06-11 11:30:08 484

原创 Python学习笔记(七):数据类型之 Tuple

Tuple(元组) 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。 元组写在小括号 () 里,元素之间用逗号隔开(列表用中括号 [])。 元组中的元素类型也可以不相同。 # 定义一个元组:# 元组的元素写在小括号里;# 元组的元素类型可以不相同;tuple1 = ("how", "are", True, 22, 3.14)print(tuple1) # 输出元组的值# 元组的元素不能修改(字符串的也不能修改,但是列表的元素可以修改)tuple1[

2020-06-11 10:44:24 358

原创 Python学习笔记(六):数据类型之 List

序列是 python 中最基本的数据类型。序列中的每个元素都分配一个索引,索引从 0 开始;python 有六个序列的内置类型,最常见的是列表和元祖;序列都可以进行的操作,包括索引、切片、加、乘、检查成员;此外,python 已经内置确定序列的长度,以及确定最大和最小的元素的方法;List(列表) List(列表) 是 Python 中使用最频繁的数据类型。 List 可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓..

2020-06-11 10:12:29 906 1

原创 Python学习笔记(五):数据类型之 String

字符串(String): python 中的字符串用单引号(' ')或双引号(" ")括起来,同时使用反斜杠(\)对特殊字符进行转义; python 中单引号和双引号用法完全相同; python 中使用三引号(''' 或 """)可以指定一个多行字符串; #!/usr/bin/python3str1 = "我是字符串"str2 = '我也是字符串'# ''' 或 """ 可以表示多行字符串# 注意:多行字符串中会保留 换行符 和 空格符str3 = '''我还是

2020-06-03 21:48:58 692

原创 Python学习笔记(四):数据类型之 Number

python3 中的数据类型:python3 中有六种标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元祖) Set(集合) Dictionary(字典) Python3 的六个标准数据类型中: 不可变数据 (3 个):Number(数字)、String(字符串)、Tuple(元组); 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。 N.

2020-05-28 21:21:41 482

原创 Python学习笔记(三):运算符

python 语言支持以下类型的运算符:1、算术运算符:以下假设变量 a 为 10,变量 b 为 21: 运算符 描述 实例 + 加:两个对象相加 a + b 输出结果 31 - 减:得到负数或是一个数减去另一个数 a - b 输出结果 -11 * 乘:两个数相乘或是返回一个被

2020-05-28 20:58:58 751

原创 Python学习笔记(二):输入和输出

输出方法:print1、普通输出:直接输出一个字符串# print 方法用于输出数据,该方法会自动换行print("hello world")print("hello 你好")2、格式化输出:输出变量的值# print 输出变量的值# %d 相当于一个整形的占位符;%age 表示取变量 age 的值,然后替换到 %d 表示的占位符位置age = 22print("我今年%d岁"%age)# 替换多个占位符的情况# %s 是一个字符串占位符,只能用字符串变量来替换name

2020-05-28 20:48:37 190

原创 Python学习笔记(一):python 中变量的定义

python 中定义的变量可以不需要指定类型,但并不代表变量没有类型; 每个变量在定义的时候必须赋值,变量赋值以后该变量才会被创建; 给变量赋值以后,变量就有了类型,系统会自动识别是什么类型; 我们可以使用 type(变量名) 来查看变量的类型;score = 88 # 定义一个变量,变量中存储一个整数 88print(score) # 输出变量的值print(type(score)) # 输出变量的类型输出结果:applePrice = 5..

2020-05-28 20:41:12 448

原创 Linux学习笔记(九):安装 vim 自动补全插件

关于 vim 的自动补全插件,推荐使用YouCompleteMe(简称 YCM),要装这个插件,需要先安装 vim 插件管理器 Vundle,在终端中执行如下命令:git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim注意:执行上面的命令之前需要先安装 git;安装好 git 后就可以安装 Vundle 了:Vundle 安装成功之后,会自动生成 ~/.vim/bundle/Vu.

2020-05-18 17:06:05 7068 4

原创 Linux学习笔记(八):通过 OpenSSH 远程访问 linux 系统

一、SSH 简介传统的网络服务程序,FTP、POP、telnet 本质上都是不安全的,因为它们在网络上通过明文传送口令和数据,这些数据非常容易被截获。SSH 是Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。通过 SSH,可以把传输数据进行加密,预防攻击,传输的数据进行了压缩,可以加快传输速度。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用.

2020-05-17 11:40:35 527 1

原创 Linux学习笔记(七):vim 编辑器简介

vi 编辑器是 Linux 系统中最常用的文本编辑器,vi 在 Linux 界有编辑器之神的美誉,几乎所有的 Linux 发行版中都包含 vi 编辑器。vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux 上也有很多图形界面的编辑器可用,但 vi 的功能是那些图形编辑器所无法比拟的。vim 是 vi 的升级版,它不仅兼容 vi 的所有指令,而且还有一些新的特性,例如 vim 可以撤消无限次、支持关键词自动完成、可以用不同的颜色来高亮你的代码。

2020-05-17 10:37:08 264

原创 Linux学习笔记(六):常用命令之系统管理命令

1、cal:查看当前日历2、date:显示或设置时间1)、显示系统当前时间2)、设置时间显示:设置时间格式(需要管理员权限):date [MMDDhhmm[[CC]YY][.ss]]+formatMM 表示月份,DD 表示天,hh 表示小时,mm 表示分钟,CC 表示年的前两位,YY 表示年的后两位,ss 表示秒;例如:121122552019.33,表示 12 月 11 号,22 点 55 分,2019 年,33 秒;3)、显示时间格式(date '+%y-%m-.

2020-05-16 22:07:43 372

原创 Linux学习笔记(五):常用命令之用户、权限管理命令

用户是 Linux 系统工作中重要的一环,用户管理包括用户与组账号的管理。在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。Linux 系统中的 root 账号通常用于系统的维护和管理,它对 Linux 操作系统的所有部分具有不受限制的访问权限。在 Linux 安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。在大多数版本的 Linux 中,都不推荐直接使用 root 账号登录系统。1、

2020-05-16 21:18:40 653

原创 Linux学习笔记(四):常用命令之文件管理命令

1、ls:查看文件信息ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于 DOS 下的 dir 命令。Linux 文件或者目录名称最长可以有256个字符,“.” 代表当前目录,“..” 代表上一级目录,以 “.” 开头的文件为隐藏文件,需要用 -a 参数才能显示。ls 常用参数:1)、不带参数:2)、-a:显示指定目录下所有子目录与文件,包括隐藏文件3)、-l:以列表方式显示文件的详细信息(不包括隐藏文件)4)、-h:配合 -

2020-05-16 18:59:04 776

原创 Linux学习笔记(三):查看 linux 命令的帮助文档

1、--help一般是 linux 命令自带的帮助信息,并不是所有命令都自带这个选项。如我们想查看命令 ls 的用法:ls --help2、man(有问题找男人)man 是 Linux 提供的一个手册,包含了绝大部分的命令、函数使用说明。该手册分成很多章节(section),使用 man 时可以指定不同的章节来浏览不同的内容。man 中各个 section 意义如下:1.Standard commands(标准命令)2.System calls(系统调用,如 open,w

2020-05-16 13:50:25 1018 1

原创 Linux学习笔记(二):Linux 的文件系统

一、Linux 系统中的路径Linux 路径由到达定位文件的目录组成。在 Linux 系统中组成路径的目录分割符为斜杠 “/”,而DOS 则用反斜杠 “\” 来分割各个目录。路径分为绝对路径和相对路径: 绝对路径 1) 绝对路径是从目录树的树根 “/” 目录开始往下直至到达文件所经过的所有节点目录。 2) 下级目录接在上级目录后面用 “/” 隔开。 3) 注意:绝对路径都是从 “/” 开始的,所以第一个字符一定是 “/”。 相对路径 1) 相对路径是指目标目录相对于当

2020-05-16 13:43:00 178

05_page2.zip

javaweb分页,使用 dbutils 实现。测试程序。记录笔记。

2019-08-13

XPathTutorial.chm

XPathTutorial.chm。XPath技术帮助文档,用于快速定位XML文档中的元素。

2019-05-07

dom4j-1.6.1

dom4j-1.6.1。用于操作XML文档。

2019-05-07

空空如也

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

TA关注的人

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