自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python装饰器

闭包闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。以 Python 为例更通俗的解释一下:比如我们调用一个带有返回值的函数 x,此时函数 x 为我们返回一个函数 y,这个函数 y

2022-04-02 16:17:26 384

原创 命名空间&作用域

命名空间概念命名空间(namespace)是名称到对象的映射,当前大部分命名空间都是通过 Python 字典来实现的,它的主要作用是避免项目中的名字冲突,每一个命名空间都是相对独立的,在不同的命名空间中可以同名,在相同的命名空间中不可以同名。种类命名空间主要有以下三种:内置:主要用来存放内置函数、异常等,比如:abs 函数、BaseException 异常。全局:指在模块中定义的名称,比如:类、函数等。局部:指在函数中定义的名称,比如:函数的参数、在函数中定义的变量等。生命周期通常在不

2022-04-02 16:17:03 340

原创 迭代器&生成器

迭代器迭代我们知道 Python 中有一些对象可以通过 for 来循环遍历,比如:列表、元组、字符等,以字符串为例,如下所示:for i in 'Hello': print(i)执行结果:Hello这个遍历过程就是迭代。可迭代对象可迭代对象需具有 __iter__() 方法,它们均可使用 for 循环遍历,我们可以使用 isinstance() 方法来判断一个对象是否为可迭代对象,看下示例:from collections import Iterablepr

2022-03-25 15:35:45 114

原创 正则表达式

1. 简介正则表达式是一个强大的字符串处理工具,几乎所有的字符串操作都可以通过正则表达式来完成,其本质是一个特殊的字符序列,可以方便的检查一个字符串是否与我们定义的字符序列的某种模式相匹配。正则表达式并不是 Python 所特有的,几乎所有编程语言都支持正则表达式,Python 提供了内置模块 re 和第三方模块 regex 来支持正则表达式,regex 模块提供了与 re 模块兼容的 API 接口,同时还提供了额外的功能和更全面的 Unicode 支持,本文只介绍 re 模块。2. 使用2.1 语

2022-03-25 15:34:19 250

原创 sys模块

1. 简介sys 模块主要负责与 Python 解释器进行交互,该模块提供了一系列用于控制 Python 运行环境的函数和变量。之前我们说过 os 模块,该模块与 sys 模块从名称上看着好像有点类似,实际上它们之间是没有什么关系的,os 模块主要负责与操作系统进行交互。2. 使用我们先整体看一下 sys 模块都包含哪些内容,如下所示:>>> import sys>>> dir(sys)['__displayhook__', '__doc__', '__ex

2022-03-25 15:33:55 1306

原创 数学相关模块

简介我们来看一下 Python 中数学相关模块,如下所示:模块描述math提供了对 C 标准定义的数学函数的访问(不适用于复数)cmath提供了一些关于复数的数学函数decimal为快速正确舍入的十进制浮点运算提供支持fractions为分数运算提供支持random实现各种分布的伪随机数生成器statistics提供了用于计算数字数据的数理统计量的函数本文具体介绍一下相对比较常用的模块:math、decimal 和 random。1.

2022-03-25 15:33:39 102

原创 Python枚举

简介起初 Python 中并未内置枚举(enum)类型,枚举是在 Python3.4 添加的新功能,此时我们可能会有一个疑问:Python3.4 之前的版本还能不答案是可以使用,但是不能直接使用,使用之前需要先用 pip install enum 安装。什么是枚举?枚举可看作是一系列符号名称的集合,集合中每一个元素要保证唯一性和不可变,因此我们可以对枚举中元素进行恒等比较,通俗来讲枚举就是一系列常量的集合,枚举是可迭代的。枚举有什么作用?我们先来思考一个问题:不使用枚举我们如何定义常量呢?常用的

2022-03-25 15:33:00 220

原创 错误&异常

简介​ 程序中的错误我们通常称为 bug ,工作中我们不仅需要改自己程序中的 bug ,还需要改别人程序中的 bug ,新项目有 bug 要改,老项目也有 bug 要改,可以说 bug 几乎贯穿一个程序员的职业生涯… 我们通常将 bug 分为 Error(错误) 和 Exception(异常),我们下面来具体学习下 Python 中的 错误 和 异常。错误错误 通常是指程序中的 语法错误 或 逻辑错误异常即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误,运行期检测到的错误

2022-03-25 15:32:35 100

原创 Python os模块

简介os 中文就是操作系统的意思,顾名思义,Python 的 os 模块提供了各种操作系统的接口,这些接口主要是用来操作文件和目录。Python 中所有依赖于操作系统的内置模块统一设计方式为:对于不同操作系统可用的相同功能使用相同的接口,这样大大增加了代码的可移植性;当然,通过 os 模块操作某一系统的扩展功能也是可以的,但这样做会损害代码的可移植性。常用函数os.getcwd()查看当前路径。import osprint(os.getcwd())os.listdir(path)返回指

2022-03-25 15:32:16 61

原创 文件基本操作

简介在编程工作中文件操作还是比较常见的,基本文件操作包括:创建、读、写、关闭等,Python 中内置了一些文件操作函数,我们使用 Python 操作文件还是很方便的。基本操作创建Python 使用 open() 函数创建或打开文件,语法格式如下所示:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None,closefd=True, opener=None)参数说明如下所示:file:表示将要打

