- 博客(109)
- 收藏
- 关注
原创 腾讯云面试题-重复的字符串+设计测试用例
3)当子串长度为n时,s[i]位置s[i+n]位置的值应一致。python的all()函数:判定给定的迭代参数是否都为true。3、字符串长度为2,判断首尾字符是否相等,相等则为true。1)子串最大长度不能超过字符串的一半。2、字符串长度为1,则为true,是由子串构成的。2)子串个数是字符串的偶数倍。4、字符串长度大于2,则需要「枚举」子串。1、字符串长度为空,则返回false。
2023-05-12 19:47:14
625
原创 浅谈Flask框架和Django框架
采用了MTV的框架模式,即模型M,视图V和模版T。是一个重框架,功能齐全,多被用于大型网站开发。轻量级web框架,对比其他框架简单、易洁、快速上手。
2023-04-19 23:12:07
224
原创 浅谈thrift协议+举例通用mockserver如何实现
2)开发者无需关注不同语言/相同语言服务间如何通信,只需定义IDL协议(接口方法+数据类型)便可。1)是一个跨平台跨语言的通信协议,定义和创建跨语言服务,是一个高性能、轻量级RPC框架。thrift编译器自动生成的代码,高效的接收请求,负责对客户端的请求做出响应。协议层,对数据进行序列化和反序列化(数据类型解析)2)改写底层架构,Processor用户。不重复)、请求参数精准识别出服务名?协议层,对数据进行序列化和反序列化。」获得真实服务名,归一化到一个。服务名列表」获的服务名列表,传输层,传输数据功能。
2023-04-19 02:35:58
534
原创 环境安装(python+java+go+redis+mysql+前端)
GOPATH目录有3个约定的子目录:src(存放原代码,.go .c .h .s等)pkg ( 编译后生成的文件 .a)代码存放目录为/Users/didi/Desktop,所以设置/Users/didi/Desktop为GOPATH路径。https://github.com/Riant/host-switch-plus chrome安装代理转发。1、go版本下载:https://golang.google.cn/dl/3、查看go版本号:go version。4、查看go安装路径:which go。
2023-04-12 03:06:43
436
原创 GO语言学习-资料&调试工具&语法
覆盖率统计维度:(小维度 ->大维度)指令覆盖率 行覆盖率 分支覆盖率 方法覆盖率 类覆盖率 圈复杂度jacoco原理jacoco使用插桩的方式记录覆盖率数据,通过一个probe探针注入。...
2023-01-28 17:37:06
1799
1
原创 mysql、mysqldump导出与导入sql文件
将sql文件导出导入数据库方法一:导入导出的是sql语句导出sql文件:mysqldump --single-transaction --host $ip -P $ip_port -u$dbUser $dbName--skip-lock-tables --tables $table > test.sql导入:mysql -u$dbUser -p$dbPassword -h$ip -P$ip_port -D$dbName -e "source test.sql";方法二:需要连接表...
2021-05-10 11:10:02
2092
原创 【Python】学习之旅
【os.path篇】os.path.abspath(__file__) #获取当前脚本的完整路径 os.path.dirname(path) #去掉文件名,返回目录 os.path.dirname(os.path.abspath(__file__)) #组合使用,返回当前脚本所在的目录...
2020-07-31 11:30:12
221
1
原创 【Python】装饰器
函数装饰器类装饰器:python中一切都是对象,函数是一个对象,类也是一个对象函数是一个对象,函数对象都是可调用对象(所谓的可调用对象就是对象名()),但类是一个对象,但类对象是不可调用对象。为了让类对象是一个可调用对象:需要重写类中的def __call__(self)方法class Preson: def __init__(self, fn): self.fn = fn print ("____init____") def...
2020-07-15 19:13:22
97
原创 【高并发编程】Python中多进程多线程
多进程Python提供multiprocessing模块来实现多进程,可以跨平台版本,multiprocessing模块提供了Process 类来表示一个进程对象。Linux/Unix操作系统提供了fork()系统调用,来实现父子进程。子进程永远返回0,父进程返回子进程的ID。多进程实现import multiprocessingimport osclass subMp(multiprocessing.Process): """ 继承多进程multiprocessi.
2020-06-18 15:24:21
221
原创 【Linux】排查crontab任务没有执行的问题?
前介在Linux系统中,经常使用crontab命令来实现定时任务,因此会有定时任务没有执行的问题。排查思路(1)查看crond进程是否启动/sbin/service crond status -> crond dead but pid file exists(2)重启crond进程/sbin/service crond restart...
2020-06-13 15:39:16
891
原创 【滴滴面试题】【Python】迭代器与生成器
什么是迭代器(1)迭代器是用来访问集合元素的一种方式。(2)迭代器对象从集合的第一个元素开始访问,直到结束,迭代器只会前进不会后退。(3)迭代器有2个基本方法:iter(),next()
2020-06-12 01:52:13
269
原创 【多态】Python实现多态
什么是多态呢? 简单粗爆的理解就是:接口可以用不同的方式实现,可以写出通用的代码 子类对父类中的函数进行了重写,当父类的指针(或引用)指向子类的对象时,调用的是子类重写后的函数那么这就引入了重写和重载的概念? 重载:函数名相同,参数列表不同,重载只在类的内部实现。在调用时,会根据传参不同调用不同的函数。 重写:也要覆盖,子类重新定义父类中有相同名称和参数的虚函数,主要在继承中体现。C++实现多态需要必备3大特性? (1)要有继承 class B: publicA {...
2020-05-18 20:31:39
327
原创 【git】svn与git
1、svn:(1)svn commit --username "wangwanrong01" -m 'ISSUE=5867199;' statistic.py 往服务器上提交代码(2)svn revert statistics.py 撤回已经add的文件,但这个命令比较危险,一旦撤回不能恢复2、git:git clone 。。。是本地没有代码库。git fetch/pull ....本地有了代码库。git init : 把目录变成git可以管理的仓...
2020-05-18 19:38:27
251
2
原创 【二叉树前序遍历】Python实现二叉树前序遍历
#-*- coding: utf-8"""date:5-14function: 用非递归的方式前序遍历二叉树(中左右)用对了(先入先出的一种线性表数据结构)来实现前序遍历"""class Node(object): def __init__(self, root='', left='', right=''): """构造函数""" self.root = root self.left = left self.right .
2020-05-16 15:31:41
324
原创 【Nginx】Nginx的原理及应用
nginx是什么,一般都用于在那些场景下的呢?nginx是一个轻量级,高性能的http服务器/反向代理服务器,占用内存小,并发能力强。怎么作为http服务器使用:...
2020-03-29 21:24:16
137
原创 【头条面试题】【Redis】Redis的原理和使用
Redis原理:redis是高性能的key-value数据库; redis支持数据的持久化,即将内存中的数据存数在磁盘中,重启的时候再次加载进行使用; redis支持master-salve模式的数据备份; redis所有的操作都是原子性的,即要么成功执行要么不执行; redis支持丰富的特性,支持publish/subscribe、通知、key过期等等特性;Redis的高性能体现:...
2020-03-23 02:47:38
300
1
原创 【头条面试题】【网络协议】HTTP与HTTPS的区别
http与https的最本质的区别是:该协议被用于在web浏览器和服务器间传输信息; http全称是超文本传输协议,使用端口80; https全称是安全超文本传输协议,使用端口443,是在http协议的基础上加了SSL/TSL加密传输信息的协议;...
2020-03-22 23:34:57
207
原创 头条面试题(MYSQL——连表查询&having用法)
题目:部门表(员工姓名,部门名称,工资)department(personnel,name,salary)等级表(工资等级,等级下限,等级上限)grade(level,upper,lower)问题1:求平均工资大于5000的部门名称和部门的平均工资问题2:求每个员工名称,工资,工资等级select personnel, salary, level from de...
2020-03-07 20:18:55
1014
原创 百度面试题------将一个电分十进制的IP地址转换为一个32位的整数,要求一一对应
解题思路:IP地址通常是用点分十进制表示,但它其实是一个32位的二进制。10.2.3.5000001010.00000010.00000011.00000101每一个部分都是一个字节,8个bit位。int IpToInt(string s){ int ret=0; int num=0; for(int i=0;i<s.size();i++) { if(s[i]!='.
2017-09-22 12:24:18
2221
原创 用两队列实现一个栈
class Stack{public: void push(int data) { q1.push(data); } int pop() { int ret=0; if(!q1.empty()) { while(q1.size()>1) { int data=q1.front(); q2.push(data);
2017-09-22 11:33:49
204
原创 58面试题-----用两个栈实现一个队列
题目:class Solution{public: void push(int node) { stack1.push(node); } int pop() { int ret=0; if(stack1.size()==1&&stack2.size()==0) stack1.pop();
2017-09-22 11:00:24
250
原创 小米面试题-----将二叉树打印成多行
题目:将处于同一层的打印成一行。方法1:定义一个嵌套的vector(vector>),把处于同一层的保存在一个vector中。class Solution {public: vector > Print(TreeNode* pRoot) { vector> v; //特别关键 if(pRoot==NULL)
2017-09-22 10:25:33
384
原创 最长公共子串(动态规划的思想)
//最长公共子串void Lsc(){ string s1="abcde"; string s2="bebcd"; int max=0; int end=0; int row=0; int col=s2.size()-1; int length=s1.size(); while(row < length) { //开始向右下方遍历 int i=row; int j
2017-09-10 22:28:53
367
原创 数据库中的左连接和右连接
1、两张表的内容为:2、左连接(Left Join):只影响右表中的内容,结构集为左表的内容+右表中与左表相匹配的内容。也就是表明左链接是以关键字左边的表为主,在加上右表与左表相匹配的内容。
2017-09-06 14:45:28
8054
原创 Cookie和Session的区别与联系
1、为什么会有Cookie和Session的出现:因为当我们在访问浏览器时,服务器不会为客户端保存它上一次访问的内容,每一次访问都是独立的。为了方便用户的访问,所以就出现了这两个机制,使访问服务器时可以保存以前访问的内容。2、Cookie:Cookie是由服务器端生成的,并发送给客户端,然后保存在本地。Cookie可以让
2017-09-05 17:26:30
223
原创 shell脚本编程(二)------面试题
1、指定目录下的所有的文件名#!/bin/bashdata=$(find ~ -name $1) //找到文件夹所在的目录echo $datacd $datals2、统计日志文件a.log中有多少行包含error#!/bin/bashcat $1 | grep -i -c '\' 注意:-i :忽略大小写的匹配 -c:输出总共匹配到多少行
2017-09-04 16:18:18
357
原创 shell脚本编程(一)
1、注意:(1)在shell脚本中退出码为0,表示执行成功,非0表示执行不成功(与C语言相反)。(2)内置命令:执行时不会创建子进程,相当于执行函数(cd ../echo)。(3)shell脚本中变量没有类型,默认都是字符串。(4)$?表示上条指令的退出码。2、条件测试:test/[ (1)测试一个条件是否成立,成立该命令的退出码为0,否则为1。(2)eq:相等 ne
2017-09-04 12:39:35
353
原创 Linux-awk命令
1、awk是以行为单位处理文件,还能以列为单位处理文件,默认的列分割符为空格和Tab。基本命令:(1)awk option 'script' filescript:/pattern/{action} //pattern为正则表达式,action为一系列的操作。(2)从scriptfile文件中读取命令,对file文件进行操作。awk -f scriptfile fil
2017-09-01 19:17:23
175
原创 Linux-sed命令(基础和高级用法)
1、sed是流编译器,是文本处理非常常用的工具,也是使用正则表达式进行匹配,默认为基准模式。基本格式为:(1)sed option 'script' file 其中script为:/pattern/action //pattern为正则表达式,action为编辑操作。如果没有pattern,则对所有行进行action操作。(2)sed option -f scri
2017-09-01 18:39:25
517
原创 线程池的实现
为什么要使用线程池:因为线程的创建和销毁占了大量的CPU等系统资源,使用线程池可以解决这种情况,提高服务器的性能。线程池的思想:(1)先在内存中开辟出一些数目固定的线程。(2)当请求到达时,从线程池中选择一个空闲的线程来服务,服务完成时,线程放入线程池。(3)当请求到答时,没有空闲的线程,将请求放到任务队列中,等有空闲的线程时在处理。
2017-07-29 14:47:35
215
原创 源码剖析---------webbench(测压工具)
1、webbench:是一个压力测试工具,最多可以有3万个并发客户端发起请求,适用于小型的网站。主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL,部署简单,静动态均可测试。2、安装:特别简单,百度一下就知道。3、选项:在安装完成后,在命令行输入webbench或webbench -h或webbench -help,就可以知道他的它的命令选项有哪些。第一行是他该
2017-07-25 17:42:59
372
原创 判断两个链表是否相交,若相交,求交点
解题思路:链表相交有3种大的情况,两个链表都带环;都没带环;一个带环,一个没带环;1.两个链表都带环。2.一个链表带环,一个链表没有带环,则他们肯定不相交。3.两个链表都没带环。代码: //判断链表是否带环 Node* ListIsLoop(Node* head) { Node* solw=head; Node* fast=head; w
2017-07-18 11:01:21
242
原创 可重入函数与线程安全的区别与联系
可重入函数:主要用于多任务环境中,在函数执行任何时刻中断它,操作系统转而执行其他程序,从其他程序返回,继续执行这个函数并且不会出现错误。也就是它只使用自身栈上的数据,并不依赖任务环境(全局变量,static)。如果使用全局变量,当多个进程调用这个函数,会产生不可预估的结果。特点:(1)多次调用不会出错,不用担心数据被破坏。(2)任何时刻都可以被中断。数据不会丢失。(3)只使用局部变
2017-07-13 18:10:08
321
原创 用c语言实现继承和多态
继承和多态是C++的特性,它C语言没有这个特性。C++的三大特性:继承,多态,封装。继承:分为公有(public)继承,私有(private)继承,保护(protected)继承。用struct来模拟实现,因为struct在C和C++中都能可以使用,在C中称为结构体在C++中称为类,但他们的原理是一样的,又因为struct的限定符默认是公有的,在C中没有限定符这个概念,所以用C语言只能
2017-07-10 00:01:13
1022
原创 用C++实现单例模式
什么是单例模式:一个类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。#includeusing namespace std;#include//单例模式--》只能实现一个实例//多线程下不安全--》new Singleton不是原子操作//class Singleton//{//public:// static Singleton* GetSinglet
2017-07-07 18:32:49
226
原创 为什么fork()2次会避免产生僵尸进程
什么是僵尸进程:用fork()创建子进程后,子进程已终止但父进程没有对它进行善后处理,那么子进程的进程描述符就一直保存在内存中,子进程就是僵尸进程。怎么产生僵尸进程:1.父进程没有SIGCHLD信号处理函数,也就是没有调用wait()/waitpid()来获取子进程的退出状态,也就没存对进程描述符进行处理。2.父进程有调用wait()/waitpid()函数,但当子进程已终止时父进程还
2017-07-07 00:46:04
982
原创 不能被继承的类
解题思路:1、C++中的子类构造函数会自动的调用父类的构造函数,子类析构函数会自动调用父类的析构函数。那么把构造和析构函数定义为私有的,就不能被继承了。2、缺陷:定义为私有函数时,要在类外创建类的对象,只能实现成要么在栈上创建要么在堆上创建。//因为构造函数和析构函数都为私有的,所以他不能被继承//缺陷:它只能在堆上生成,不能在栈上生成。class A{public: sta
2017-07-06 00:22:52
751
原创 如何定义一个只能在栈上生成对象的类
这个题目考察了对C++语法的理解和应用。1.只能在栈上声明对象,说明这个类不能在堆上声明,也就是说不能用new来实现。2.把类的构造函数声明为protect,就可以达到在类外不用在堆上new,但这个也同时在类外不能在栈上声明对象,必须在类内实现一个接口,来达到在栈上声明对象。3.在类外调用成员函数,必须要用类的对象来调用,但是在类外不能声明类的对象,这个要怎么办呢??? 在类的
2017-07-05 17:53:46
361
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人