0
点赞
收藏
分享

微信扫一扫

面试复盘总结

i奇异 2022-03-25 阅读 78

Object常见方法?

1、hashCode和equale函数用来判断对象是否相同,
2、wait(),wait(long),wait(long,int),notify(),notifyAll()
3、toString()和getClass,
4、clone()
5、finalize()用于在垃圾回收

java8新特性?

1、Lambda表达式;
2、方法引用;
3、默认方法;
4、新编译工具;
5、Stream API;
6、Date Time API;
7、Option;
8、Nashorn javascript引擎

Vue子父之间传值?

1、父向子传值props
2、子组件向父组件传值$emit

Java和C++的区别?

1、C++比Java执行速度快,但是Java可以利用JVM跨平台。
2、Java是纯面向对象的语言,所有代码(包括函数、变量)都必须在类中定义。而C++中还有面向过程的东西,比如是全局变量和全局函数。
3、C++中有指针,Java中没有,但是有引用。
4、C++支持多继承,Java中类都是单继承的。但是继承都有传递性,同时Java中的接口是多继承,类对接口的实现也是多实现。
5、C++中,开发需要自己去管理内存,但是Java中JVM有自己的GC垃圾回收机制机制

多线程的常见应用场景:

1、后台任务,例如:定时向大量(100w以上)的用户发送邮件;
2、异步处理,例如:发微博、记录日志等;
3、分布式计算

查询出连续两天登陆,或连续多天登陆的用户:

当时面试想半天也没想到时间可以有序排序集合查询,emo了

public static void main(String[] args) {
     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");

     //1、sql执行获取集合 select * from if_user order by createTime asc;
     List<User> users = new ArrayList<>();
     Date today = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
     Date yestDay = new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24);
     users.add(new User("001",today));
     users.add(new User("001",today));
     users.add(new User("001",new Date()));
     users.add(new User("002",new Date()));
     users.add(new User("001",yestDay));
     users.add(new User("002",yestDay));
     users.add(new User("003",yestDay));

     Map<String, Date> mapDate = new HashMap<>();
     Map<String, Integer> mapCount = new HashMap<>();

     for (User user : users) {
         Date date=new Date(user.getCreateTime().getTime() - 24*60*60*1000);
         if (mapCount.get(user.getUid()) != null) {
             if (sameDate(date,mapDate.get(user.getUid()))) {
                 mapCount.put(user.getUid(),mapCount.get(user.getUid())+1);
             }
         } else {
             mapCount.put(user.getUid(),1);
         }
         mapDate.put(user.getUid(),user.getCreateTime());
     }

     System.out.println(mapCount);
 }

public static boolean sameDate(Date d1, Date d2){
    SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
    //fmt.setTimeZone(new TimeZone()); // 如果需要设置时间区域,可以在这里设置
    return fmt.format(d1).equals(fmt.format(d2));
}

@AllArgsConstructor
@Table(name = "if_user")
@Data
class User {
    private String uid;
    private Date createTime;
}

在这里插入图片描述

自我总结:
1、项目介绍无突出点
2、人事问题待加强
3、该刷一刷题,练练脑子了。

举报

相关推荐

0 条评论