2022-03-25 15:31:41 197

原创 Python面向对象

面向对象面向对象(OOP)是一种对现实世界理解和抽象的方法,对象的含义是指在现实生活中能够看得见摸得着的具体事物,一句比较经典的描述是一切皆对象,Python 是一门面向对象的语言,面向对象编程简单来说就是一种封装代码的方式。面向对象相关概念类:描述具有相同属性和方法的集合,简单来说就是一个模板,通它来创建对象。对象:类的实例。方法:类中定义的函数。类变量:定义在类中且在函数之外的变量,在所有实例化对象中公用。局部变量:方法中定义的变量,只作用于当前实例。面向对象三大特性封装:隐藏对

2022-03-25 15:31:09 70

原创 Python模块&包

简介模块Python 中一个以 .py 结尾的文件就是一个模块,模块中定义了变量、函数等来实现一些类似的功能。Python 有很多自带的模块(标准库)和第三方模块,一个模块可以被其他模块引用,实现了代码的复用性。包包是存放模块的文件夹,包中包含 __init__.py 和其他模块,__init__.py 可为空也可定义属性和方法,在 Python3.3 之前的版本,一个文件夹中只有包含 __init__.py,其他程序才能从该文件夹引入相应的模块、函数等,之后的版本没有 __init__.py 也能

2022-03-25 15:30:08 55

原创 python函数

简介简单来说函数就是一段实现特定功能的代码,使用函数可以提高代码的重复利用率。Python 中有很多内置函数,比如之前常用的 print 函数,当内置函数不足以满足我们的需求时,我们还可以自定义函数。自定义函数Python 使用 def 关键字来声明函数,格式如下所示:def 函数名(参数): 函数体 return 返回值如果要定义一个无任何功能的空函数,函数体只写 pass 即可。格式如下所示:def 函数名(): pass当我们不确定参数的个数时,可以使用不定长参数,在参数名前加

2022-03-23 14:34:45 72

原创 与时间相关的模块

time模块time 模块提供了很多与时间相关的类和函数,下面我们介绍一些常用的。struct_time类time 模块的 struct_time 类代表一个时间对象,可以通过索引和属性名访问值。对应关系如下所示:索引属性值0tm_year(年)如:19451tm_mon(月)1 ~ 122tm_mday(日)1 ~ 313tm_hour(时)0 ~ 234tm_min(分)0 ~ 595tm_sec(秒)0 ~ 61

2022-03-23 14:34:15 107

原创 字典&集合

字典dict的内容都是以键-值(key-value)的方式存在的。dict 拥有良好的查询速度,dict 中的值可以是任意 Python 对象,多次对一个 key 赋 value,后面的 value 会把前面的 value 覆盖。创建字典的内容在花括号 {} 内,键-值(key-value)之间用冒号 : 分隔,键值对之间用逗号 , 分隔,比如创建字典 d,可以直接创建和用 dict() 创建如下所示:d = {'name':'小明', 'age':'18'}# 使用 dict 函数# 方式一

2022-03-23 14:33:58 97

