自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(207)
  • 资源 (1)
  • 收藏
  • 关注

原创 python的魔法方法2

我们先看下面的代码结果我们发现当我们使用o.age的时候,实际上是在尝试access这个对象的一个属性,但是当这个属性在这个对象不存在的时候,就报错了,AttributeError,告诉咱们,没有这个属性啊。那attr就是帮我们来做这个默认值的,也就是说,我们访问这个对象不存在的属性,我们不想让他报错了,想让他返回其他东西。结果首先呢,我们定义了attr方法,使其当访问这个对象不存在的属性的时候打印了getting:不存在属性的string,然后又手动抛出了一个AttributeError。

2024-03-29 17:20:39 677

原创 Python的魔法方法一

魔法方法在python的官方文档里叫special method,而magic method这个词是没有出现过的,所谓的魔术方法,就是让用户课制化一个类的方式,顾名思义,定义在类里的一些方法,特点,就是这些方法的前后,都有两个下划线。

2024-03-27 19:48:29 809

原创 Python函数的默认入参的坑

结果。

2024-03-27 16:19:59 234

原创 python的闭包

在理解闭包之前我们需要先理解什么是赋值和修改在Python中,重新赋值(reassignment)和修改变量(modifying a variable)通常指的是两种不同的操作,尤其是在处理不可变(immutable)和可变(mutable)数据类型时。重新赋值:重新赋值是指将一个新的值赋给一个已经存在的变量名。这个操作会改变变量名所引用的内存地址。在这个例子中,变量x最初指向一个整数对象5。当我们给x赋一个新的值,如字符串’hello’时,我们就进行了重新赋值。

2024-03-26 19:44:37 723

原创 Python的全局锁GIL

但是这个只解决了这一个问题啊,其实所有的python object都有这个问题,所以python的开发者,为了解决这个问题,决定使用全局锁GIL,这个锁,每个bytecode在运行的时候都是拿到了线程锁的,也就是没有bytecode被其他线程打断,那这种全局锁有什么好处。3、对于单线程的程序,或者没有办法多线程的程序,那全局锁的性能非常好,因为要锁是要时间的,全局锁保证了每个bytecode只要一次锁,但是如果你是那种每个object都有自己的锁的话,嗯,可想而知。3、执行两次a-=1,结果a=-1。

2024-03-20 20:17:35 757

原创 科目一考点速记

违法占用应急车道、驾驶证被暂扣期间驾驶机动车、没有遵守交通信号灯、逃逸无死亡轻伤以下(罚款200-2000)、驾驶机 动车运载超限不可解体的物品,未按指定时间路线行驶或者未悬挂警示标志、驾驶机动车运输危险化学品,未批准进入危险化 学运输品车辆限制通行的区域、驾驶机动车运载爆炸物、易燃易爆,后面的和上面的一样。1、满分教育日,现场2天,网络3天,自主2天,每增加12分,加7天,最多60天,24-36参加科目一科目三,满36,科目一科目二科目三。普通道路超速50%以上,6分,高速12分。

2024-02-19 20:57:24 666

原创 英语的历史

后来使用古法语和拉丁语的诺曼人征服了英国,英语进入了中古英语时期,引入了许多的拉丁语词和古法语词,当时进入英语的是古法语词,而古法语词绝大部分是拉丁语源的,所以把这一部分叫做拉丁语源词。拉丁语主要依靠词形的变化来表达种种语法之间的关系,他的变化形式要比英语要复杂的多,第一第二第三人称的单数复数的动词形式统统不一样,比如拉丁动词amo,意思类似于 i love,我爱。古英语时期,英语的主题是统治者使用的,原始日耳曼语的西支的北海日耳曼语下的英语,这部分构成了本族语词,Native words,

2024-01-26 13:13:51 662

原创 东北旅游攻略

1月的13、14、15。

2023-12-25 14:21:28 529

原创 解决mvn clean install遇到testng单元测试失败时打包也失败的问题

在Maven构建过程中,测试是其生命周期的一部分,每一个构建过程都会执行项目中的测试用例,如果遇到一个测试失败,默认会停止当前的构建。maven-surefire-plugin插件默认会自动执行测试源码包(即test目录下)中遵循以下命名规则的java测试类。如果遇到测试失败时,依然希望继续构建项目,那么需要设置surefire插件的testFailureIgnore属性为true。再次执行mvn clean install,就算失败了也没问题,照样打包成功。新增上面这个配置,即可。看这个之前请先看这个。

2023-08-04 11:00:01 2766

原创 java通过正则表达式提取信息

有的表达式不是不能用,只是在java程序中不好用,怎么办呢,推荐用chatgpt吧,让他来帮你写表达式。真正比较难的事儿吧,是怎么写这个正则表达式。下面这个即为data的原文。推荐这个网站,看起来更直观。第一步,先把文案发出去。

2023-07-13 16:41:12 1362

原创 Vue之router和vuex

