java后台开发面试题

1、计算机网络

TCP三次握手过程、参数;
TCP四次挥手过程、参数;
TCP和UDP的区别?应用场景有何不同?
TCP阻塞控制;
OSI七层模型、各层所用到的协议;
一些常见协议的原理:TCP、UDP、ARP、ICMP、FTP等
2、数据库知识

数据库有哪些索引?原理是什么?
索引有什么作用?有什么特点
索引为什么用B+树?
B+树和B-树有什么区别?
mysql中MyISAM和InnoDB的区别?
事务的四大特性(常考)
数据库优化的一些策略;
增删改查要熟悉,随时可能提一个需求让你写一个SQL语句;
数据库索引:聚集索引和非聚集索引的区别?
3、编程语言基础(以Java为例)

面向对象的特性?(封装继承多态)如何体现出来?
重载和重写有什么区别?
集合类有哪些?(常考)
Set和List的区别;
ArrayList、Linkedlist、Vector区别?(常考,建议看下底层实现代码)
ArrayList如何扩容?(常考)
Map下Hashmap、TreeMap的区别?
TreeMap底层是什么?红黑树还是二叉树?
Map、List下哪些类是线程安全的?(常考)
Hashmap的扩容机制;
Hashmap如何解决哈希冲突?与HashTable有何不同?
正则表达式;(服务端岗位常考)
接口跟抽象类的区别?
Java可以多继承吗?
JVM垃圾回收机制;(常考)
Java中是值传递还是引用传递?
Java中锁机制;
Lock的底层怎么实现的?源码怎么写的?
sychronized的底层实现?
sychronized修饰静态方法和修饰普通方法有什么区别?
异常类有哪些实现类、子类?
多线程中如何保证线程安全?
多线程有哪些常见的线程安全的类?
如何开启一个线程?
get请求和post请求有什么区别?
反射的原理?
ClassLoader和Class.forName()这两个有什么区别?(反射源码的考察)
NIO这一块有什么了解?
4、项目框架(以Spring为例)

简述Springmvc的流程;
Spring的核心特性是什么?
理解AOP、IoC的基本原理;
AOP的一些场景应用;
Springmvc和Springboot有什么区别?
Springboot为什么配置简单?(即它自动做了什么操作才能简化程序员的操作)
Spring容器的加载顺序?
@Resource 和 @Autowired 区别?分别用在什么场景?
静态代理和动态代理的区别?
Hibernate和mybatis的区别?
mybatis是如何工作的?
Hibernate对象有几个状态值?

猜你喜欢

转载自blog.csdn.net/Huangyuhua068/article/details/85273190