笛卡尔乘积SQL

笛卡尔乘积SQL,第1张

1.笛卡尔乘积SQL
表进行联合查询,表一有5条记录,表二有3条记录,5*3种选择。
避免方式:做连接的时候要加上  连接的key

2.冒泡排序
public static void bubbleSort(int[] arr){
    for (int i = 0; i < arr.length; i++){
        for (int j = 0; j < arr.length - 1 - i; j++){
            if (arr[j] > arr[j + 1]){
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
}

3.有7g,2g砝码各一个,天平一只,如何只用这些物品三次将140g的盐分成50g,90g各一份?

不用砝码,将 140 g 盐用天平分成 70g + 70g
不用砝码,将 70 g盐用天平分成 35g + 35g
用天平将一份 35g 盐分为 20g盐 + 2g砝码 = 15g盐 + 7g砝码
将 20g与 70g盐并在一起就是 90g,剩下的是 50g


4.电脑没有网络的可能原因

硬件: 网线、网口端、路由器、交换机、光猫、运营商

软件:网卡、驱动、IP冲突、DNS、网络站点自身原因(没有续租)、浏览器、浏览器代理、宽带账号、宽带配置等


5.5L、7L水杯取得6L水
第一步把5L水杯装满倒入空7L杯中(还可装2L);
第二步再把5L水杯装满倒入7L杯中,倒了2L后满了,5L杯中还剩3L水;
第三步清空7L水杯,把5L水杯中剩下的3L水倒入7L杯中(还可装4L);
第四步把5L水杯装满倒入7L杯中,倒了4L后满了,5L杯中还剩1L水;
第五步再清空7L水杯,把5L水杯剩下的1L水倒入7L水杯中;
第六步再把5L水杯装满倒入7L杯中,这时7L水杯中就是6L的水了。


6.C和C++区别为
结构不同:C语言结构只有成员变量,而没成员方法
设计不同:C++多了基于对象的程序设计
函数库不同:C++ 紧密的集体

7.http工作原理
客户端、服务端的连接模式
建立在tcp上,三次握手、四次挥手
一次性的链接
无状态协议
http请求方法9种,常见的是post、get
端口80

8.
301 redirect: 301 代表永久性转移(Permanently Moved)
302 redirect: 302 代表暂时性转移(Temporarily Moved )
304    服务端已经执行了GET,但文件未变化
网站调整(如改变网页目录结构)
网页被移到一个新地址

9.求质数


// 定位userid(select、group )>>   >>    >>   >>
  select (
      select client_id, count(client_id) in (select client_id, count(client_id)) group client_id 
  ) left join 


//性能测试遇到的问题,是否有分析过原因
//数据库的表类型(基本表、虚拟表、导出表)
//内部类和子类(结构不同、访问权限不同)
//python元组和数组区别(结构一样、“元”组内不可更改)
//python实现string、int互转(string > int :int()、 str())
//使用到的中间件


10.挑苹果

有100个苹果,平均分为10筐,其中一筐中的每个均为0.5公斤,其他九筐中的每个均为0.55公斤,
给你一个称,让你一次区别开哪个筐中的苹果为0.5公斤?

10筐编号1-10,1号筐拿1个,2号拿2个.....10号拿10个,
一起称得为X,(0.55*55-X)/0.05所得的整数为0 .5公斤苹果所在框数

11.各类型值与0比较

不可将布尔变量直接与TRUE、FALSE或者1、0进行比较
应当将整型变量用 “==”或“!=”直接与0比较
不可将浮点变量用 “==”或“!=”与任何数字比较


12.造成TPS波动的原因分析
1)代码程序原因:
定时器任务、容器、索引发成重置、业务规则(如排队、一秒只处理10条请求等)
硬盘有规律的写入:
2)日志写入、redis持久化,磁盘写入时会被占用造成无法提供服务
3)服务分布式部署、负载均衡

13.造成TPS曲线毛刺
1)网络波动
2)活锁
3)服务挂了
4)黑白名单限制


13.判断字符串是否IP格式
114.114.114.114

方法一;
public boolean make(string s){
    int len = s.length();
    int cntdot = 0;
    for (int i = 0; i < len; i++){
        if (s.charAt(i) - '0' == '.' || (s.charAt(i) - '0' < '0' && s.charAt(i) - '0' > '0')) return false;
        if (s.charAt(i) - '0' == '.') cntdot++;
    }
    if (cntdot != 3) return false;
    String[] list = s.split(".");
    if (list.length != 4) return false;
    for (string str : list){
        if (str.charAt(0) - '0' == '0') return false;
        int num = String.valueOf(str);
        if (num > 255 || num < 0) return false;
    }
    return true;
 
}