在学习之前,我们可以先安装一个插件,是一个浏览器插件,这个插件的作用是可以让我们更好的观察到数据的变化和状态的变更他是一个github的链接,如果你没办法科学上网的话,也可以在上面这个链接下载后安装,安装就不讲了吧对于router和vuex的安装,可以在创建项目的时候安装,也可以后续再加插件,比较无脑的办法就是启动cmd,启动vue的ui管理vue ui然后搜索安装即可安装完成后会有这两个文件夹我们先来看一下这两个文件再来看store/index.js。

2023-07-07 17:37:30 779 1

原创 Vue脚手架开发入门

略过后续使用的项目就是新搭建的一个项目。

2023-07-04 18:42:10 223

原创 Vue核心语法

我们以前都是用的框架来搭建的,省去了很多内容,今天我们从原始的方式来使用vue,下面是下载地址。

2023-07-04 16:21:06 343 1

原创 Vue初始化项目加载逻辑

其实HomeView啥都没干,只是传了一个值给HelloWorld.vue,内容都是HelloWorld.vue的。App.vue是所有标签的父亲,其他的页面都是在它的基础上渲染出来的,所以router-view标签。是必要的,具体表象就是不管是选中了home还是about标签,这两个标签都在,不会消失的。那这个HelloWorld 标签对应的是这两段引入进来通过标签的方式使用的。的msg就是HomeView.vue的msg传递过来的。很简单,就只是一个标题而已,对应的页面也是这样的。

2023-06-06 14:02:00 2269 1

原创 python的生成器

可以参考迭代器的博客,因为生成器就是一种特殊的迭代器

2023-05-08 17:55:20 132 1

原创 python的迭代器---Iterable和iterator

迭代器---Iterable和iterator

2023-05-08 17:02:52 200

原创 记一次adb查找安卓App崩溃报错记录

这块我们就比较熟悉,和查看普通的异常一样,可以很明确的知道ANR 发生在MainActivity 28行处,原因是Thread.sleep(),此时我们再回到上面自己的代码层面,结果已经很明确。这个时候就会把logcat日志传输到本地,但是注意,等你操作完了,就可以关闭adb窗口了,要不然他会一直往windows本地的文件里写入日志,关闭后就不写入了。当然,实际开发中的ANR通常不会这么简单,有些也没那么容易分析,这个就需要大家通过此篇文章的借鉴,结合实际开发多分析,多优化来增长自己的能力。

2023-04-21 11:57:34 2484

原创 内存溢出排查

监控是通过grafana来看的。

2023-04-04 17:40:30 603

原创 协程为什么是轻量级线程+go和python的协程

什么是上下文切换?上下文切换的时机?CPU通过分配时间片来执行任务,当一个任务的时间片用完,就会切换到另一个任务。在切换之前会保存上一个任务的状态,当下次再切换到该任务,就会加载这个状态。——任务从保存到再加载的过程就是一次上下文切换。按导致上下文切换的因素划分,可将上下文切换分为两点:自发性上下文切换非自发性上下文切换自发性上下文切换指线程由于自身因素导致的切出。非自发性上下文切换指线程由于线程调度器的原因被迫切出。切出线程的时间片用完有一个比切出线程优先级更高的线程需要被运行。

2023-03-30 17:26:00 799 4

原创 Airtest的UI自动化番外篇、安卓手机密码键盘在AirTest上黑屏

在使用AirTest测试的过程中,涉及到密码的时候,会出现airtest监控的手机页面黑屏(手机没黑屏,只是电脑监控的页面黑屏)的情况,没有办法定位元素。那这种情况又细分为两种。

2023-03-10 14:23:14 1944 1

原创 soloPi使用记录及尝试关闭现有UIAutomator与Instrument进程解决办法

soloPi使用记录及尝试关闭现有UIAutomator与Instrument进程解决办法

2023-03-07 18:28:03 424

原创 sqlalchemy报错:No engine is bound to this Table‘s MetaData. Pass an engine to the Table via autoload_w

首先,借着这个报错,我们来研究一下如何在项目中相对优雅的使用sqlalchemy1、数据异步是指跟数据库操作等待数据返回所需的时间消耗。这部分时间也应该还给cpu。2、对数据库表的操作,请求和返回也要单独封装出异步,这段中间的时间可以返回给系统。

2023-02-16 18:41:08 504

原创 IDEA集成docker-JDK11版本

登录 docker 所在的远程服务器,使用命令 vim /usr/lib/systemd/system/docker.service 修改配置文件,需注意,修改时确认自己的账户拥有相应权限主要操作是找到 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 这一行,注释掉,重新添加一行,在后面新增-H tcp://0.0.0.0:2375表示打开2375端口,支持远程连接 docker。

2022-12-20 13:44:53 1830

原创 websocket的用处及vue和SpringBoot和nginx的引入-入门

