java高阶面试
文章平均质量分 86
阿星君
因为热爱
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《蹲坑也能进大厂》多线程系列-volatile、happens-before、三级缓存
本章结束就要结束Java内存模型的讲解了,虽说结束,但是后面会一直贯穿在各个知识点中,多线程比较基础的知识点讲解的差不多了,本文正式引入了对volatile的分析,接下来的几章也会对线程池、CAS、ThreadLocal、原子类、AQS、并发集合等逐步讲解,看完这一系列,谁还能与你争锋(依旧狗头护体)。啪啪啪...看我如何打脸正文我:狗儿,你昨天提及了主内存和工作内存,上次介绍有点太糙了,今天可以再仔细说一下嘛好的呀,我都依你。说到JMM主内存和工作内存,我们就必须要先了解一下CPU原创 2021-06-22 15:12:10 · 410 阅读 · 0 评论 -
《蹲坑也能进大厂》多线程系列-synchronized精讲
前言涉猎广泛的小伙伴应该知道,我们国家有些少数民族至今保留着一妻多夫的制度,云南省德钦县有个村子雾浓顶村,全村有20户人家,有8户是几个兄弟娶一个妻子的,最多者有4兄弟娶一妻的。花Gie其不关心,只是比较关心同胞们的就寝情况,据官方消息称,每晚就寝时先到的兄弟会在门口放置一块砖,如果后面还有其他兄弟过来,看到这块砖后,就知晓了一切(握草,又来晚了)。看到这里,小伙伴们是不是若有所思呢,这就是生活中解决多线程并发问题的经典实例,如果没有这块砖,5个人,十目相对是不是很尴尬呢。本章主要讲解以下几原创 2021-06-22 15:05:03 · 134 阅读 · 1 评论 -
OptaPlanner快速开始
OptaPlanner介绍OptaPlanner是一个轻量级的、可嵌入的约束满足引擎,可求解规划问题,它巧妙的跟分数相结合,用分数来对比每一个解决方案,最高分作为最优解决方案。OptaPlanner本身支持多种算法,可扩展性和使用性都很高,社区环境在国外相对活跃,版本迭代稳定。你将要解决什么问题?咱们今天来优化一个问题,为高中的学生和教师优化一个学校的时间表。我们将使用OptaPlanner算法自动将课程分配到对应的教室、教室,并且要遵守硬约束、软约束的规则,如下:硬约束一个房间在.原创 2021-06-22 14:11:47 · 1050 阅读 · 0 评论 -
京喜前端自动化测试之路
前言京喜(原京东拼购)项目,作为京东战略级业务,拥有千万级别的流量入口。为了保障线上业务的稳定运行,每月例行开展前端容灾演习,主要包含小程序及 H5 版本,要求各页面各模块在异常情况下进行适当的降级处理,不能出现空窗、样式错乱、不合理的错误提示等体验问题。 原来的容灾演习过程:小程序(通信方式改成 Https )和 H5 通过 Whistle 对接口返回进行修改来模拟异常情况,验证各页面各模块的降级处理符合预期。容灾演习是一项长期持续的工作,且涉及页面功能及场景多,人工的切换场景模拟异常导致演习效.原创 2021-06-22 13:55:42 · 331 阅读 · 0 评论 -
PageHelper原理深度剖析(集成+源码)
相信大家在开发过程中都用到过数据分页吧,那么问题来了,说出你平时用到的几种分页方式吧?而我在平时的工作中用到最多的应该属PageHelper这个分页插件了,此处附上官网地址:pagehelper.github.io/首先我们来说一下如何集成和使用它吧(以Springboot为例)pom.xml中引入依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pageh原创 2021-06-21 14:46:38 · 403 阅读 · 0 评论 -
20张图带你了解JVM运行时数据区(上)
我们的JVM系列已经断更好几天了,小伙伴们在后台疯狂私信阿Q,想看后续内容,今天它来了。相信大家在上篇文章中已经对类加载子系统有了清晰的认识,接下来就让我们来揭开“运行时数据区”的神秘面纱吧。运行时数据区总览内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。下图就是HotSpot的经典的内存布局:图中的..原创 2021-06-21 14:34:16 · 237 阅读 · 0 评论 -
JVM集合之开篇点题
大家在平时的开发过程中是否遇到过StackOverflowError、OutOfMemoryError等类似的内存溢出错误呢?大家又是怎么解决这个问题的?再来,大家在面试过程中有没有被面试官提问过jvm的内部构造及如何优化的夺命连环call呢?今天就让我们来一探究竟,先从jvm的内部构造及原理说起,一步一步带大家解决jvm的优化问题。虚拟机简介虚拟机(Virtual Machine,简称VM)就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟原创 2021-06-21 14:11:45 · 138 阅读 · 0 评论 -
开发人员,怎能没有个人博客!搭建个人博客利器!
6月20日阅读 282前言 作为开发人员,经常会做笔记,记录工作开发中的技术笔记、技术难点。可能做了很多年了,都没有一个属于自己的个人博客。那么现在给大家推荐一个搭建个人博客得利器——宝塔!下面介绍一下宝塔。一、宝塔简介1、全面的操作 宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器,可视化CPU、内存、流量监控图表,计划任务等功能。2..原创 2021-06-21 14:07:02 · 308 阅读 · 0 评论 -
Maven 各种花式构建,不用 SpringBoot 也能打出可执行 Jar 包
Spring Boot 的打包插件用着很爽吧,直接把源码和所有依赖打成一个 Jar 包还能直接java -jar运行。那如果非 Spring Boot 项目,想打成一个可执行的 Jar 包该怎么办呢?别慌,Maven 这种老牌构建工具,搞定这个事情还不是轻轻松松!下面介绍一些其他的 Maven 插件,同样可以直接将 Maven 项目打包成一个可执行的 Jar 包(uber jar/executable jar),而且功能更强大,应用场景更丰富!关于这个 uber jar/executa..原创 2021-06-21 13:53:32 · 2227 阅读 · 0 评论 -
Mybatis 标签的骚操作用法,你都知道哪些?|Java 开发实战
开篇有时候新增一条数据,需要这条新增数据的主键,以便使用,如果采用先插入再查询的方式明显不符合要求,效率也变低了。这时候,可以使用<selectKey>标签,将insert的数据的主键返回,直接拿到新增数据的主键,以便后续使用。插入时返回数据主键表的主键有两种,一种自增主键,一般为int/long类型,一种为非自增的主键,例如用uuid等。自增类型的主键。<!--selectKey 会将 SELECT LAST_INSERT_ID()的结果放入到传入的model的原创 2021-06-19 15:06:03 · 542 阅读 · 0 评论 -
拦截应用 error日志并发送到钉钉群|Java 开发实战
开篇现在应用都需要对日志进行监控或者报警,现在普遍的做法是采用EKL收集日志,然后再由Grafana进行内容展示和及告警策略等,那如果项目架构比较简单(单体应用),又不想搞那么多中间件依赖怎么办,这里有一种简单的方式可以实现~继承UnsynchronizedAppenderBaseSpringboot默认集成的是logback,所以自定义Appender非常简单,继承一下AppenderBase类即可。再来看看AppenderBase之上的Appender下都有哪些实现Unsynch原创 2021-06-19 15:02:58 · 761 阅读 · 0 评论 -
子线程无法拿到父线程的变量怎么办?|Java 开发实战
开篇数据在哪个线程存储,就要从哪个线程读取,子线程是读取不到的。那如果想要读取该怎么办呢?示例遇到开篇说的这种情况,可以使用InheritableThreadLocal来帮助我们解决这类问题,InheritableThreadLocal是ThreadLocal的子类,我们用InheritableThreadLocal和ThreadLocal来演示下效果,便于更直观的理解。@Testvoid contextLoads() throws InterruptedException ...原创 2021-06-19 14:47:08 · 446 阅读 · 0 评论 -
Java单元测试之IDEA自动生成测试类
每次对类的方法进行测试,都是手动创建一个Test测试类,然后编写同名的方法,每次这样都会很繁琐,IDEA开发工具提供了自动生成测试类的插件JUnitGenerator,接下来介绍该插件的安装与使用。安装插件JUnitGenerator打开IDEA,依次点击:Preferences-->plugins-->Marketplace, 搜索JUnitGenerator安装好后把该插件勾上使用(默认安装就已勾选)插件配置安装成功后可以找到关于JUnit自动生成测试类的相关配置,如下图原创 2021-06-19 14:39:56 · 2172 阅读 · 0 评论 -
使用lombok 实现链式编程
什么是链式编程链式编程就是可以通过方法.的方式不断调用,其原理就是返回一个this对象,就是返回本身,达到链式效果。我们经常用的StringBuffer就是实现了链式的写法。这样使用起来是不是很爽,其实就是在设值完之后返回当前this对象。StringBuffer#append()源码:lombok 链式编程引入依赖<dependency> <groupId>org.projectlombok</groupId> &...原创 2021-06-19 14:30:38 · 1722 阅读 · 0 评论 -
异步编程利器:CompletableFuture详解 |Java 开发实战
06日阅读 1005关注前言文正在参加「Java主题月 - Java 开发实战」,我们异步执行一个任务时,一般是用线程池Executor去创建。如果不需要有返回值, 任务实现Runnable接口;如果需要有返回值,任务实现Callable接口,调用Executor的submit方法,再使用Future获取即可。如果多个线程存在依赖组合的话,我们怎么处理呢?可使用同步组件CountDownLatch、CyclicBarrier等,但是比较麻烦。其实有简单的方法,就是用Compele..原创 2021-06-19 14:24:32 · 1704 阅读 · 1 评论 -
spring单元测试之Mockito
Mockito 是一个针对 Java 的单元测试模拟框架,它与 EasyMock 和 jMock 很相似,都是为了简化单元测试过程中测试上下文 ( 或者称之为测试驱动函数以及桩函数 ) 的搭建而开发的工具相对于 EasyMock 和 jMock,Mockito 的优点是通过在执行后校验哪些函数已经被调用,消除了对期望行为(expectations)的需要。其它的 mocking 库需要在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。SpringBoot 中的 pom.x原创 2021-06-19 14:08:49 · 2967 阅读 · 0 评论 -
软件测试课程设计—Appium的运用之工具准备
1.Appium工具1.1原理Appium主要分为Client和Server,Client Server 封装了Selenium客户端类库,为用户提供所有常见的Selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向等; 定义了官方协议的扩展,为用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App等。 Client通过发送HTTP请求给Server,当Server接收Client发送的请...原创 2021-06-18 15:02:45 · 241 阅读 · 1 评论 -
写一个测试框架|Java 开发实战
一、前言需求:需要一个测试框架,能来测试一个IM系统,同时适配当前业务逻辑。测试那用Jmeter喽,Jmeter也能测试websocket,干嘛要自己开发一个测试框架啊?最重要的一点:TCP协议是自定义的,用Jmeter等框架,无法很好集成。PS:当然对Jmeter不够深入。那么面向一个IM系统,其对应的测试框架,需满足:具有连贯性,上下文:在保持连接情况下,执行一定业务逻辑处理,例如:发消息、加群、加好友等 易接入:开发对接代码简单 生成多种不...原创 2021-06-18 14:35:52 · 293 阅读 · 1 评论 -
2021 前端测试概述
测试类型单元测试 集成测试(组件测试) 功能测试(E2E,端对端测试)测试环境浏览器 无界面浏览器 Nodejs测试工具类型框架对比表框架功能 Test lanuchers Testing structure providers Assertion functions Generate and display test progress and summary Mocks, spies, and stubs G...原创 2021-06-18 14:28:57 · 224 阅读 · 0 评论 -
测开岗只要求会黑白盒测试?NO!还要学会性能测试!
阅读 275关注『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!浅谈软件测试中的性能测试这是我参与更文挑战的第15天,活动详情查看:更文挑战很多时候,我们都知道软件有黑白盒测试,但往往还遗漏掉了一个性能测试。在下面的这篇文章中,就带领大家来了解性能测试。一起来学习吧~????一、????性能测试概念1、为什么要有性能测试?(1)2007年10月,北京奥组委实行2008年奥运会门票预售,一时间订票官网访问量激增导致系统瘫痪,最终奥运会门票暂停销售5天。原创 2021-06-18 14:25:25 · 294 阅读 · 0 评论 -
【ZStack】自动化测试系统3——基于模型的测试
模型测试系统是zstack-woodpecker中的一个子项目。通过有限状态机和行为选择策略,它可以产生随机的API操作,一直运行下去,直到遇到一个缺陷或者预定义的退出条件。ZStack依赖模型测试去测试真实世界中难以遇到的边界用例,在测试覆盖度方面补充集成测试和系统测试。概述测试覆盖率是一个判断一个测试系统品质的重要指示器。常规测试方法论,例如单元测试,集成测试,系统测试,都是由人类逻辑思考构建的,难以覆盖软件中的边界场景。这个问题在IaaS软件中变得更加明显,因为管理不同的子系统会导致极为复杂的原创 2021-06-18 14:17:10 · 473 阅读 · 0 评论 -
【ZStack】自动化测试系统2——系统测试
ZStack的系统测试系统在真实的硬件环境中运行测试用例;像集成测试一样,这个系统测试也是全自动的,而且覆盖的层面包括:功能性测试、压力测试、性能测试。概述虽然集成测试系统,如我们在ZStack—自动化测试系统1:集成测试中所介绍的,强大到可以暴露开发过程中大多数的缺陷,也是有着固有的弱点的。首先,由于测试用例使用模拟器,它们不能测试真实场景,比如在一个物理的KVM主机上创建一个VM。第二,集成测试用例主要关注一个简单的场景,在一个简单的人造的环境中;举个例子,还是创建VM的这个用例,它可能只部署一原创 2021-06-18 14:13:49 · 421 阅读 · 0 评论 -
【ZStack】自动化测试系统1——集成测试
测试,对于一个IaaS软件的可靠性、成熟度和可维护性而言,是一个重要的因素.测试在ZStack中是全自动的。这个自动化测试系统包括了三个部分:集成测试,系统测试,基于模块的测试。其中集成测试构建于Junit之上,使用了模拟器。通过这个集成测试系统提供的各种各样的功能,开发人员可以快速的写出测试用例,用于验证一个新特性或者一个缺陷修复。概述这个关键因素,在构建一个可靠的、成熟的和可维护的软件产品中,就是架构;这是我们自始自终相信的设计原则。ZStack已经付出了大量的努力,以设计这么一个架构:始终保持原创 2021-06-18 14:09:28 · 748 阅读 · 0 评论 -
安装Nacos
开始打开百度(哈哈),搜索nacos,然后选择第一个。然后进入页面,我们就可以对着官方文档开始了。官方推荐的版本是1.3.1,那笔者这里安装的也是1.3.1。 然后点击release notes点击之后,会进入到github,当前的最新版本为 1.4.0,显然这不是我们想要的,那就往下翻。找到我们想要的版本,然后点击进行下载。笔者这里下载的是 linux 版本,如果要下载 window 版本请点击以.zip结尾的。Linux 安装将下载好的 gz 包上传到我们自己的服务器,笔者放置的目...原创 2021-06-18 14:04:03 · 407 阅读 · 1 评论 -
详解Kubernetes中的资源限制原理
我参与更文挑战的第9天,活动详情查看: 更文挑战1 Kubernetes对资源的限制在Kubernetes中,对资源(CPU、内存等)的限制,需要定义在yaml中,以Deployment举例:apiVersion: v1kind: Podmetadata: name: cpu-overload namespace: testspec: containers: - name: cpu-overload image: stress/stress:latest原创 2021-06-17 16:33:41 · 981 阅读 · 2 评论 -
源码级别理解 Redis 持久化
前言大家都知道 Redis 是一个内存数据库,数据都存储在内存中,这也是 Redis 非常快的原因之一。虽然速度提上来了,但是如果数据一直放在内存中,是非常容易丢失的。比如 服务器关闭或宕机了,内存中的数据就木有了。为了解决这一问题,Redis 提供了 持久化 机制。分别是RDB以及AOF持久化。RDB什么是 RDB 持久化?RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。RDB 的优点?RDB 是一种表...原创 2021-06-17 16:26:24 · 389 阅读 · 8 评论 -
从零开始 MapReduce
前言你将 get 到分布式计算引擎的核心思路,MapReduce 并行度解析一、MapReduce 的核心思路1.1 分布式计算引擎带你入坑大数据(三) --- MapReduce介绍,感兴趣的也可以跳转过去看看,之前曾经写过,现在过了些时日,重新认识一下。下图描述的是 MapReduce 的几个核心阶段一句话总结分布式处理的核心思路:分而治之 + 并行计算。之后的 Spark 和 Flink 都是基于它的思想所设计的。HDFS也可以一句话总结:分散存储 + 冗余存储。复杂问题,原创 2021-06-17 16:20:31 · 372 阅读 · 2 评论 -
Pulsar实战
摘要最近很火的消息中间件Pulsar,本想学习下,发现网上很多都是介绍性能和对比Kafka的文章,实践的文章很少!于是对着官方文档实践了一波,写下了这篇文章,估计是国内第一篇Pulsar实战文章了,希望对大家有所帮助!Pulsar简介Pulsar是一个用于服务端到服务端的消息中间件,具有多租户、高性能等优势。Pulsar最初由Yahoo开发,目前由Apache软件基金会管理。Pulsar采用发布-订阅的设计模式,Producer发布消息到Topic,Consumer订阅Topic、处理Topic原创 2021-06-17 15:46:44 · 1366 阅读 · 2 评论 -
一篇彻底搞定对象的深度克隆 | 包括function和symbol类型
前言此文解决的痛点:网上有很多关于对象深度克隆的文章资料,但是很多讲得都不太全!我的目的是:需要深度克隆对象中所有可能出现的数据类型,包括function和symbol类型!为了不乱,我将本文结构分成两个部分:梳理几种常见的深度克隆方式 手写实现深度克隆,包含所有类型的值,如对象中的function和symbol。(这部分将是本文重点,也是本文的出现意义所在!)梳理几种常见的深度克隆方式这里简单说下3种深度克隆对象的方式通过扩展运算符...var a = {nam..原创 2021-06-17 15:37:12 · 1245 阅读 · 2 评论 -
git 的使用
最近在网上有个真实发生的案例比较火,说的是一个新入职的员工,不会用 git 拉代码,第二天被开除。由此,可见 git 对我们工作的重要性,无论是前端后端,都是离不开 git 的,下面就让我们一探究竟吧。上面的案例引申出一个问题,入职一家新公司,你的 leader 给你分配了仓库的权限后,如何配置本地的git环境并拉取代码?莫慌,按照下面我讲的四个步骤走,保证你可以顺利使用 git 进行拉取代码! 下载 git 下载地址 ,选择自己系统对应的版本下载即可。 在你的电脑上生成 ssh 秘钥,原创 2021-06-17 15:08:08 · 896 阅读 · 2 评论 -
GO 中 slice 的实现原理
GO 中 slice 的实现原理这是我参与更文挑战的第17天,活动详情查看:更文挑战上次我们分享的字符串相关的内容咱回顾一下分享了字符串具体是啥 GO 中字符串的特性,为什么不能被修改 字符串 GO 源码是如何构建的 ,源码文件在src/runtime/下的string.go 字符串 和[]byte的由来和应用场景 字符串与[]byte相互转换要是对GO 对 字符串 的编码还有点兴趣的话, 欢迎查看文章GO 中 string 的实现原理slice 是...原创 2021-06-17 14:45:22 · 340 阅读 · 1 评论 -
枚举和注解
第34条 用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型,例如一年中的季节、太阳系中的行星或者一副牌中的花色。 枚举类型是实例受控的,它们是单例的泛型化,本质上,是单元素的枚举。 为了将数据与枚举常量关联起来,得声明实例域,并编写一个带有数据并将数据保存在域中的构造器。 枚举天生就是不可变的,因此,所有的域都应该为final的。 枚举构造器不可以访问枚举的静态域:因为构造器运行时,这些静态域还没有被初始化。唯一的特例是:枚举常量无法...原创 2021-06-17 14:23:44 · 185 阅读 · 0 评论 -
用python爬取网络图——简单便捷
经常有需求说需要爬取某某网站的某些数据,因为python的包最多的,首先尝试使用python爬~便有了本文有了python爬网页爬图这项技能,不光能爬数据,爬图,,,嗯~建议大家在法律范围内做爬虫,毕竟命令是领导下的,锅却要我们来背~python基本配置安装pip通过pip我们可以很方便的通过包名安装其他的python包。在Python 2 >=2.7.9 or Python 3 >=3.4 中已经内置了pip。可以使用如下命令查看是否已安装pip。python -m原创 2021-06-16 14:42:24 · 1291 阅读 · 14 评论 -
使用 Postman 做 API 自动化测试
Postman 最基本的功能用来重放请求,并且配合良好的response格式化工具。高级点的用法可以使用 Postman 生成各个语言的脚本,还可以抓包,认证,传输文件。仅仅做到这些还不能够满足一个系统的开发,或者说过于琐碎,你仍需要频繁地在开发环境,测试环境,生产环境中来回切换。单一的请求也不够,你需要维护系统所有 API 的请求,并且每个请求还带有不同的querystring和body。Collection 文档 Mock 测试 Json Schema 测试请求...原创 2021-06-15 14:38:23 · 300 阅读 · 0 评论 -
接口性能测试
接口性能引言作为测试一个接口,我们不但需要考虑到功能,还需要考虑到性能。在工作中,经常会碰到功能没问题,但是人一多了,响应就慢了,人一多了,应用挂了。这个时候老板会问,这个接口性能过关吗?如果我们只能回答说,没考虑到。那老板的答案就显然了。 但是我们在面试时或者在提交bug时,可以提出非功能性的bug,面试官或者开发一定会另眼相看的。 这个系列课程的目的还是着重于接口测试,对于接口的性能会有所涉及,但是不会很深入。建议想看性能专题的同学,请网上搜索专门的性能课程。考虑的因素一个接口要做非功能原创 2021-06-15 14:22:38 · 6250 阅读 · 1 评论 -
黑盒测试和白盒测试
2020年01月20日阅读 1172关注黑盒测试和白盒测试软件测试是软件开发过程中的基本活动。黑盒测试和白盒测试是两种不同类型的软件测试策略,它们具有同样强大的功能,并且结合使用时甚至更好。黑盒测试在软件中,黑盒测试很方便,可以减少灾难性(软件)崩溃的风险。灾难性的软件崩溃可能是什么?系统在更新客户数据库的过程中崩溃了?在这种情况下,可能会丢失客户数据。黑盒测试分为三种类型:功能测试,非功能测试和回归测试。黑盒功能测试通过功能性的黑盒测试,我们可以在不知道软件如何执行..原创 2021-06-15 14:07:16 · 1351 阅读 · 0 评论 -
暴力突破 Flutter 自动化测试
一、前言移动应用的测试往往比较复杂且工作量很大,为了验证用户的真实使用体验往往需要跨越多个平台以及不同的物理设备手动测试。随着产品功能不断迭代累积,测试的复杂度随之大幅增长,手动测试会变得更加困难。因此,编写自动化测试用例对我们的项目更新、迭代有着非常重要的作用。二、单元测试单元测试是指对软件中的最小可测试单元进行验证的方式,使用单元测试可以验证单个函数、方法或类的行为。我们来看看 Flutter 项目的工程目录:如上图所示,lib 是 Flutter 应用源文件目录,test 是测试文原创 2021-06-15 14:04:37 · 589 阅读 · 0 评论 -
什么是接口测试和功能测试?
一、什么是功能测试功能测试 就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。Functionaltesting(功能测试),也称为behavioral testing(行为测试)、黑盒测试或数据驱动测试黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。二、功能测试怎么做功能测试如何进行的:编写测试用例,测试用原创 2021-06-15 13:48:32 · 1335 阅读 · 0 评论 -
函数的高级使用
1、闭包这是我参与更文挑战的第9天,活动详情查看:更文挑战1.1 函数概念理引用def test1(): print("--- in test1 func----")# 调用函数test1()# 引用函数ret = test1print(id(ret))print(id(test1))#通过引用调用函数ret()复制代码运行结果:--- in test1 func----140212571149040140212571149040--- in.原创 2021-06-15 14:09:59 · 196 阅读 · 0 评论 -
MySQL 时间戳类型
日期类型是我们在数据库操作中一个较为常见的数据类型,TIMESTAMP 类型相信使用的朋友也不少,但是你真的了解它吗?本文介绍在 MySQL 中使用 TIMESTAMP 类型遇到的一些潜在问题,最大时间限制相当于埋在未来的坑、因为系统的一些默认规则触发日期自动更新、默认系统时区的性能问题,发现问题的同时,后面也推荐了一些在日期上个人认为不错的方案,供参考。安装 MySQL推荐 Docker 的方式本机安装一个 MySQL,步骤也很简单,如下所示,对于学习还是很方便的,已安装的可忽略。$ d原创 2021-06-11 15:50:57 · 5193 阅读 · 3 评论
分享