招商网络面试

招商网络面试(2021-9.16)

问题:

  1. 说一下String的一些api,比如拼接,拼接的话一般用什么类(StringBuilder、StringBuffer);
  2. 栈的max函数实现:
    A、两个栈,B、一个栈一个队列,C、一个栈一个最小堆,D、两个队列
  3. 写一个函数,把十进制数转换成二进制;
  4. sql建表语句(Student)、update语句、清空表操作(delete from 表名;或者truncate table 表名,说一下delete的优点,delete和truncate分别属于什么类型语言);
  5. 序列化和反序列化:
    比如将Student序列化步骤,反序列化步骤
  6. 设计模式!!!(赶紧学,别拖了)
  7. …(其他一些小问题忘了o(╥﹏╥)o)

答案:

  1. 栈的max函数实现:

  2. 写一个函数,把十进制数转换成二进制:

    public class Main {
    
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            int mod = a % 2;
            a /= 2;
            String result = "";
            while (a != 0) {
                result = mod + result;
                mod = a % 2;
                a /= 2;
            }
            result = 1 + result;
            System.out.println(result);
            sc.close();
        }
    }
    
  3. sql建表语句(Student)、update语句、清空表操作(delete from 表名;或者truncate table 表名,说一下delete的优点,delete和truncate分别属于什么类型语言):

    CREATE TABLE student (
      no bigint(20) PRIMARY KEY,
      name varchar(20) NOT NULL,
      age int(3)
    );
    
    INSERT INTO student(no,name,age) VALUES(1,'lisi',22),(2,'zhangsan',18);
    
    UPDATE student SET name='wangwu' WHERE no=1;
    
    -- 第一种清空表方式
    DELETE FROM student;
    -- 第二种清空表方式
    TRUNCATE table student; -- 或者TRUNCATE student;
    
    -- delete属于DML(数据操纵语言),truncate属于DDL(数据定义语言)
    

    delete和truncate比较:

    • delete可以有where条件,truncate不可以有where条件;
    • truncate删除效率比delete高一点;
    • 假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从端点处开始,而truncate删除后,再插入数据,自增长列的值从1开始;
    • truncate删除后没有返回值,delete删除后有返回值;
    • delete是DML语句,不会自动提交、truncate都是DDL语句,执行后会自动提交;
    • truncate删除后不能回滚,delete删除后可以回滚。
上一篇:23种设计模式 这栏文章让你拿捏得死死的 学不会来打我——行为性模型——策略模式


下一篇:如何在Linux中使用 Truncate 命令