笔试面经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()));
    }
}

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

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

相关推荐
凡人叶枫31 分钟前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
亓才孓42 分钟前
[JDBC]批处理
java
春日见43 分钟前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
锐意无限1 小时前
Swift 扩展归纳--- UIView
开发语言·ios·swift
低代码布道师1 小时前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
宋小黑1 小时前
JDK 6到25 全版本网盘合集 (Windows + Mac + Linux)
java·后端
念何架构之路1 小时前
Go进阶之panic
开发语言·后端·golang
7哥♡ۣۖᝰꫛꫀꪝۣℋ1 小时前
Spring-cloud\Eureka
java·spring·微服务·eureka
亓才孓1 小时前
[Properties]写配置文件前,必须初始化Properties(引用变量没执行有效对象,调用方法会报空指针错误)
开发语言·python
傻乐u兔1 小时前
C语言进阶————指针3
c语言·开发语言