完美世界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个最大的数字
 