方法二:
public boolean make(string s){
    int len = s.length();
    int cntdot = 0;
    for (int i = 0; i < len; i++){
        if (s.charAt(i) - '0' == '.' || (s.charAt(i) - '0' < '0' && s.charAt(i) - '0' > '0')) return false;
        if (s.charAt(i) - '0' == '.') cntdot++;
    }
    if (cntdot != 3) return false;
    StringBuffer sb = new StringBuffer;
    for (int i = 0; i < len; i++){
        (s.charAt(i) - '0' == '.' && s.charAt(i + 1) - '0' == '.') return false;
        if (s.charAt(i) - '0' == '.') continue;
        while (s.charAt(i) - '0' >= '0' && s.charAt(i) - '0' <= '9'){
            sb.append(s.charAt(i));
            i++;
        }
        int num = Integer.valueOf(sb.tostring());
        if (num > 255 || num < 0) return false;
        else sb = new StringBuffer;
    }
    return false;
}


//MySql数据库主键及索引的区别
范围主键 < 索引 ,主键一定是唯一性索引,唯一性索引并不一定就是主键
一个表中可以有多个唯一性索引,但只能有一个主键
主键列不允许空值,而唯一性索引列允许空值

//GC中如何判断对象是否需要被回收?
可达性分析算法(ROOT搜索引用链)、引用计数算法

//抖音短视频切换出现闪退原因
缓存垃圾过多、运行程序过多、系统(app)版本不兼容、网络原因、杀毒拦截等

//redis持久化方式
redis是一个内存数据库,数据保存在内存中(容易丢失)持久化的机制,
分别是RDB(Redis DataBase)和AOF(Append Only File)
RDB数据以快照的形式保存在磁盘上

redis大key
1:单个简单的key存储的value很大
2:hash, set,zset,list 中存储过多的元素(以万为单位)
3:一个集群存储了上亿的key,Key 本身过多也带来了更多的空间占用


快排

public class Solution {

    public static void quickSort(int[] arr){
        quickSort(arr,0,arr.length-1);
        System.out.println(Arrays.toString(arr));
    }
    public static void quickSort(int[] arr,int left,int right){
        int middle;
        if(left < right){
            middle = partition(arr,left,right);
            quickSort(arr,left,middle-1);
            quickSort(arr,middle+1,right);
        }
    }

    public static int partition(int[] arr,int left,int right){
        int pivot = arr[left];
        while(left < right){
            while(left= pivot)
                right--;
            arr[left] = arr[right];
            while(left < right && arr[left]<= pivot)
                left++;
            arr[right] = arr[left];
        }
        arr[left] = pivot;
        return left;
    }
}


有没有你印象最深刻的BUG?
提交bug是怎么发现的?bug主要来源是什么?
最复杂的模块是啥?

pytest原理?

https://juejin.cn/post/6977171333922684958

elasticsearch效率为何比数据库高?
https://blog.csdn.net/weixin_42105169/article/details/112221100

ES 是基于Lucene(卢森)的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的索引数据,相对于 MySQL 来说不擅长经常更新数据及关联查询
倒排索引(全文索引),查找每个词条(分词)出现的位置和频率,并按照词条顺序归纳为文件(就是索引),这样查找某个词时就很快定位到其出现的位置

kafka原理?
https://segmentfault.com/a/1190000018373144

类似组件:rabbitMQ、activeMQ、rocketMQ

在Kafka中的每一条消息都有一个topic。一般来说在我们应用中产生不同类型的数据,都可以设置不同的主题。
一个主题一般会有多个消息的订阅者,当生产者发布消息到某个主题时,订阅了这个主题的消费者都可以接收到生产者写入的新消息

消费模型有两种:推送模型(psuh)和拉取模型(pull)


pytest和unittest的区别
1.uninttest是python的官方库,兼容性稍好。 pytest在安装时可能会出现和python版本不匹配的问题

2.uninttest在编写用例时是以类的形式编写的,并且都要继承testCase, pytest当中支持函数和类两种编写形式,
并且pytest有conftest.py这个文件来支持全局的共享前置后置

3.在用例收集上,uninttest要利用testloader和testsuite来主动收集和加载用例,而pytest能够自动识别用例

4.在用例分类筛选上uninttest稍显麻烦,而python可以通过打标签轻松筛选用例

5.如果运行失败的话,uninttest官方没有提供失败重启的机制,而pytest自带失败重启的机制。

6.在运行结构方面,uninttest没有支持插件,而pytest中有700多个插件可以支持


JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个开源的单元测试框架。它属于白盒测试,只要将待测类继承 TestCase 类,就可以利用 JUnit 的一系列机制进行便捷的自动测试了。
 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/792728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存