自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git的基本命令

github入门及如何提交代码1、提交代码到远程仓库三步走:git add 文件名git commit -m '描述'git push2、将远程仓库下载到本地git clone url(远程仓库url)

2020-11-27 15:57:06 203

原创 奇偶链表

目录题目解析源码:题目给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL示例 2:输入: 2->1->3-&

2020-11-13 23:29:24 263

原创 不同字符的最小子序列

给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入:s = "bcabc"输出:"abc"示例 2:输入:s = "cbacdcbc"输出:"acdb"题解:public static String removeDuplicateLetters2(String s) { int[] count=new int[256];//记录每个元素出现的次数 //记录

2020-10-31 15:56:54 355

原创 最大数

最大数力扣链接思路:我们拿示例二来说:public static class Comp implements Comparator<String> { @Override public int compare(String o1, String o2) { String a=o1+o2; String b=o2+o1; return b.compareTo(a);//按字典顺序比较两个字符串。 }} Arr

2020-10-27 21:34:39 188

原创 Requests接口测试

目录Requests接口测试实例测试登陆接口获取频道列表Requests是Python HTTP的库安装命令:pip install requestshttps://requests.readthedocs.io/zh_CN/latest/接口测试实例对自己聊天室项目的登陆及获取频道列表的简单测试测试登陆接口def login(): url = 'http://39.98.227.201:8080/chatroom/login' data = { 'nam

2020-10-22 22:16:51 254

原创 下一个更大元素

题解://单调栈解法:每次新元素入栈时,栈内的元素都保持单调递增或递减public static int[] nextGreaterEle(int[] nums) { int[] res=new int[nums.length];//存放结果的数组 Stack<Integer> s=new Stack<>(); for (int i = nums.length-1; i >=0 ; i--) { while (!s.empty()&.

2020-10-19 21:39:31 215 3

原创 python操作mysql数据库及读取Excel数据,并插入到MySQL数据库

目录安装对应的库连接数据库设置游标对象写SQL查询插入(增删改需要提交事务)安装对应的库pip install Mysqlclient连接数据库import MySQLdbcon = MySQLdb.connect( host='127.0.0.1', user='root', passwd='', db='mybatis', charset='utf8')设置游标对象c = con.cursor() # 游标对象,相当于一个指针,指

2020-10-19 12:12:40 854

原创 Spring基于注解开发

使用注解开发时需要在配置文件中引入Context约束<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/conte.

2020-10-09 13:00:01 151

原创 Bean作用域、生命周期

作用域在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象 .作用域的种类Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域。Spring3 为 Bean 定义了五种作用域,具体如下。1)singleton单例模式,使用 singleton 定义的 Bean 在 Spring 容器中只有一个实例,这也是 Bean 默认的作用域。<bean id="Serv

2020-10-08 17:22:20 180

原创 Spring依赖注入(DI)实现方式

DI [Dependency Injection]依赖注入:两种注入方式(属性注入和构造注入)属性注入(即setter方法注入)构造方法注入依赖注入:依赖:指Bean对象的创建依赖于容器、注入:指Bean对象所依赖的资源由容器来设置和装配两种注入方式(属性注入和构造注入)属性注入(即setter方法注入)编写实体类:public class Address { private String address; public String getAddress() {

2020-10-08 15:26:21 176

原创 第一个Spring程序

目录创建一个maven项目Spring配置解析创建一个maven项目配置pom.xml,导入相关的依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ma

2020-10-07 22:02:48 108

原创 什么是Spring

Spring之旅什么是Spring?理解IOC(控制反转)从代码层面理解什么是Spring?Spring(春天),意为给软件行业带来了春天他的前身是Interface21Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术Spring就是一个轻量级免费开源的面向切面(AOP)和控制反转(IOC)的框架(容器)理解IOC(控制反转)从代码层面理解新建一个Maven项目---->创建一个Dao包和Service包,里面有它们的接口和具体实现类1.

2020-10-07 18:47:13 263

原创 第一个Mybatis程序

目录第一个Mybatis程序搭建环境:编写MyBatis核心配置文件编写MyBatis工具类创建实体类编写Mapper接口类编写Mapper.xml配置文件编写测试类CRUD操作第一个Mybatis程序搭建环境 ---->导入Mybatis ----->编写代码------> 测试搭建环境:create database mybatis;use mybatis;create table user( id int(2) primary key, name varchar(

2020-09-30 17:11:08 408

原创 mybatis之旅

Mybatis简介什么是mybatis?持久化为什么需要持久化?为什么需要使用Mybatis?第一个Mybatis程序简介什么是mybatis?Mybatis是一款优秀的持久层框架避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程可以使用简单的XML或注解来配置和映射原生信息,将java的实体类映射成数据库中的记录持久化所谓的持久化就是把数据(如内存中的对象)保存到可以永久保存的存储设备中(如磁盘)。持久化的主要应用:将内存中的对象存储在数据库中,或者存储在磁盘文件中,XM

2020-09-30 09:58:32 242

原创 一个小练习

输入123 456 789输出147258369输入:123 456 789 111输出:147125813691public class Jianxin { //[123,456,789] //147258369 public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.nextLine(); String.

2020-09-20 11:44:02 212

原创 位图法

位图法位图法就是bitmap的缩写,所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。应用场景一、给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中。解法:我们可以申请512MB内存(51210241024(bit)>40亿)一个比特位代表一个值读入40亿个数,设置相应的bit位读入要查询的数,查看相应bit位是否为1,为1表示存在,为0表

2020-08-19 21:05:06 1123

原创 不同路径/最小路径和

一、不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?输入: m = 3, n = 2输出: 3解释: 从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向下 -> 向右向下 -> 向右 -> 向右分析:动态规划:定义dp[i][j]表

2020-08-17 16:35:29 288

原创 项目二的测试

自动化测试代码:from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.common.keys import Keysimport timebrowser = webdriver.Chrome()browser.get("http://39.98.227.201:8080/chatroom/")time.

2020-08-16 22:30:59 141

原创 单词搜索(给定一个二维网格和一个单词,找出该单词是否存在于网格中)

力扣从二维数组中找字符串是否存在,而且同一个元素不能重复使用。这是字符串匹配类型题目,要记住方法。将二维数组简化成字符串,也就是字符串匹配了(依次遍历每个元素,将其当做开头,开始匹配)。1、可以想到的是使用回溯法。2、不能重复使用,想到用一个数组来标记每个元素的使用情况。3、其实就是一个字符一个字符地匹配,当前字符相同,则向四周匹配。4、从二维数组哪个字符开始匹配呢?遍历二维数组,依次将字符当做第一个字符跟字符串开始匹配。package bytetens;/** * @author

2020-08-10 17:17:58 2045

原创 合并区间

力扣56题分析:首先我们需要清楚什么时候需要合并区间?我们举一个例子比如区间[1,3]、[15,18]、[2,6],首先我们对其排序后为[1,3]、[2,6],[15,18]、然后取第一二区间[1,3],[2,6],比较3>2说明可以合并。使用双指针,左边指针指向当前区间的开始使用一个变量来记录连续的范围 t右指针开始往后寻找,如果后续的区间的开始值比 t还小,说明重复了,可以归并到一起此时更新更大的结束值到 t 直到区间断开,将 t 作为区间结束,存储到结果里然后移动左指针

2020-08-08 12:46:55 200

原创 两个数组的交集

问题: 给你两个数组,求两个数组的交集。比如: A = [1, 4, 7, 3, 5] , B = [2, 9, 3, 8, 5], 那么交集就是 [3, 5].解法一:每一次从B数组中取一值,然后在A数组里逐个比较,如果有相等的,则保存。该算法复杂度为 O(MN). M, N 分别为数组 A B 的长度。 List<Integer> list=new ArrayList<>(); for (int i = 0; i < a.lengt

2020-08-02 23:30:03 417

原创 整数拆分

给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。public class 整数拆分 { public int integerBreak(int n) { int[] dp=new int[n+1]; dp[1]=

2020-08-01 19:27:04 143

原创 最长公共子串

给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。输入 1AB2345CD 12345EF输出 2345分析:class Demo{ /** * 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。 * @param s1 * @param s2 * @return */ private static int sameLongStrLen(

2020-07-31 23:19:00 385

原创 DNS域名解析过程

目录为什么会有域名呢?域名的解析过程递归查询和迭代查询为什么会有域名呢?这是因为点分十进制的ip不容易记忆域名的解析过程域名解析总体可分为一下过程:(1) 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.(2) 如果没有, 就向上级域名服务器进行查找, 依次类推(3) 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址(4) 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程具体可描述如下:主机

2020-07-31 11:18:54 293

原创 线程池

目录线程池什么是线程池?线程池的七大参数线程池什么是线程池?线程池就是提前创建若干线程,如果有任务要处理,线程池就会处理,处理完后线程并不会销毁,而是等待下一个任务,由于创建和销毁线程是消耗资源的,所以当你想要频繁创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能线程池的七大参数public ThreadPoolExecutor(int corePoolSize,//核心线程数 int maximumPoolSize,//线程池最大

2020-07-30 16:41:00 108

原创 百度测开提前批一面面经

目录1.首先进入就是自我介绍,巴拉巴拉2.然后他说看你是软件工程的,那你说一下你们软件工程开发项目的步骤3.接下来就是自己项目的表结构,手写自己的表,然后根据自己的表查询最近一个小时发布的文章作者4.如何加快查询效率5.内存泄露6.gc()7.测试当前视屏会议的界面8、三次握手9、TCP、udp、udp应用10、osi11、一个代码题12、bug的生命周期13、自己项目如何测试的14、因为简历上写了了解selenium和loadrunner,就问了selinum的缺点15、手撕快排16、还问了如果自己的一个

2020-07-20 16:44:41 811

转载 WebSocket原理

知乎转载参考目录什么是WebSocket几种与服务端实时通信的方法WebSocket连接过程WebSocket API什么是WebSocket首先需要明白webSocket的概念,下边是维基百科的解释WebSocket是一种通信协议,可在单个TCP连接上进行全双工通信。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输。首先,要明白We

2020-07-17 12:11:16 334

原创 selenium---自动化测试工具

目录稍微了解下自动化测试自动化测试方法区分冒烟测试和回归测试自动化测试的适用对象Selenium WebDriver的工作原理webdriver常用的API元素的定位根据id定位根据name定位根据class name定位通过link text定位通过 partial link text定位根据tag name(标签名)定位通过xpath定位通过css selector定位操作测试对象稍微了解下自动化测试自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运

2020-07-16 15:17:24 922 1

原创 手机端扫码支付测试用例

2020-07-13 08:57:58 2588

原创 字节测开实习一二面凉经

今儿参加了字节的测试开发实习面试,一面大概持续了50分钟,问了一些基础知识,然后面试官让等了4分钟就进入了2面,二面大概持续了40分钟就结束了,问了一点项目,然后就是java基础知识和测试相关基础知识及写测试用例,最后手撕代码,就结束了,也就凉了。目录一面浏览器输入网址会发生什么黑盒测试和白盒测试常用方法TCP三次握手进程和线程的区别进程有几种状态了解多线程吗,说一下什么是多线程,多线程一般会引发什么问题及解决方法?死锁乐观锁和悲观锁多线程实现方式ArrayList和LinkedList区别了解AOP嘛?

2020-07-10 11:16:00 1843 2

原创 工厂模式

目录工厂模式什么是工厂模式?代码示例介绍工厂模式什么是工厂模式?属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。代码示例public interface Shape { void draw();}class Square implements Shape{ @Override public void draw() { System.ou.

2020-07-02 16:50:19 1660

原创 模板模式

目录模板模式什么是模板模式?代码示例介绍模板模式什么是模板模式?在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。代码示例public abstract class Game { abstract void initGame(); abstract void startPlay(); abstract void endGam

2020-07-02 15:59:00 137

原创 面试题整理

目录进程之间的通信方式怎么判断一个线程获得了锁给你一个场景,让你移动/opt目录下的今天创建的文件用过网络抓包吗,如果ping不通的话,应该咋排查问题黑盒测试白盒测试的方法,项目中是咋运用体现的:ARP协议DNS在哪工作进程之间的通信方式管道:半双工的通信方式,数据只能单向流动,且只能在有亲缘关系(父子进程或兄弟进程)的进程间使用;命名管道:FIFO,半双工的通信方式,但允许在无亲缘关系的进程间通信;消息队列:消息的链表,存放在内核中,并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能

2020-07-01 01:17:21 214

原创 微信发红包测试用例设计

2020-06-30 13:18:43 1537

原创 测试面试的常见问题

目录你为什么选择了测开/测试而不是开发?你认为一个优秀的开发人员应该具备哪些基本素质?你认为测试人员在项目中有什么作用(扮演了什么角色)当你发现bug后,测试人员却不认为这是个bug怎么办(即你俩有了冲突)加入你测试的一个项目,第一年测出来1000个bug,第二年2000个bug,第三年3000个bug,请问你觉得自己测试能力是提高了还是降低了?你为什么选择了测开/测试而不是开发?对于软件测试这个行业:软件测试有很大的发展空间和前景。软件测试并不比软件开发轻松,也不比软件开发简单,选择软件测试并不是觉得

2020-06-30 12:33:36 1469

原创 SQL之事务

目录事务什么是事务事务四大特性什么是脏读、不可重复读、幻读事务隔离级别MySQL中哪些存储引擎支持事务?事务什么是事务事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。比如你将一个交通银行卡里的100万钱转到建设银行,查询交行卡账户的余额是否大于100万从交行卡账户余额中减去100万在建设账户余额中增加100万以下语句对应创建了一个转账事务:STARTTRANSACTION;SELECT bal

2020-06-29 23:36:03 236

原创 说一下Mysql索引

目录索引什么是索引索引能干什么?索引的分类MySql中索引默认结构为B+树,为什么不是B树、Hash,二叉树,红黑树?总结索引什么是索引帮助数据库高效获取数据的数据结构索引能干什么?当表中数据量越来越大时,索引可以明显提高查询效率,当然索引并不是越多越好索引的分类MySql中索引默认结构为B+树,为什么不是B树、Hash,二叉树,红黑树?B树:因为其不管是叶子节点还是非叶子节点都会保存数据,这样导致在非叶子节点中能保存的指针数量变少,指针少的情况下要保存大量的数据,只能增加树的高度,

2020-06-26 00:03:05 507

原创 synchronized剖析

目录synchronizedsynchronized的基本使用请分析一下同步方法和同步代码块的区别是什么?synchronized底层原理synchronized优化(jdk1.6)对象头无锁、偏向锁、轻量级锁、重量级锁有什么差别?升级过程如何?锁粗化锁消除synchronized在《Thinking in Java》 中,是这么说的:对于并发工作,你需要某种方式来防止两个任务访问相同的资源(其实就是共享资源竞争)。防止这种冲突的方法就是当资源被一个任务使用时,在其上加锁。第一个访问某项资源的任务必须锁

2020-06-25 12:27:56 172

原创 和为target的两个数

1.暴力暴力算法时间复杂度O(n²),空间复杂度O(1)public static int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i; j < nums.length; j++) { if(nums[i]+nums[j]==target) { r

2020-06-25 00:53:24 261

原创 https 工作原理剖析

目录HTTPS(安全套接字层超文本传输协议)工作原理Https与Http的区别HTTPS(安全套接字层超文本传输协议)我们知道http协议传输的数据都是未加密的,也就是明文传输(内容容易被窃听)、不验证通信方身份(容易伪装)、无法确定报文完整性(内容易被篡改)、是不安全的。因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决这个问题我们的Https就产生了。HTTPS在HTTP的基础上加入了SSL(安全套接层)协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器

2020-06-19 16:01:42 204

空空如也

空空如也

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

TA关注的人

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