面经九2023.2.3.上笔试和群面
1、 根据指定的数据模型,完成对应SQl语句的编写
edu_class表
Student表:
要求1:使用左连接查询出year为2022的学生,且只查询出10条数据。
插入数据,
INSERT INTO `ed_class` VALUES(1,2,'李鹏','帅',2022);
INSERT INTO `ed_class` VALUES(2,2,'李飞','帅',2022);
INSERT INTO `ed_class` VALUES(3,2,'飞鹏','帅',2022);
INSERT INTO `ed_class` VALUES(4,2,'f','帅',2022);
INSERT INTO `ed_class` VALUES(5,2,'w','帅',2022);
INSERT INTO `ed_class` VALUES(6,2,'q','帅',2022);
INSERT INTO `ed_class` VALUES(7,2,'wq','帅',2022);
INSERT INTO `ed_class` VALUES(8,2,'qww','帅',2022);
INSERT INTO `ed_class` VALUES(9,2,'e','帅',2022);
INSERT INTO `ed_class` VALUES(10,2,'qu','帅',2022);
INSERT INTO `ed_class` VALUES(11,2,'vf','帅',2022);
INSERT INTO `ed_class` VALUES(12,2,'dg','帅',2023);
INSERT INTO `student` VALUES(1,20,'2','24','sd','李鹏','男','2000','中国','1355','sdc');
INSERT INTO `student` VALUES(2,18,'12','25','s','李飞','男','2000','中国','1355','sdc');
INSERT INTO `student` VALUES(3,19,'21','22','d','飞鹏','男','2000','中国','1355','sdc');
SQL语句:
SELECT * FROM `ed_class` e LEFT JOIN `student` b ON e.id=b.id WHERE YEAR=2022 LIMIT 10
要求2:模糊匹配学生姓名中包含”鹏”的学生并根据id字段降序排序
查询SQL语句
SELECT *FROM student WHERE NAME LIKE '%鹏%' ORDER BY id DESC LIMIT 3
2、请描述一下String 和Stringuilder、 StringBuffer的区别。
String是不可变的,StringBuffer,StringBuilder对象则代表一个字符序列可变的字符串
StringBuffer:线程安全,StringBuilder:线程不安全
StringBuilder性能较高于StringBuffer
3、请描述Spring框架中都用到了哪些设计模式
观察者模式: 模型(Model)-视图(View)模式,对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
工厂模式: 最常用的实例化对象模式,会给系统带来更大的可扩展性和尽量少的修改量。
代理模式: 指一个类别可以作为其它东西的接口
单例模式: 有懒汉式饥汉式等模式,一个类有且仅有一个实例,并且自行实例化向整个系统提供
模板方法: 让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤
4、请描述一下Spring Boot有哪些优点。
基于spring快速开发整合包
编码变简单
配置变简单
部署变简单
监控变简单
5、请描述一下Spring Cloud有哪些优点。
基于springboot单个服务的微服务架构
提供服务的注册与发现
负载均衡
服务器保护(熔断、网关)
分布式消息传递
6、请使用Java语言实现选择排序。
选择排序详解
7。 请写出以下程序的输出结果
public class HelloWorld {
public static void main(String []args) {
int f1=1;
int f2=1;
for (int i= 0;i<3;++i){
f1=f1+f2;
f1++;
}
System.out.println(f1); //7
}
}
8、请描述Redis有哪些优缺点。
优点:
读写速度快
性能优异
支持数据持久化
支持简单的事务
支持主从复制
缺点:
数据存储在内存,影响缓存效率
存储容量受到物理内存的限制
用于缓存时,易出现’缓存雪崩‘,’缓存击穿‘等问题
9、请列出zokeeper的数据节点。
持久节点(PERSISTENT )
临时节点(EPHEMERAL)
时序节点(SEQUENTIAL )
临时顺序节点(EPHEMERAL_SEQUENTIAL)
10请根据要求完成对应数据模型的设计。
要求:请根据您的理解完成用户、商品、订单的数据模型,需要编写关键字段的数据类型,以及数据模型之前的关联关系,如一对多。
思路:分析:就是设计三张表,用户表,商品表,订单表,进行表关联!
用户表:
CREATE TABLE `userTable`(
`uid` VARCHAR(255) NOT NULL COMMENT '用户编号',
`uname` VARCHAR(1000) NOT NULL COMMENT '用户名',
`address` VARCHAR(1000) DEFAULT NULL COMMENT '地址',
`phone` VARCHAR(1000) DEFAULT NULL COMMENT '手机号',
PRIMARY KEY(`uid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
商品表:
CREATE TABLE `product`(
`pid` VARCHAR(255) NOT NULL COMMENT '商品编号',
`pname` VARCHAR(1000) NOT NULL COMMENT '商品名称',
`userTable_id` VARCHAR(1000) NOT NULL COMMENT'用户编号',
`unumber` INT(20) NOT NULL COMMENT'订单数量',
PRIMARY KEY(`pid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
订单表:
CREATE TABLE `order`(
`oid` VARBINARY(255) NOT NULL COMMENT '订单编号',
`product_name` VARCHAR(1000) NOT NULL COMMENT '商品名称',
`userTable_id` VARCHAR(1000) NOT NULL COMMENT'订单用户编号',
`unumber` INT(50) NOT NULL COMMENT'订单数量',
PRIMARY KEY(`oid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
澳沙