天天看点

Java后端笔试面试问题小汇总

时间:2020/4/25

前言:基础、框架、网络、JDBC编程、XML编程、计算机基础、数据结构与算法、设计模式、

一、基础

1Java基础

Java和PHP的区别

Java如何支持正则表达式操作、正则表达式及其用途

Java与JavaScript的比较

&和&&的区别

String和stringBuffer的区别、stringBuffer与stringBuilder的区别

基本的数据类型

JDK和JRE的区别、JVM概念与作用

反射的实现过程和作用

2面向对象

构造函数、方法覆盖于方法重载、重载和重写的区别

面向对象的特征:抽象、继承、封装、多态

接口和抽象类的区别、类和对象的区别

Static关键字的意思、private

3线程

线程的基本状态以及状态之间的关系

线程池的概念以及优势、有几种、如何实现

同步和异步

线程同步和线程调度

创建线程的方式:

生产者消费者模式

4锁:Java如何确保多个线程访问多个资源,同时不导致死锁;死锁的概念

5垃圾收集GC:GC概念、原因、算法;内存泄漏

6IO:Java有几种类型的流、异常、日志

二、框架

1spring

自动分配方式

Bean的作用域、生命周期

IOC和DI、DI如何实现;IOC和AOP概念、事务管理

beanFactory和ApplicationContext的区别

2mybatis

锁机制的作用、悲观锁和乐观锁机制

3springMVC

工作原理、运行机制、优点

springMVC与springboot的区别

三、网络

JSP的内置对象和其作用

JSP与servlet的相同点与不同点

Web.xml文件的配置内容

监听器listener(application、session、request)、过滤器filter

DAO模式

转发和重定向的区别、get与post的区别、cookie与session

XML概念

四、JDBC

1SQL基础

2JDBC基础

基础映射、数据库优化方法、三种范式;数据库乐观锁和悲观锁;数据库的隔离级别

五、计算机基础

1计算机网络

TCP的4次握手

TCP为什么建立连接、为什么可靠、连接和释放的过程(三次握手、四次挥手)

DNS的寻址过程、负载均衡和反向代理模式的优缺点

2操作系统

线程和进程的概念与区别

Socket编程的三种通信模型:BIO、NIO、AIO

内存碎片的处理、页式存储;如何提高并发性、死锁的产生和解决

六、数据结构与算法

1二叉树、哈希表

Java中hashmap

treeMap和treeSet在排序时如何比较元素

如何打印二叉树每层的节点,深度,层序遍历

二叉树任意两个节点之间路径的最大长度

B+树和B-树;二叉树Z字型遍历

2链表、数组、堆和栈、队

3算法:LRU算法、压缩URL

七、设计模式

Java中的23种设计模式:大体分为三类