哈喽大家好,我是chowley,最近再练二分查找的题,也顺便看了看Python官方的bisect库,这次做一个总结博客。在 Python 中,bisect_left 和 bisect_right 是两个常用的二分查找函数,用于在已排序的序列中查找元素应该插入的位置。本文将给出它们的源码实现,并解析它们的区别和使用场景。1. bisect_left 函数源码及解析def bisect_left(a,
哈喽大家好,我是chowley, 相信大家在面试中都被问到过网络模型,今儿我就来总结一下每层的功能和特点!在计算机网络中,七层网络模型(ISO/OSI参考模型)是一种标准的网络架构,用于描述和组织网络通信的各个方面。1. 物理层(Physical Layer)功能:在物理媒介上传输比特流,负责传输介质、信号调制和数字编码等。特点:关注的是传输的物理介质,如电缆、光纤等。作用:确保原始数据的传输,例
哈喽大家好,我是chowley,今天介绍一下面试中常见的问题——加密方法!在信息安全领域,加密是一种保护数据安全的重要手段。而对称加密和非对称加密是两种常见的加密方式,它们在加密原理、安全性和应用场景上有所不同。对称加密对称加密是一种使用相同密钥进行加密和解密的加密方式。简单来说,就是发送方和接收方使用同一个密钥来进行加密和解密操作。常见的对称加密算法有AES(高级加密标准)、DES(数据加密标准
哈喽大家好,我是chowley, 今天来介绍一下Python的引用计数和垃圾回收。在Python的内存管理中,引用计数与垃圾回收是两个核心概念,它们共同保证了Python程序的内存安全和高效利用。引用计数引用计数是Python内存管理的基础,它通过对对象的引用情况进行计数来确定是否可以释放内存。每个对象都有一个引用计数器,当对象被引用时,计数器加一;当引用失效时,计数器减一。当计数器为零时,对象被
哈喽大家好,我是chowley今天我们邀请到了QALog联合创始人,双9硕士给我们做经验分享和学习路线规划,正文如下:校招生如何准备软件测试、测试开发岗位的面试?作者介绍笔者是软件测试方向的硕士研究生。在应届秋招中拿下了20余个软件测试、测试开发的offer。本系列会将我的测试理论体系与大家分享和探讨。求职建议大家都很困惑如何学习测试?如何准备测试方面的面试?我有朋友是做研发的,他认为测试不用准备
哈喽大家好,我是chowley,最近在看自动驾驶测试的相关概念,其中有几个名词出现的频率很高,这次的博客做一个总结。自动驾驶测试方法软件测试自动驾驶系统中使用了很多软件。所有软件都应该经过适当的测试,以实现自治的目标。测试使用不同的测试用例,例如自动创建的测试用例、硬件在环(HIL)测试、基于变更的测试以及测试用例与需求的映射。此外,还需要测试所有传感器数据是否正确处理并提供所需的输出。模拟测试模
哈喽大家好,我是chowley不知道大家有没有听说或者使用过流量回放呢?今天我就来介绍一下——流量回放!当我们在浏览网页、使用应用程序或者进行在线交易时,背后都有大量的网络流量在传输。这些流量包含了各种请求和响应,是应用程序正常运行的重要组成部分。而流量回放(Traffic Replay)技术,就是将这些实际网络流量重新发送到系统或应用程序中,以模拟真实环境中的操作和情况。本文将介绍流量回放的基本
哈喽大家好,我是chowley,这次来记录一个经典问题——python虚拟环境咋配?当我们需要在同一台机器上同时运行多个项目时,经常会遇到Python环境不兼容的问题。比如,一个项目需要Python 2.7,而另一个项目需要Python 3.6。为了解决这个问题,我们可以使用Anaconda来创建和管理不同的Python环境。1. 安装Anaconda首先,需要下载并安装Anaconda。可以从A
哈喽大家好,我是chowley, 最近sora真是垄断了科技区的话题榜,几乎每个技术博主都上来讲两句我在半年前也是一名深度学习的研究者,今天我以测试开发工程师的视角来解读一下sora!首先打开OpenAI的sora页面,映入眼帘的就是文字+背景视频的介绍视频相信大家在网上已经看过不少了,简单来说就是我输入一段文字描述一个场景,然后sora来理解文本、生成视频,那如果我是OpenAI的QA会如何测试
前言大家好,我是chowley, 今天来介绍一下Java IO中的两个重要概念——同步阻塞和装饰器模式。同步阻塞在计算机编程中,同步阻塞(Synchronous Blocking)指的是在进行某个操作时,当前线程会被阻塞(即暂停执行),直到该操作完成才会继续执行。在 Java IO 中,输入输出操作通常是同步阻塞的。例如,在读取文件时,如果文件没有准备好或者网络连接不可用,读取操作将会阻塞当前线程
前言大家好,我是chowley,今天来复习一下Selenium的常用方法,并结合实战演练来加深记忆。SeleniumSelenium 是软件测试领域中最受欢迎的自动化测试工具之一,它提供了丰富的方法和操作来模拟用户在 Web 应用程序中的交互行为。本篇博客将深入介绍 Selenium 中常用的方法和操作,帮助软件测试读者更好地利用 Selenium 进行自动化测试。定位元素Selenium 提供了
前言 大家好,我是chowley, 当我一开始接触到代码质量的内容就开始想:有没有什么工具可以帮助我来了解程序的代码覆盖率呢?今儿就来介绍一下JaCoCo! 在软件开发过程中,测试是确保代码质量的重要步骤之一。而了解代码的测试覆盖率则是评估测试质量的关键。JaCoCo(Java Code Coverage)是一个强大的代码覆盖率工具,它可以帮助开发人员深入了解其代码的测试覆盖情况,并据此改进测试用
前言 大家好,我是chowley, 今天来聊一聊Bug的等级划分。 在软件开发中,处理 Bug 是一个必不可少的环节。但并非所有 Bug 都是同等重要的,有些 Bug 的影响可能会比其他的更加严重,因此需要根据 Bug 的严重性和优先级来进行处理,以便更好地保障软件的质量和稳定性。 Bug 的分级 在处理 Bug 之前,首先需要对 Bug 进行分级,通常包括以下几个层次: Critical(1级
前言 大家好,我是chowley, 不知道大家在学习Java的过程中有没有听过反射的概念,今天我来总结一下我心中的Java反射。 在Java编程中,反射是一种强大的工具,它允许程序在运行时检查和操作类、方法、属性等,而无需在编译时确定这些信息。 1. 反射的基本概念 1.1 什么是反射? 反射是指程序在运行时动态地获取类的信息以及操作类的方法和属性的能力。通过反射,可以在运行时检查类,调用类的方法
前言 大家好,我是chowley,在我之前的游戏测试实习中,曾经遇到了ANR现象,当时mentor和我说我还没反应过来,原来是安卓未响应,今天就来深入探究一下ANR! ANR ANR(Application Not Responding)是安卓应用开发中的一个常见问题,当应用程序长时间无法响应用户操作时,系统会弹出ANR对话框,提示用户关闭该应用。 1. ANR的原因 ANR通常是由于主线程长时间
前言 大家好,我是chowley,MVC相信大家都听说过,今天我就记录一下我心中的MVC框架 MVC(Model-View-Controller)是一种软件设计模式,用于将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。每个部分有着不同的责任和角色,有助于降低代码耦合度,提高代码的可维护性和可扩展性。 1. 模型(Model) 模型代表应用程序的数据
前言 大家好,我是chowley,春节假期马上结束了,我也开始着手准备春招了,这篇来总结一下常见的异常类型 Java异常 在Java编程中,异常是不可避免的一部分,程序员需要了解和处理各种类型的异常。 1. NullPointerException(空指针异常) 当应用程序试图在要求使用对象的地方使用了null时,抛出该异常。例如,调用了一个null对象的方法或访问了null对象的属性。 2. A
前言 大家好,我是chowley,在我之前的面试中,遇到过这样一个问题:Exception和Error之间有什么区别?今天我就来好好地总结一下! 主体 在Java编程中,Exception和Error都是Java中的可抛出对象,它们都是Throwable类的子类,但在使用和处理上有着不同的特点。 Exception Exception代表了在程序执行过程中可能出现的异常情况,通常是由程序错误或者外
前言 大家好,我是chowley,在我之前的项目中,用到了缓冲流来提高字符流之间的比较速度,缓冲流的主要作用类似于数据库缓存,提高IO操作效率。 缓冲流 在Java的输入输出操作中,缓冲流是提高性能的重要工具之一。它通过在内存中建立缓冲区,减少了与底层数据源(如文件、网络连接等)的直接交互次数,从而显著提升了I/O操作的效率。 1. 缓冲流概述 缓冲流是Java I/O库中的一组流,包括了缓冲输入
前言 大家好,我是chowley,刚看完Java IO方面内容,特此总结一下。 Java IO Java IO(输入输出)是Java编程中用于处理输入和输出的API。它提供了一套丰富的类和方法,用于读取和写入数据到不同的设备、文件和网络连接。 1. 概念 Java IO是Java编程中用于处理输入输出的API,它允许程序与外部世界进行交互,读取输入数据并将输出数据写入到不同的设备和介质中。Java
前言 大家好,我是chowley, 在我之前的开发项目中,涉及到了字符流处理,也就是今天的主角——流式编程。 流式编程 在现代Java编程中,流式编程(Stream Programming)已经成为一种常见的编程模式,它基于Java 8引入的Stream API,提供了一种简洁、高效、函数式的方式来处理集合数据。 1. 什么是流式编程? 流式编程是一种基于Stream API的编程模式,它将数据的
前言 大家好,我是chowley,日常工作中,我每天都在接触CI/CD,今天就给出我心中的答案。 在现代软件开发中,持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD)是两个非常重要的实践,它们通过自动化的流程来加速软件的开发、测试和部署,提高团队的效率和产品的质量。下面我们将解释 CI/CD 的概念,并探讨它们的作用。 持续
前言 大家好,我是chowley, 今天在复习Java并发的内容,顺便来回答一个经典问题 ——如何处理多线程并发安全? 并发编程涉及到多线程同时访问共享资源的问题,而多线程并发访问共享资源可能导致数据不一致、竞态条件等问题,因此如何处理多线程并发安全成为了 Java 开发中的重点。 1. 同步机制 1.1 synchronized synchronized关键字是 Java 中最基本的同步机制之一
前言 大家好,我是chowley,说到消息队列,在我之前的生产者-消费者项目中使用的是ConCurrentLinkedList结构,今天来总结一下主流的消息队列实现——RabbitMQ。 RabbitMQ 是一个开源的消息代理软件,最初由 Rabbit Technologies 公司开发,现在是 Pivotal Software 的一部分。作为一种消息队列(Message Queue)实现,Rab
前言 大家好,我是chowley,我之前在项目中有接触过异步处理,当时的服务并发量较高,引入了Netty来搭建通信模块,今天我就来总结一下Netty的基础内容。 Netty 是一个基于 Java NIO(New I/O)的高性能网络通信框架,提供了简单易用的 API,旨在帮助开发者快速构建高性能、可扩展的网络应用程序。作为一个异步事件驱动的网络应用框架,Netty 主要用于开发客户端和服务器端的网
前言 大家好,我是chowley,在这里祝大家龙年大吉,身体健康,这次来回忆一下当时参加腾讯技术面的场景题,面试官让我测试拼手气红包,不需要考虑其他方面,只在功能方面进行探索。 我先贴一张红包界面截图 1. 发送红包功能测试用例: 用户成功进入发送红包页面,点击按钮展示弹窗。 红包种类:拼手气红包、普通红包、专属红包。 发红包界面显示正常(UI、文字、图片样式等) 输入合法的红包
前言 大家好,我是chowley,祝大家三十快乐,今天总结一下我之前在项目中使用过的生产者-消费者模式。 生产者-消费者模式(Producer-Consumer Pattern)是一种经典的并发编程模式,用于解决生产者和消费者之间的数据交换与同步问题。在多线程环境下,生产者负责生成数据并放入共享的数据缓冲区,而消费者则负责从数据缓冲区中取出数据并进行处理。生产者和消费者之间通过共享的数据缓冲区进行
前言 大家好,我是chowley,最近在做复习多线程方面的内容,今天对Java多线程关键字做一个总结! 在Java多线程编程中,关键字是控制线程行为和实现线程同步的重要工具。深入理解这些关键字的用法对于编写高效、稳定的多线程程序至关重要。本文将对Java中常用的多线程关键字进行总结和解析,帮助开发者更好地掌握多线程编程技巧。 1. synchronized synchronized 是Java中用
前言 大家好,我是chowley,马上大年三十了,提前祝大家新春快乐, 这篇来总结一下Java多线程方面内容。 在Java编程中,多线程是一种重要的特性,它允许程序同时执行多个任务,从而提高程序的性能和效率。在多线程编程中,了解线程的状态是至关重要的。 什么是Java多线程? Java多线程是指在Java程序中同时运行多个线程,每个线程都独立执行自己的任务。通过多线程,可以将耗时的任务分配给不同的
前言 大家好,我是chowley,通过前篇的JUnit实践,我对这个框架产生了好奇,除了断言判断,它还有哪些用处呢?下面来总结一下它的常见注解及作用。 正文 在Java单元测试中,JUnit是一种常用的测试框架,它提供了丰富的注解用于标识测试方法、设置测试环境以及控制测试执行流程。除了用于断言判断之外,JUnit的注解还有许多其他用途。 JUnit Jupiter支持以下注解来配置测试并扩展框架。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号