完美世界2023暑期实习Java面经
3.31一面视频:
多线程:
- 线程池用过吗?几个核心参数是什么
- 最大线程数maximumPoolSize
- 核心线程数corePoolSize
- 活跃时间keepAliveTime
- 阻塞队列workQueue
- 拒绝策略RejectedExecutionHandler
- 任务到来,线程池的工作流程是什么样的
- 核心线程数是5,现在有4个核心线程数,新到来一个任务,是用空闲的线程,还是新创建线程。
- 什么时候用核心,什么时候要创建新的线程?
- 主线程,开启5个线程,让他们同时开始执行,主线程等他俩执行完之后再结束,要怎么实现
计算机网络:
- HTTP报文格式
- get和post区别
- GET 的语义是请求获取指定的资源。GET 方法是安全、幂等、可被缓存的。
- POST 的语义是根据请求负荷(报文主体)对指定的资源做出处理,具体的处理方式视资源类型而不同。POST 不安全,不幂等,(大部分实现)不可缓存。
- 哪个数据量比较大,post可携带的数据量比较大,因为,get根据语义是不需要body的,而且浏览器会限制get中url长度,但不会限制post中body长度。
- 安全和幂等是对服务器而言,那对用户而言呢,哪个安全幂等
MySQL:
- 写SQL语句:查询同一个部门的人数有多少?
- 问:count(name)和count(*)有啥区别
- 什么情况下适合建立索引
- 事务隔离级别:事务的隔离级别有哪些?
- 用过分布式锁吗
Redis:
- 数据结构和适用的场景
Java:
- String s=“Hello”,内存中是什么样子的,堆里栈里都是什么东西:
- 异常机制,什么时候会内存溢出,堆溢出,栈溢出
- try catch finally执行顺序,
- catch里return 1 ,finally里return 2,最终是得到什么
- finally有什么用途
- hashmap的put操作,扩容机制(要说特别详细)
- hashmap线程安全吗,有什么线程安全的集合,底层实现什么样子
- 将一个对象作为hashmap的key,需要实现什么操作(重写hashcode() 和 equals())
- List和Set的区别,
- List有序可重复,Set无序不可重复
- set可以有序吗?
- 基于二叉树实现的set是有序的
- Java继承自set的子类有哪些
- HashSet和HashMap有啥区别?
- 接口和类的区别
- 接口可以实例化吗
面向对象:
- 三大特性
- 多态的实现方式:
- 继承
- 重载
设计模式
- 单例模式怎么实现?
算法题:
- 从数组中找出前10个最大的数字