自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python编程(廖雪峰)笔记

Python学习笔记

2022-07-22 10:30:11 505

原创 淘宝镜像(浏览器驱动等等等)

https://npm.taobao.org/mirrors/chromedriver

2021-10-27 17:00:25 625

原创 短视频app测试点

1.视频的播放暂停是否正常 2.视频的上下滑动是否正常 3.视频是否画音同步 4.视频播放过程中是否有锁屏 5.已经加载过的视频,再次滑到,能否立即播放,或者是否需要一点时间才可以 6.视频之间的切换是否有黑屏 7.视频页面刷新时,视频是否正常刷新 8.视频加载是否是先一张封面然后再加载视频还是别的效果? 9.视频加载是否完全 ...

2021-07-19 10:49:16 3752

原创 java基础总结

1、JDK和JRE有什么区别? JDK:Java Development Kit 的简称,java开发工具包,提供了Java的开发和运行环境 JRE:java Runtime Eviroment 的简称,java运行环境,为java的运行提供了所需环境 具体来说JDK其实包含了JRE,同时还包含了编译java源码的编译器Javac,还包含了很多java程序调试和分析的工具,简单来说:如果你需要运行java程序,只需要安装JRE就可以了,如果你需要编写java程序,需要安装JDK。 2、== 和 equa

2021-05-07 13:31:41 249 1

原创 软件测试的流程

1、获取测试需求 2、编写测试计划 3、制定测试方案 4、开发与设计测试用例 5、执行测试 6、提交缺陷报告 7、测试分析与评审 8、提交测试总结 9、准备下一个版本的测试

2021-01-26 20:58:58 142

原创 移动端测试要点

测试的分类 传统手机测试:是指测试手机本身,如抗压、抗摔、抗疲劳、抗低温高温等 手机app测试:手机app是基于手机操作系统之上开发出来的软件,做这样的测试,就叫做手机应用软件测试 移动端测试的复杂性 网络多样化:2G网络、3G网络、4G网络、WiFi 支持系统多样化:手机 操作系统的:Android、IOS、Windows Phone等 硬件配置多样性:内存大小种类多,核心数量多 分辨率类型多样化:7201280、10801920等 移动端测试就是在许多种网络,不同系统,不同分辨率,不同硬件配置下

2021-01-23 21:38:17 1321

原创 加载代码的先后顺序

