笔试强训16天

目录

选择题

编程题 


选择题

  • 第一个delete删除成功,第二能够成功执行,只不过是没有删除数据
  • 两个select也不会发生冲突

MySQL实现了四种通信协议

  1. TCP/IP协议,通常我们通过来连接MySQL,各种主要编程语言都是根据这个协议实现了连接模块
  2. Unix Socket协议,这个通常我们登入MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件,文件的存放位置在配置文件中有定义,值得一提的是,这是所有协议中最高效的一个。
  3. Share Memory协议,这个协议一般人不知道,肯定也没用过,因为这个只有windows可以使用,使用这个协议需要在配置文件中在启动的时候使用–shared-memory参数,注意的是,使用此协议,一个host上只能有一个server,所以这个东西一般没啥用的,除非你怀疑其他协议不能正常工作,实际上微软的SQL Sever也支持这个协议
  4. Named Pipes协议,这个协议也是只有windows才可以用,同shared memory一样,使用此协议,一个host上依然只能有一个server,即使是使用不同的端口也不行,Named Pipes 是为局域网而开发的协议。内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。第二个进程可以是本地的(与第一个进程位于同一台计算机上),也可以是远程的(位于联网的计算机上)。正因为如此,假如你的环境中没有或者禁用TCP/IP环境,而且是windows服务器,那么好歹你的数据库还能工作。使用这个协议需要在启动的时候添加–enable-named-pipe选项
     

  • 不能重复读:一个事务t1修改,另一个事务t2分别再t1修改前后读取数据,两次读取的数据值不一样
  • 一个事务t1先修改值,然后另一个事务t2读取值,t1事务rollback回滚,这时t2就是读取脏数据

  •   一个事务获取排他锁,对数据能够做任何操作,其他事务对该数据不能做任何操作

 

 

编程题 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          //将求约数和求完全数放一起
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int count=0;
        for (int i = 2; i <=n  ; i++) {
            int sum=0;
            for (int j = 2; j*j <=i ; j++) {
                if(i%j==0){
                    if(i/j==j){
                        sum+=j;
                    }else {
                        sum+=j+i/j;
                    }
                    
                }
            }
            if(sum+1==i){
                count++;
            }
    }
        System.out.println(count);
    }
}
  •  将求完全数和求约数放在一起算

import java.util.*;
public class Main{
    public static void main(String args[]){
        String num[]=new String[2];
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        num=str.split("-");
        num[0]=num[0].replaceAll("10","1");
        num[1]=num[1].replaceAll("10","1");
        String s="34567891JQKA2";
        String result=null;
        if(num[0].equals("joker JOKER") ||num[1].equals("joker JOKER")){
            result="joker JOKER";
            //因为王王炸最大
        }else  if(num[0].length()==num[1].length()){
            //如果两个牌的长度一样
            //可能是两个炸弹 那么比较谁的牌大就行
            //可能是两个顺子,比较谁的第一种排大就行
            //如果是个子,也是比较第一张排
            //如果是对子,也是第一张排
            if(num[0].length()==5){
                int n1=s.indexOf( num[0].charAt(0))+s.indexOf( num[0].charAt(2))+s.indexOf( num[0].charAt(4));
                int n2=s.indexOf( num[1].charAt(0))+s.indexOf( num[1].charAt(2))+s.indexOf( num[1].charAt(4));
                if(n1>n2){
                   result=num[0];
                }else {
                   result=num[1];
                }
            }else {
                //如果两个牌的长度一样
                //可能是两个炸弹 那么比较谁的牌大就行
                //可能是两个顺子,比较谁的第一种排大就行
                //如果是个子,也是比较第一张排
                //如果是对子,也是第一张排
                if (s.indexOf((num[0].charAt(0))) > s.indexOf(num[1].charAt(0))) {
                    result=num[0];
                } else {
                    result=num[1];
                }
            }
        }
        //还需要比较炸弹跟别人的情况
        else if(num[0].length()==7){
            result=num[0];
        }else if(num[1].length()==7){
            result=num[1];
        }else {
            //此时两个牌不是一种类型,且没有炸弹
            result="ERROR";
        }
        System.out.println(result.replace("1","10"));
    }
    
}
  •  第一个点就是关于怎么处理排之间的大小问题,用字符串来处理用一个字符在字符串的位置对应它牌的大小
import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        String[] pp=str.split("-");
        String[] p1=pp[0].split(" ");
        String[] p2=pp[1].split(" ");
        String p="34567891JQKA2";
        if(pp[0].equals("joker JOKER") || pp[1].equals("joker JOKER")){
            System.out.println("joker JOKER");
        }else if(p1.length==p2.length){
            if(p.indexOf(p1[0].substring(0,1))>p.indexOf(p2[0].substring(0,1))){
                System.out.println(pp[0]);
            }else{
                System.out.println(pp[1]);
            }
        }else if(p1.length==4){
            System.out.println(pp[0]);
        }else if(p2.length==4){
            System.out.println(pp[1]);
        }else{
            System.out.println("ERROR");
        }
    }
}

  • 这种写法用split来讲空格去掉
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

库里不会投三分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值