原创 列表&元组

列表Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同;列表是序列结构,可以进行序列结构的基本操作:索引、切片、加、乘、检查成员。基本使用创建列表中所有元素都放在一个中括号 [] 中,相邻元素之间用逗号 , 分隔,如下所示:l = [1024, 0.5, 'Python']访问通过索引访问列表中的值,还可以使用 : 截取范围内的元素,如下所示:l = [1024, 0.5, 'Python']print('l[0

2022-03-23 14:33:33 66

原创 python序列

简介Python 中的序列是一块可存放多个值的连续内存空间,所有值按一定顺序排列,每个值所在位置都有一个编号,称其为索引,我们可以通过索引访问其对应值。字符串就是序列结构,除此之外常见的序列结构还包括列表、元组等。基本使用索引序列索引支持非负数和负数,索引为非负数,从 0 开始,索引为负数由右向左计数,从 -1 开始str = 'Python'print('str[0] str[-6] =', str[0], str[-6])print('str[5] str[-1] =', str[

2022-03-23 14:33:04 53

原创 字符串基本操作

基本操作访问单个字符串s = 'Python'# 访问第一个字符 Pprint(s[0])访问范围内字符# 访问范围内字符s = 'string'# 访问trprint(s[1:3])# 访问strprint(s[:3])# 访问ingprint(s[3:])单个字符编码Python 使用了 ord() 函数返回单个字符的编码,chr() 函数把编码转成相应字符# 单个字符编码s = 'A'print(ord(s))print(chr(65))转义符之前我

2022-03-23 14:32:26 150

原创 python的数据类型

数值类型我有三种数值类型,分别是:整型(int)、浮点型(float)、复数(complex),如果你使用的还是我的低版本 Python2,那么还包含长整型(long)整形包括正整数、负整数。如:1024、-1024。整型有四种进制表示,分别为:二进制、八进制、十进制、十六进制种类描述引导符二进制由 0 和 1 组成0b 或 0B八进制由 0 到 7 组成0o 或 0O十进制默认情况无十六进制由 0 到 9、a 到 f、A 到 F 组成,不区分大

2022-03-23 14:31:37 96

原创 python基本语句

条件语句在进行逻辑判断时,我们需要用到条件语句,Python 提供了 if、elif、else 来进行逻辑判断if 判断条件1: 执行语句1...elif 判断条件2: 执行语句2...elif 判断条件3: 执行语句3...else: 执行语句4...循环语句当需要多次重复执行时,我们要用到循环语句,Python 提供了 for 循环和 while 循环。for循环for 循环可以遍历任何序列,比如:字符串# for循环str = 'python'

2022-03-23 14:31:05 260

原创 python基础2

标识符标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 导入;双下划线开头的标识符,如:__xx,表示私有成员; 双下划线开头和结尾的标识符,如:__xx__,表示 Python 中内置标识,如:init() 表示类的构造函数。关键字and

2022-03-23 14:30:28 61

原创 Python基础

变量变量(标识符)定义:存储信息+可操作对象标识符的命名:([a-zA-Z] [a-zA-Z0-9_])+大小写敏感变量使用:赋值即可用,不需要声明或定义数据类型数据类型—python把在程序中用到的任何定西都称为“对象”空对象:NoneBoolean:True, False整形:整数,长整数,浮点数(3.23和52.3E-4)和 复数((-5+4j)和(2.3-4.6j))字符串:在python中没有专门的char数据类型单引号和双引号字符串是完全相同的用自

2022-03-23 14:29:33 95

原创 JVM垃圾回收

JVM的垃圾回收垃圾回收概述1.Java和C++语言的区别,就在于垃圾收集技术和内存动态分配上,C++语言没有垃圾收集技术,需要程序员手动的收集。2.关于垃圾收集有三个经典问题:​ 哪些内存需要回收?​ 什么时候回收?​ 如何回收?3.垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展,Java的垃圾收集机制仍然在不断的演进中,不同大小的设备、不同特征的应用场景,对垃圾收集提出了新的挑战,这当然也是面试的热点。什么是垃圾

2021-10-24 14:35:25 109

原创 1024加油

1024也要加油, 早日offer

2021-10-24 13:09:07 49

原创 JVM概述

JVM虚拟机虚拟机概述1.类加载类加载子系统的作用类加载器子系统负责从文件系统或者网络中加载 class 文件,class文件在文件开头有特定的文件标识 (字节码文件都以 ca fe ba be 标识开头 )。​ classLoader只负责class文件的加载,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是class文件中常量池部分的内存映射).类加载ClassLoader的角色1.cla

2021-09-09 23:38:55 141

原创 UML建模语言

UML建模语言​ 建模语言(UnifiedModelingLanguage,UML)是用来设计软件蓝图的可视化建模语言,1997年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准.​ 建模语言能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本。类(1)类名(Name)是一个字符串,例如,Student。(2)属性(Attribute)是指类的特性,即类的成员变量。UML按以下格

2021-08-31 20:47:47 349 3

原创 Redis

RedisRedis是什么?​ Redis是开源的,C语言编写的,支持网络交互的,非关系型数据库(也可以用作缓存和消息中间件)。缓存:将数据存储到内存中(程序使用时,可以缓存数据,具有临时性,速度快)​ SqlSession 一级缓存​ SqlSessionFactory 二级缓存 可设置有效时间优点:减轻数据库压力Redis支持多种类型的数据结构,如字符串(Strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,b

2021-08-31 20:39:03 202

原创 nginx

nginx概述​ Nginx是由俄罗斯的程序设计师开发的高性能的web和反向代理服务器,也是一个IMAP/POP3/SMTP代理的服务器。(IMAP交互式邮件访问协议,POP3邮局协议的第三个版本,SMTP简单邮件传输协议 )特点: 占有内存小,并发能力强​ Nginx不仅能做反向代理,实现负载均衡;还能作为正向代理来进行上网等功能。什么是代理服务器​ 所谓代理服务器就是位于发起请求的客户端与原始服务器端之间的一台跳板服务器,正向代理可以隐藏客户端,反向代理可以隐藏原始服务器。正向代理

2021-08-31 20:31:37 214

原创 MySql高级

MySql高级MySql基础数据库的概述:是一个数据管理系统存储:按照特定的规则存储管理:sql增删改查操作数据库的类型:​ 关系型数据库​ 非关系型数据库数据库的环境搭建:​ 安装服务器端(sqlyog)​ 可视化客户端工具sql:​ DDL:创建数据表结构​ DML:对数据的增,删,改​ DQL:对数据的查询(查询结果的处理:排序,多表关联,条件查询,模糊查询,数量限制,分组,函数)MySql高级MySql引擎引擎就是数据库在处理数据时的机制不同

2021-08-31 20:23:34 310

原创 ThreadLocal

ThreadLocal为每一个线程赋值一份变量副本(创建一个ThreadLocal对象,用来为每个线程保存一份变量,实现线程封闭)底层使用一个ThreadLocalMap对象存储使用ThreadLocal存在内存泄露问题:​ 使用ThreadLocal对象作为键,是弱引用,可以被回收掉,键为null,但是value值为强引用,不会被回收掉ThreadLocal正确的使用方法:​ 建议:每次使用完ThreadLocal都调用它的remove()方法清除数据.线程池​ 任务多且简单时,为了减少频

2021-08-31 18:08:53 90

原创 并发 编程

并发编程并行与并发**并发(concurrent):**是同一时间应对多件事情的能力(串行)。**并行(parallel):**是同一时间动手做多件事情的能力。程序,进程,线程**程序 (program)????*是为了完成特定的任务,用某种语言编写的一组指令的集合. 即指一段静态事物代码.**进程 (process)????*就是正在执行的程序,从Windows角度讲,进程是含有内存和资源并安置线程的地方(操作系统分配资源的单元,运行中的程序)**线程 (thread)????*进程可进一步

2021-08-31 18:01:25 222 2

原创 IDEA的web项目的创建极其服务器的配置

WEB流程1.创建一个WEB项目先创建一个普通的java项目,然后在ADD Frameworks Support选项中选择Web Application(versions:4.0)2.配置服务器(TomCat)3.在WEB-INF下建立lib包导入所需jar包servlet-api.jarjsp-api.jarmysql-connector-java-8.0.16.jarjstl-1.2.jar4.建立对应的包结构filter 过滤器 (解决中文字符集乱码等)​ 1.

2021-05-25 15:10:00 512

原创 servlet的搭建及配置

ServletWeb开发概述学习Web开发,需要先安装一台Web服务器,将开发好的Web项目部署在Web服务器中供外界访问Web服务器狭义上讲:Web服务器是一款软件(程序),是一个连接用户与程序之间的中间件广义上讲:可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览.Web服务器有很多,流行的Web服务器有TomCat,WebSphere,WebLogic,JbossServlet搭建继承HttpServlet重写父类方法构造方法(可以不写,在父类中继承)g

2021-05-22 11:17:57 670

原创 java的图形界面GUI

GUIGUI的概念GUI ( Graphical User Interface ) 即图形用户界面,它能够使应用程序看上去更加友好Swing概述Swing是纯Java组件,使得应用程序在不同的平台上运行时具有相同外观和相同的行为Swing中的大部分组件类位于javax.swing包中Swing中的组件非常丰富,支持很多功能强大的组件容器组件Java的图形用户界面的基本组成部分是组件,组件是一个以图形化的方式显示在屏幕上并能与用户进行交互的对象组件不能独立地显示出来,必须将组件放在一定

2021-05-16 20:54:11 247

原创 异常处理,try/catch/finally/throws/throw,自定义异常

Java异常异常 : 在java语言中,将程序执行中发生的不正常情况称为"异常"Java程序在执行过程中所发生的异常(运行时一切不正常情况)事件可分为两类:Error : java虚拟机无法解决的严重问题. 如 : JVM系统内部错误,资源耗尽等严重情况.一般不编写针对性的代码处理.public static void main(String[] args) { Demo1 d = new Demo1(); //java.lang.StackOverflowError

2020-12-16 19:52:12 188 2

原创 冒泡排序,选择排序,插入排序

数组排序冒泡排序(Bubble Sort)工作原理 :比较相邻的两个元素,如果前一个比后一个大,就交换它们两个,从头到尾对每一对元素都做比较,这样最大的元素就会被移到最后面,元素从前到后依次按从小到大排列.算法描述 :比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。代码展示public class

2020-12-09 14:39:03 78

原创 数组,二维数组

数组**数组:**相同数据类型元素的集合数组本身是引用数据类型,即对象,但数组可以存储基本数据类型,也可以存储引用数据类型数组的声明数组的声明有两种方式 :数据类型 [ ] 数组名字 例如 : int [ ] a;数据类型 数组的名字 [ ] 例如 : int a [ ];PS : 在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,避免混淆a的数据类型数组创建数组创建的三种方式 :声明数组的同时,根据指定的长度分配内存,但数组中元素

2020-12-09 14:37:51 112

原创 接口&多态

接口生活中的接口 :USB风扇,USB接口,U盘接口可以实现的功能 :编写USB接口---------->根据需求设计方法实现USB接口---------->实现所有方法使用USB接口---------->用多态的认识接口所有属性默认为 : public static final所有方法默认为 : public abstract接口的特性 :接口不可以被实例化实现类必须重写接口的所有方法实现类可以实现多个接口接口中的变量都是静态常量面向接口编程关心实现类

2020-12-09 14:34:23 129

原创 封装,继承,this,super,重写,关联,依赖,抽象abstract

封装概念 : 将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问封装的好处 :只能通过规定的方法访问隐藏类的实现细节方便加入控制语句方便修改实现public class Demo{ //属性用private权限 private String name; //方法用public权限 public String getName (){ return name; } public void

2020-12-01 11:32:17 115

原创 面向对象2(对象与引用& static & 代码块 & )

对象与引用java语言中除基本类型之外的变量类型都称之为引用类型Java中的对象是通过引用对其操作的.用汽车类来说明 :自定义一个Car类(汽车类) class Car{ String color; String name; String model;}Car car=new Car();//通常把这条语句的动作称之为创建一个对象/*1)右边的“new Car()”,是以Car类为模板,调用Car类的构造函数,在堆空间里创建一个Car类对象。2)左边的“Car ca

2020-11-30 17:59:26 101

空空如也

空空如也

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

TA关注的人

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