笔试面经2(上)(纸质版)

目录

题目和参考如下

1.java递归,给出递归的结果,填空

2.二进制乘法(1010*10110=?),然后转16进制,填空

3.用一条sql写出下面的问题----》应该要用到联表查询

4.写一段字符串:+变-,/变_的代码

5.上面这个代码一般用在什么地方

6.接口,类,子类怎么写,web请求后端的过程?,如何处理异常


笔试的题目只能大概回忆了一下,大家可以了解一下,问问自己是否会做,检查出自己的漏洞

题目和参考如下

1.java递归,给出递归的结果,填空

java 复制代码
public class RecursionExample1 {
    public static void main(String[] args) {
        int result = mystery(5);
        System.out.println(result); // 输出: ______
    }
    
    public static int mystery(int n) {
        if (n <= 1) {
            return 1;
        }
        return n * mystery(n - 1);
    }
}

答案:120

2.二进制乘法(1010*10110=?),然后转16进制,填空

答案:DC

3.用一条sql写出下面的问题----》应该要用到联表查询

学生表S,属性:学号SNO,名字SNAME

科目表T,属性:科目号TID,科目名TNAME

成绩表ST,属性:学号SNO,科目号TID,成绩SCORE

(1)查询选修了3门科目的人员的数量

(2)查询选修了科目名为"数据结构"的,成绩大于80分的人的名字

(3)查询(不记得,很难)

答案(参考):

sql 复制代码
-- (1) 查询选修了3门科目的人员的数量
SELECT COUNT(*) as student_count
FROM (
    SELECT SNO 
    FROM ST 
    GROUP BY SNO 
    HAVING COUNT(DISTINCT TID) = 3
) as temp;

-- (2) 查询选修了科目名为"数据结构"的,成绩大于80分的人的名字
SELECT DISTINCT S.SNAME
FROM S
JOIN ST ON S.SNO = ST.SNO
JOIN T ON ST.TID = T.TID
WHERE T.TNAME = '数据结构' AND ST.SCORE > 80;

-- (3) 假设第三问是:查询每门科目平均分最高的学生信息
SELECT T.TNAME, S.SNAME, MAX_AVG.avg_score
FROM (
    SELECT TID, MAX(avg_score) as max_avg
    FROM (
        SELECT TID, SNO, AVG(SCORE) as avg_score
        FROM ST
        GROUP BY TID, SNO
    ) as sub
    GROUP BY TID
) as max_avg
JOIN (
    SELECT TID, SNO, AVG(SCORE) as avg_score
    FROM ST
    GROUP BY TID, SNO
) as student_avg ON max_avg.TID = student_avg.TID 
AND max_avg.max_avg = student_avg.avg_score
JOIN T ON max_avg.TID = T.TID
JOIN S ON student_avg.SNO = S.SNO;

4.写一段字符串:+变-,/变_的代码

参考:

java 复制代码
public class StringConverter {
    public static String convertString(String input) {
        if (input == null) {
            return null;
        }
        
        StringBuilder result = new StringBuilder();
        for (char c : input.toCharArray()) {
            if (c == '+') {
                result.append('-');
            } else if (c == '/') {
                result.append('_');
            } else {
                result.append(c);
            }
        }
        return result.toString();
    }
    
    // 使用正则表达式的版本
    public static String convertStringRegex(String input) {
        if (input == null) return null;
        return input.replace('+', '-').replace('/', '_');
    }
}

5.上面这个代码一般用在什么地方

参考:

这种字符串转换代码通常用于:

  1. URL编码/解码 :在Web开发中,+/在URL中有特殊含义,需要转换

  2. Base64编码 :Base64使用+/作为字符,在URL安全版本中需要转换为-_

  3. 文件路径处理:在跨平台文件系统中转换路径分隔符

  4. 数据清洗:处理特殊字符以避免SQL注入或XSS攻击

  5. API参数传递:确保特殊字符不会破坏参数解析

6.接口,类,子类怎么写,web请求后端的过程?,如何处理异常

参考:

java 复制代码
// 接口定义
public interface UserService {
    User getUserById(int id) throws UserNotFoundException;
    void saveUser(User user) throws ValidationException;
}

// 抽象类
public abstract class BaseService {
    protected Logger logger = LoggerFactory.getLogger(getClass());
    
    protected void validate(Object obj) throws ValidationException {
        // 基础验证逻辑
    }
}

// 具体实现类
@Service
public class UserServiceImpl extends BaseService implements UserService {
    
    @Autowired
    private UserRepository userRepository;
    
    @Override
    public User getUserById(int id) throws UserNotFoundException {
        return userRepository.findById(id)
                .orElseThrow(() -> new UserNotFoundException("用户不存在: " + id));
    }
    
    @Override
    public void saveUser(User user) throws ValidationException {
        validate(user);
        userRepository.save(user);
    }
}

// Web请求处理
@RestController
@RequestMapping("/api/users")
public class UserController {
    
    @Autowired
    private UserService userService;
    
    @GetMapping("/{id}")
    public ResponseEntity<?> getUser(@PathVariable int id) {
        try {
            User user = userService.getUserById(id);
            return ResponseEntity.ok(user);
        } catch (UserNotFoundException e) {
            return ResponseEntity.status(HttpStatus.NOT_FOUND)
                    .body(new ErrorResponse(e.getMessage()));
        } catch (Exception e) {
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
                    .body(new ErrorResponse("服务器内部错误"));
        }
    }
    
    // 使用全局异常处理
    @ExceptionHandler(ValidationException.class)
    public ResponseEntity<ErrorResponse> handleValidationException(ValidationException e) {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST)
                .body(new ErrorResponse(e.getMessage()));
    }
}

是小公司噢--》大家可以自己评估一下

这里还有下篇哦,可以点开我的文章查询剩下的题目和参考

相关推荐
缺点内向2 小时前
Word 自动化处理:如何用 C# 让指定段落“隐身”?
开发语言·c#·自动化·word·.net
啵啵鱼爱吃小猫咪2 小时前
机器人标准DH(SDH)与改进DH(MDH)
开发语言·人工智能·python·学习·算法·机器人
忧郁的Mr.Li2 小时前
JVM-类加载子系统、运行时数据区 详解
java·jvm
shehuiyuelaiyuehao2 小时前
12异常知识点
java
轩情吖2 小时前
Qt多元素控件之QTreeWidget
开发语言·c++·qt·控件·qtreewidget·桌面级开发
好好研究2 小时前
MobaXterm远程连接云服务器(Centos环境)及配置jdk、Tomcat、MySQL环境
java·服务器·mysql·jdk·tomcat·aliyun服务器
2601_949847752 小时前
Flutter for OpenHarmony 剧本杀组队App实战:关于我们页面实现
开发语言·javascript·flutter
轩情吖2 小时前
Qt多元素控件之QTableWidget
开发语言·c++·qt·表格·控件·qtablewidget
froginwe112 小时前
PostgreSQL 表达式详解
开发语言