想一个场景,扫码登录,服务器并不知道用户有没有扫码,怎么办,一种办法是HTTP定时轮询,1-2秒就请求一次服务端,看看用户有没有扫码,典型的例子就是微信还有一种就是长轮询,比如一般的http请求是2-3秒就应该给你回复,但是登录是例外,我可以将这个时长扩充到30秒,只要在30秒内你扫码并登录了,服务端就给返回了,如果30秒没有登录,那就再发起一次。比较特殊的就是百度网盘上面这两种本质上都是客户端主动向服务器申请数据,在登录这种简单场景还可以用,但是复杂场景的话,就不可以了。

2022-12-20 10:25:27 638

原创 https加密解密过程二、名词解析及文件生成

Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中keystore文件的内容其实就是把私钥、公钥以及公钥对应的地址等信息输出为json格式的数据通过秘钥,可以证明这个APP是由某个个人或者企业开发的。在生成KeyStore的时候,开发者会录入自己姓名、单位、组织、所在城市、省份、国家代码等信息。首先新建一个文件,一定要提前新建,要不然会报错。

2022-11-30 18:37:50 791

原创 https加密解密过程一、从https说起

最近在看一个开源的项目,叫MetersPhere,在看的过程中,发现并不了解其中加密解密的过程,打算将整个流程梳理一下。

2022-11-30 14:50:00 2101

原创 SpringBoot开启https

我也不知道为什么,我的方式是删除文件再重建,且换个名字,同时把指令里的额名字也换了,然后打开新的cmd窗口,多试几次,就成功了。我是在D盘新建了zhengshu文件夹,文件夹下新建MetersPhereTestThree.keystore文件。首先新建一个文件,一定要提前新建,要不然会报错。这个命令是jdk自带的,在cmd窗口执行即可。再次返回文件目录检查文件,文件内已经有内容了。

2022-11-28 18:11:49 865

原创 kafka一、概念详解

上面那张图讲解了kafka中broker、生产者、消费者、topic、消息这几个概念,其中broker在物理上你可以理解为一台服务器上搭了一个kafka服务,这台就是broker0,另一台服务器搭建了一个kafka服务,这台就是broker1,前提是在一个集群上。所以一条消息应该有下面这几个元素,这样才能找到相应的去处。

2022-11-09 16:43:51 570

原创 linux安装kafka

下面的是日志地址,那就在这个地址下看看有没有对应的目录,没有的话就新建即可。启动日志最后是这样的,开启的是9092端口。待办:kafka配置文件详解。

2022-11-04 18:32:17 5337 1

原创 linux安装redis

根据自己的要求,选择对应的版本,右键复制对应链接,我这里选择5.0.7,由于老版本的redis是没有用户概念的,所有的客户端都使用一个密码登录,这样很不安全,所以在新版本的redis里加入了用户的概念。下载到/usr/local,解压,进入到解压出来的文件夹,make编译,make install将redis安装到对应的文件夹。先升级,第一个指令是安装c++,第二个是升级gcc,不执行这两步骤,一般是没办法编译成功redis的。将这一行注释掉,这个是开放外部访问的,如果不开放的话,只有本机可以监听。

2022-11-04 17:50:19 500

原创 linux安装java

LINUX安装java环境

2022-11-03 17:56:40 759

原创 linux安装Node.js

linux安装nodejs

2022-11-03 17:47:24 667

原创 linux安装zookeeper

linux安装zookeeper

2022-11-03 17:08:19 362

原创 Metersphere本地环境部署---非微服务版本+图片定制化

Merersphere本地环境搭建

2022-11-03 13:39:42 2897 2

原创 linux安装mysql

linux安装mysql

2022-11-03 13:26:36 225

原创 python深拷贝和浅拷贝和赋值的区别

我的理解就是赋值:这个好说,一个人叫张三,A叫他张三,B叫他张四,但都是同一个人,张四不过是他的一个外号,如果张三被打了,也就是张四被打了深拷贝:这个也比较好理解,克隆了一个完全一模一样的人,张三,有一个儿子张二,我们进行深拷贝,克隆出了一个张三二号,一个张二二号,张二二号是张三二号的儿子,张三被打断了腿,张三二号是没变化的,张二被打断了腿,张二二号也是没变化的,完全自主的父子浅拷贝:介于复制和深拷贝之间的状态,比如说张三有一个儿子张二,我把张三克隆出来了一个张三二号,但是我们还有一个共同的儿子张二,如果张

2022-06-20 17:12:53 213

原创 jps(Java Virtual Machine Process Status Tool)

jps

2022-06-10 15:42:04 208

原创 jmap查看内存-Memory Map for Java

jmp

2022-06-10 15:41:01 727

原创 jstat性能分析

jstat

2022-06-10 15:39:58 174

原创 cpu暴涨如何分析

cpu暴涨如何分析

2022-06-10 15:36:58 387

ganache安装包资源,mac版本和windows版本

ganache安装包资源,mac版本和windows版本

2023-12-22

支持多个安卓手机同时自动化的appium框架

支持多个安卓手机同时自动化的appium框架

2021-08-10

空空如也

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

TA关注的人

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