JAVA校招面试核心问题

校招面试,重点看下以下这些核心问题,是否掌握
1. Java基础
Java接口和抽象类有什么区别?
String,StringBuilder和StringBuffer的区别?
final、finally、finalize三个关键字的区别?
==和equals的区别,给段代码判断下“ ==” 和equals的返回值。
Java基本数据类型有几种,每一种的区别是什么?
值传递和引用传递的区别?
Java的异常体系?受检查和非受检查异常区别?
序列化和反序列化。
反射和泛型。
2. 集合
Collection的体系结构,Java容器有哪些?
HashMap系列:底层数据结构,jdk1.7和1.8的区别,解决 hash 碰撞的方法,线程不安全原因,扩容策略,get和put方法的实现等等。
ConcurrentHashMap的实现,底层原理,jdk1.7和1.8的区别等。
HashTable、HashMap、HashSet区别。
ArrayList,LinkedList ,Vector的区别,包括存储结构,增删改查效率等。
Set 和 Map的区别,List 和 Set 的区别。

3.IO流

Java IO 流了解吗?

I/O 流为什么要分为字节流和字符流呢?

Java IO 中的设计模式有哪些?

BIO、NIO 和 AIO 的区别?

3. JVM
JVM的内存区域,即运行时数据区域。
Java内存模型(JMM),Happens-Before 规则。
垃圾回收算法;垃圾收集器,面试重点问CMS和G1的原理。
类加载,双亲委派模型,如何打破双亲委派模型。
jvm 调优,如何排查线上问题,如何解决线上 gc 问题。

4. Java并发
线程生命周期有哪些,状态切换的过程。
死锁产生的条件,如何避免死锁。
synchronized系列。synchronized 锁的是对象还是方法, 加在静态方法和实例方法的区别;给出一段代码,让判断是否会发生争夺锁问题。synchronized 的底层实现,锁升级过程。
volatile相关。volatile关键字的作用,原理;volatile和synchronized区别。
Lock接口相关。ReentrantLock原理,ReentrantLock和synchronized区别。
线程池系列。线程池的使用场景,线程池的参数,拒绝策略,线程池执行的过程;线程池的核心线程数如何配置,线程池的原理;常见的几种线程池,常见的几种阻塞队列。
ThreadLocal是什么?它的内存泄漏了解吗?
CAS相关。CAS的过程,CAS存在的问题,如何解决?
sleep() 方法和 wait() 方法区别和共同点?
线程实现的方式及区别?线程通信的方式和区别?
AQS系列,原子类和并发工具类,了解即可,有时间可以深入学习。

5. MySQL
MySQL 的索引类型,最左匹配原则,回表,底层索引数据结构,为什么不用B-树?索引失效如何排查?
InnoDB和 MyISAM 的区别?聚集和非聚集索引 的区别?
事务的ACID特性和隔离级别。
MySQL中的锁机制,乐观锁和悲观锁,锁的种类。
MySQL的日志模块binlog和redo log。
主从复制,分库分表,SQL调优。

6. Redis
Redis 5种数据类型的使用,以及底层数据结构,尤其是Hash和Zset(sortedSet )
Redis性能高的原因,为什么用Redis?
Redis的过期策略和淘汰策略。
Redis的持久化策略,RDB和AOF的区别?
缓存击穿,缓存穿透,缓存雪崩,如何解决这些问题?
Redis的主从复制,哨兵,集群。
Redis实现分布式锁。
Redis6的新特性。

7. Spring和Mybatis
AOP和IOC的理解, bean 的生命周期和作用域,IOC容器初始化过程,循环依赖问题如何解决?
BeanFactory和FactoryBean的区别?BeanFactory和ApplicationContext有什么区别?
Spring 中用到的设计模式。
SpringMvc工作流程。
Spring 和 SpringBoot 的区别?
Mybatis 相比Spring考察较少。常考:Mybatis 和 hibernate 的区别;Mybatis 的缓存;Mybatis 的执行流程等

8. 计算机网络
网络分层概念,TCP和UDP区别及使用场景。
TCP头部结构,三次握手四次挥手,TCP可靠性保证手段,滑动窗口,拥塞控制,流量控制。
HTTP和HTTPS区别?Cookie和Session区别?
HTTP请求报文,浏览器输入网址后发生的事情,GET和POST的区别?

9. 操作系统和Linux
进程和线程的区别;进程的通信方式,线程的通信方式
内存管理和IO管理
Linux常用命令(top、ls、ps、netstat、lsof、cat、rm、grep、kill等),僵尸进程和孤儿进程,Linux中swap的作用?

10. 设计模式
设计模式的分类和六大原则
单例模式分析和手写:懒汉和饿汉,双重检查模式,静态内部类模式。
常见的几种设计模式?项目中用到哪些设计模式,为什么要用,怎么用的?

11. 加分项
消息队列MQ:ActiveMQ、RocketMQ、RabbitMQ、Kafka。选一个深入了解即可,推荐Kafka或RocketMQ
全文搜索引擎ES(elasticsearch):ES的倒排索引,分词和搜索过程等。
分布式Zookeeper。
微服务框架 SpringCloud或Dubbo

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值