招商网络面试(2021-9.16)
问题:
- 说一下String的一些api,比如拼接,拼接的话一般用什么类(StringBuilder、StringBuffer);
- 栈的max函数实现:
A、两个栈,B、一个栈一个队列,C、一个栈一个最小堆,D、两个队列 - 写一个函数,把十进制数转换成二进制;
- sql建表语句(Student)、update语句、清空表操作(delete from 表名;或者truncate table 表名,说一下delete的优点,delete和truncate分别属于什么类型语言);
- 序列化和反序列化:
比如将Student序列化步骤,反序列化步骤 - 设计模式!!!(赶紧学,别拖了)
- …(其他一些小问题忘了o(╥﹏╥)o)
答案:
-
栈的max函数实现:
-
写一个函数,把十进制数转换成二进制:
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(); } }
-
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删除后可以回滚。