JVM的语法规定 静态>构造块>构造方法 静态的 最先加载,只加载一次 测试 package com.haiyang.jvm; class CodeHY{ public CodeHY(){ System.out.println("CodeHY的构造方法111"); } { System.out.println("CodeHY的构造块222"); } static { System.out.pri

2020-07-30 15:34:13 365

原创 JMM(java内存模型)

1、Spring的IOC和AOP机制 我们在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring 的灵魂。 主要用到的设计模式有工厂模式和代理模式。 IOC就是经典的工厂模式,通过sessionfactory去注入实例。 AOP就是经典的代理模式的体现。 代理模式是常用的java设计模式,它的特性就是代理类和委托类 ...

2020-07-30 15:25:41 219

原创 JVM详解

JVM位置 JVM是运行在操作系统上的,它与硬件没有直接的交互 JVM体系结构概述 类装载器ClassLoader 负责加载class文件,class文件在文件开头有特定的文件标识,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。 ...

2020-07-29 17:43:33 279

原创 Lamda表达式详解

Lamda表达式 1、λ 希腊字母表中排序第十一位的字母,英语名称为 Lamda 2、避免匿名内部类定义过多 3、可以让你的代码看起来很简洁 4、去掉了一堆没有意义的代码,留下核心的逻辑 3、其实质属于函数式编程的概念 (params)-> expression[表达式] (params) -> statement[语句] (params) -> {statements} a -> System.out.println("i like lamda-->"+a) new Th

2020-07-23 12:00:13 48042 4

原创 多线程之静态代理模式

静态代理 1、真实对象和代理对象都要实现同一个接口 2、代理对象要代理真实角色 3、静态代理其实就是多线程的底层实现方式 测试,结婚代理 package com.haiyang.staticproxy; public class StaticProxy { public static void main(String[] args) { //实例化一个你(真实角色) You you = new You(); //把你给到婚庆公司(代理角色)

2020-07-23 10:23:37 358

原创 多线程详解

我们先了解一下什么是程序、进程、线程 一个程序在一个进程里运行,一个进程可以有多个线程,如视频中同时听到声音,看到图像,看弹幕,等等。 Process与Thread 说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 而进程则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。 通常在一个进程中可以包含若干个线程,当然一个线程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。 注意:大部分多线程是模拟出来的,真正的多线程

2020-07-23 10:01:00 174

原创 Redis缓存穿透和雪崩

Redis缓存穿透和雪崩 这些都是服务器的高可用问题 Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲 这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。 另外一个典型性问题就是,缓存穿透、缓存雪崩和缓存击穿。目前业界也都有比较流行的解决方案。 缓存穿透 概念 缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库里没有,也就是缓存没有命中,于是向持久层数据库查

2020-07-21 13:51:14 148

原创 Redis之哨兵模式

哨兵模式 (自动选举老大的模式) 概述 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵)架构来解决这个问题。 谋权篡位的自动版,能够后台监控主机是否故障,如果故障了根据投票自动将从库转换为主库。 哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,他会独立运行。其原理是哨

2020-07-21 12:35:41 433

原创 Redis主从复制

环境配置 只配置从库,不配置主库 127.0.0.1:6379> info replication # 查看当前的信息 #Replication role:master #角色 master connected_slaves:0 # 没有从机 master_replid:0001a2d30c03aa104281f5d9aaeac6f908785dc7 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0

2020-07-21 10:35:14 167

原创 Redis的发布订阅简介

Redis的发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 订阅/发布消息图: 命令 这些命令被广泛用于构建即时通信应用,比如网络聊天室(chatroom)he 实时广播,实时提醒等。 测试 订阅端 127.0.0.1:6379> SUBSCRIBE haiyang #订阅一个频道 haiyang Reading messages... (press Ctrl-C to q

2020-07-20 16:28:51 170

原创 Redis持久化

Redis持久化 Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能! RDB(Redis DataBase) 什么是RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存里。 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不做任何操作的。这就确保了极高

2020-07-20 15:52:04 166

原创 自定义RedisTemplate和RedisUtil

自定义RedisTemplate RedisConfig.java package com.haiyang.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframewor

2020-07-20 11:31:16 352

原创 spring-boot整合Redis 超详细

spring-boot整合Redis 1、新建一个springboot的项目,我们选择官方脚手架工具进行创建,这里不用默认的官网,选择https://start.aliyun.com/ 创建非常快。JDK版本选择好后 Next 2、这里写好项目名和包名后点击 Next 3、这里将常用的依赖打勾 4、这里也是 5、这里也是 勾完后点击next 6、如果下图两个地方不一样,记得改成一样的,点击finish 7、点击右下角的 Import Changes,项目结构如下 8、我们到pom.xml文件找到

2020-07-18 17:28:50 10257 1

原创 Jedis事务详解

Jedis事务 1、正常执行的事务 编码测试 package com.haiyang; import com.alibaba.fastjson.JSONObject; import redis.clients.jedis.Jedis; import redis.clients.jedis.Transaction; public class TestTX { public static void main(String[] args) { Jedis jedis = new J

2020-07-18 15:40:54 855

原创 Jedis详细讲解

Jedis 什么是Jedis: 是Redis官方推荐的java连接开发工具!使用java操作Redis的中间件 测试 1、导入对应的依赖 <!--导入Jedis的包--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <ve

2020-07-18 15:13:30 1007

原创 Redis事务详解

事务 Redis 事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在执行过程中,会按照顺序执行,不允许被打断。 Redis事务的特性:一次性、顺序性、排它性! Redis单条命令是保证原子性的,但是事务不保证原子性(要么同时成功,要么同时失败) Redis事务没有隔离级别的概念! 所有的命令在事务中,并没有被执行!只有发起执行命令的时候才会被执行!Exec Redis的事务: 开启事务(multi) 命令入队(…) 执行事务(exec) 正常执行命令 放弃事务 discard

2020-07-17 15:52:43 167

原创 一、分布式基础概念

1、微服务 微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量机制通信,通常是HTTP API。 简而言之:拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行 2、集群&分布式&节点 集群是个物理形态,分布式是个工作方式 只要是一堆机器,就可以叫集群,它们是不是一起协作着干活,这个谁也不知道; 分布式是指将不同的业务分布在不同的地方。 集群指的是将几台服务器集中在一起,实现同一业务。 例如:京东是一个分布式系统,众多业务

2020-07-13 14:38:35 314

原创 Redis简单入门

Redis概述 Redis是什么? Redis(Remote Dictionary Server),即远程字典服务! 是一个开源的使用ANSI C语言编写、支持网络、可基于内存也可持久化的日志型、Key-Value数据库,并提供多语言的API redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 免费和开源!是当下最热门的NoSQL技术之一!也被人们称之为结构化数据库! Redis能干嘛? 1、内存存储、持久化,内存中

2020-07-10 14:42:51 376

原创 NoSQL的入门概述

NoSQL 要说Redis首先要讲一下NoSQL 什么是NoSQL? NoSQL = Not Only SQL(不仅仅是SQL) 泛指非关系型数据库 关系型数据库:表格,行,列。 NoSQL特点 解耦! 1、方便扩展(数据之间没有关系,很好扩展) 2、大数据量高性能(Redis一秒写8万次,读11万次,NoSQL的缓存是记录级,是一种细粒度的缓存,性能比较高!) 3、数据类型是多样型的!(不需要事先设计数据库!随取随用!) 4、 ...

2020-07-09 10:07:06 240

原创 Linux常用命令

cd /home 进入 ‘/ home’ 目录’ cd … 返回上一级目录 cd …/… 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls [0-9] 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的树形结构 lstree 显示文件和目录由根目录开始的树形结构 mkdir dir1 创建

2020-07-06 16:52:58 97

原创 正向代理和反向代理

正向代理 正向代理的对象是客户端 所谓正向代理就是顺着请求方向进行的代理,即代理服务器是 由你配置 为你服务,去请求目标服务器地址。访问谷歌,我们直接访问不通,可以找一个代理服务器为我们服务,我们通过代理服务器请求到谷歌网站,对于谷歌,只知道有一个服务器访问了自己,并不知道是你访问不了它,找了个代理对象来访问自己。 反向代理 反向代理的对象是服务器 反向代理与正向代理相反,代理服务器是为目标服务器服务的 比如:我们访问百度网站,百度的代理服务器对外的域名是 https://www.baidu.com。具

2020-07-06 15:49:00 153

原创 java面向对象之N种内部类

内部类 什么是内部类? 内部类就是在一个类的内部再定义一个类,比如,A类中定义了B类,那么B类相对于A类来说就是内部类,而A类相对于B类来说就是外部类了。 内部类有哪些? 1、成员内部类:通过外部类来实例化内部类,成员内部类可以获得外部类的私有属性。 2、静态内部类 3、局部内部类 4、匿名内部类 ...

2020-07-05 21:28:09 197

原创 java面向对象之抽象类与接口

abstract 抽象类 1、约束,有人帮我们实现 2、abstract,抽象方法,只有方法名字,没有方法的实现! 3、抽象类的所有方法,继承了它的子类必须全部实现,除非子类也是一个抽象方法,就让子子类去实现。 抽象类的特点: 1、不能new这个抽象类,只能靠子类去实现它:约束! 2、抽象类中可以写普通的方法 3、抽象方法必须写在抽象类中,抽象的抽象:约束~。 抽象类存在的意义:共有的方法抽象出来,防止代码重复,提高开发效率。 interface接口 1、普通类:只有具体的实现 2、抽象类:具体实现和规范都

2020-07-05 20:21:55 200

原创 static关键字详解

static关键字 1、static 修饰的变量:静态变量 static 修饰的方法:静态方法 static{ //只执行一次 System.out.println(“这里是静态代码块”); } 静态导入包

2020-07-04 17:09:07 117

原创 Java面向对象之三大特性

封装 1、该露的露,该藏的藏: 我们程序设计要最求“高内聚,低耦合”。高内聚就是类的内部数据操作细节由自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。 2、封装(数据的隐藏): 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来直接访问,这称之为信息隐藏。 **3、记住这句话就够了:**属性私有,get/set 4、封装的意义: 1、提高程序的安全性,保护数据 2、隐藏代码的实现细节 3、统一接口 4、增加了系统的可维护性 继承 1、继承的本质是对某一批类的抽象,从而实现对现实世

2020-07-04 16:53:12 140

原创 java基础总结

java基础总结java是什么?新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 java是什么? 1、java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此jav

2020-07-04 15:37:06 130

空空如也

空空如也

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

TA关注的人

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