下半年实习不知道该如何走下一步棋子了,想听听大家的意见

大专目前学的大数据技术,学过java,数据库,网页设计等,现在在学习ui,数据可视化,软件测试,数据库设计与应用开发,分布式数据库。
计算机吧下定学那一门就不能变,我也不知道学后端还是前端。主要java我只学了基础,框架算法都没学过也不知道吃不吃力,现在又重新复习java的知识。想听听大家的意见

就业和学习最大的差别是,学习要求每一门都及格,而就业要求精通一门

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/643560
  • 这篇博客也不错, 你可以看下编写一个Java应用程序,从键盘读取用户输入的两个双精度浮点数,并设计两个方法分别实现两个浮点数的和,两个数的乘积,要求进行异常处理,对输入的不符合要求的数据提示给用户。
  • 除此之外, 这篇博客: Java中接口返回参数按照请求参数进行排序中的 在开发接口的时候,有时候我们会遇到这样的场景,前端传来的参数是一个列表,我们通过这些参数在数据库中查询出一个列表,但是在数据库中查询出来的这个列表和前端传来的参数的顺序不一致。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 比方说我们的数据库中 user 表有以下几条数据:

    iduidname
    1user_003法半夏
    2user_001蜜远志
    3user_002麦冬
    4user_004茵陈

    我们需要 通过前端传来的参数 uid 列表 查询 其中的数据,然后返回给前端,但是前端传来的 uid 列表是 [“user_001”, “user_002”, “user_003” ,“user_004”] ,这时候,我们通过

    SELECT uid,`name` from user where uid 
    IN('user_001','user_002','user_003','user_004');
    

    查询出来的结果是这样的:

    iduidname
    1user_003法半夏
    2user_001蜜远志
    3user_002麦冬
    4user_004茵陈
    [
    	{"name":"法半夏","uid":"user_003"},
    	{"name":"蜜远志","uid":"user_001"},
    	{"name":"麦冬","uid":"user_002"},
    	{"name":"茵陈","uid":"user_004"}
    ]
    

    可以看到传入的参数列表和返回的列表 uid 并不是对应的。

    [
    	{"name":"蜜远志","uid":"user_001"},
    	{"name":"麦冬","uid":"user_002"},
    	{"name":"法半夏","uid":"user_003"},
    	{"name":"茵陈","uid":"user_004"}
    ]
    

    为了解决这个问题,有多种方法,比方说在mybatis 中 先 使用 foreach 入参列表 再left join user 表, 但 这样的缺点是当参数列表较长的时候sql 语句可能很长,sql 语句解析可能会比较慢,占用网络带宽可能较大,总而言之就是可能存在 bug;

    不想打字了,直接上代码
    排序工具类:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.util.CollectionUtils;
    
    import java.lang.reflect.Field;
    import java.util.*;
    
    /**
     * @author: XiaTian
     * @create-time 18:22 2021/11/14
     */
    public class OrderUtil {
        private static Logger logger = LoggerFactory.getLogger(OrderUtil.class);
    
        /**
         * 排序操作
         * @param originList 数据库中查询出来的的列表,需要排序操作
         * @param orderList 前端传来的参数列表
         * @param orderField 需要排序的字段, 如: uid
         * @param <T> 泛型
         * @return
         */
        public static <T> List<T> order(List<T> originList,
                                        List<String> orderList,
                                        final String orderField){
            if (CollectionUtils.isEmpty(originList)){
                logger.info("入参集合为空");
                return originList;
            }
            Map<String,T> tempMap = new HashMap<>();
            Field declaredField;
            List<T> rtnList = new ArrayList<>();
            try {
                declaredField = originList.get(0).getClass().getDeclaredField(orderField);
                declaredField.setAccessible(true);
                for (T ele : originList){
                    String value = declaredField.get(ele).toString();
                    tempMap.put(value,ele);
                }
                for (String code : orderList){
                    rtnList.add(tempMap.get(code));
                }
            } catch (NoSuchFieldException e) {
               logger.warn("没用指定字段[{}]",orderField);
            } catch (IllegalAccessException e) {
                logger.warn("访问字段非法,请检查字段[{}]权限",orderField);
            }
            return rtnList;
        }
    
        public static void main(String[] args) {
            List<String> orderList = Arrays.asList("user_001","user_002","user_003","user_004");
            List<User> userList = new ArrayList<>();
            userList.add(new User(1,"user_003","法半夏"));
            userList.add(new User(2,"user_001","蜜远志"));
            userList.add(new User(3,"user_002","麦冬"));
            userList.add(new User(4,"user_004","茵陈"));
            List<User> orderedUsers = OrderUtil.order(userList, orderList, "uid");
            System.out.println(orderedUsers);
        }
    }
    
    

    user 类

    package com.xhw.product.outman.util;
    
    import lombok.Data;
    
    /**
     * @author: XiaTian
     * @create-time 18:37 2021/11/14
     */
    @Data
    public class User {
        private int id;
        private String uid;
        private String name;
    
        public User(int id, String uid, String name) {
            this.id = id;
            this.uid = uid;
            this.name = name;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", uid='" + uid + '\'' +
                    ", name='" + name + '\'' +
                    '}';
        }
    }