首页 > 关于Java面试,我的学员都准备了那些面试题
头像
志哥的JAVA
编辑于 04-28 14:03
+ 关注

关于Java面试,我的学员都准备了那些面试题

为什么重写equals方法要重写hashcode方法

final,finally和finalize区别

重载和重写区别

String,StringBuffer,StringBuilder区别

equals方法和==

Object中的方法

Java异常有哪些?

java中的泛型作用

List的实现类

ArrayList,Vector,LinkedList的底层实现,初始大小,是否线程安全,特性

hashmap底层实现,是否可以存空值,初始话大小,put过程,如何扩容

hashmap不安全的原因

说说bio nio和aio

JVM

 

一次编译到处运行是如何实现的

为什么jvm不直接把源码解析成机器码去执行

类加载机制的生命周期

Java的反射机制

说说类加载器

双亲委派机制,优点

loadClass和forName区别

 

JVM内存模型

 

分别介绍程序计数器,方法区,本地方法栈,虚拟机栈,堆

 

元空间和永久的的区别

 

JVM调优参数-Xms,-Xmx,-Xss的含义

 

堆和栈的区别-内存分配策略等方面

 

对象被判定为垃圾的标准,判断算法

 

可作为GCROOt的对象

 

说说垃圾回收算法

 

对象如何晋升老年代

 

常用的调优参数XX:survivorRatio:eden和survivor的比值默认8:1

XX:newRatio 老年代和年轻代内存大小的比值

 

触发FullGC的条件

 

常用的垃圾收集器

 

强引用 软引用 弱引用 虚引用

 

JAVA多线程

 

线程和进程的区别

 

run和start的区别

 

如何实现处理线程的返回值

 

如何给run方法传参

 

线程的状态

 

sleep和wait的区别

 

中断线程的正确方式

 

线程状态间的转换

 

线程池的参数

 

实现线程的方式

 

submit和execute的区别

 

线程同步的方式

 

线程通信的方式

 

守护线程的作用

 

多线程会带来什么问题

 

说一下JMM

 

happens-before原则

 

如何创建线程安全的单例

 

notify和notifyall的区别

 

主内存和工作内存的关系

 

volatile的作用,适用场景

 

单例和并发的关系

 

volatile和synchronized的异同

 

什么是死锁,产生的必要条件,怎么避免死锁

 

JUC

 

线程池增加线程的规则

 

线程池线程数量怎么设定

 

停止线程池的正确方法

 

线程池的状态

 

线程池的拒绝策略

 

使用线程池的注意点

 

ThreadLoacl的作用,原理,get方法过程,应用场景,内存泄露问题,如何避免泄露,空指针异常的原因

 

为什么要lock锁,为什么synchronized不够

 

介绍下面:乐观锁和悲观锁

 

可重入锁和非可重入锁

 

自旋锁和阻塞锁

 

公平锁和非公平锁

 

共享锁和排他锁

 

可中断锁

 

lock的常用方法,

 

说说ReentrantLock

 

读写锁ReentrantReadWriteLock,的作用,规则,插队策略

 

琐优化

 

原子类的作用

 

普通变量升级成原子变量的原理

 

什么是CAS,应用场景,缺点,Unsafe类

 

final关键字和不变性的关系,final作用,final的用法,

 

对象逸出,栈封闭

 

String中new和直接赋值的区别

 

对于String是否相等的问题

 

ConcurrentHashMap 的底层原理,put,get过程,初始化大小, 是否能存null

 

CopyOnWriteArrayList 适用场景,实现原理,缺点

 

BlockingQueue介绍,方法,实现类

 

CountDownLatch和CyclicBarrier的介绍和区别,作用,方法

 

semaphore作用,方法

 

condition作用和方法,注意点

 

AQS,作用,内部原理解析,结合实现说明

 

Runnable的缺点

 

Callable和Future的关系

 

Future的方法,使用过程,注意点

 

Linux

 

linux的体系结构分为

 

常用指令怎么用,find ,grep,管道操作符,awk,sed

 

Redis

 

为什么redis这么快

 

redis的基本数据类型,底层实现

 

如何从海量key查询出某一固定前缀的key

 

如何实现分布式锁

 

redis如何做持久化

 

自动触发RDB的方式

 

redis BGSAVE的原理

 

AOF持久化过程

 

Redis数据恢复的过程

 

RDB和AOF的优缺点

 

redis全同步和增量同步的过程

 

redis哨兵机制

 

redis集群原理

 

Redis的穿透,击穿,雪崩问题,解决办法

 

数据库

 

一条SQL查询语句是如何执行的?

 

一条SQL更新语句是如何执行的?

 

事务的隔离级别

 

怎么解决幻读

 

怎么解决不可重复读

 

普通索引和唯一索引区别

 

索引失效场景

 

什么是联合索引

 

什么是覆盖索引

 

什么是最左匹配原则

 

说一下两阶段提交

 

什么是WAL机制

 

怎么让数据库恢复到任意时刻

 

先写redolog在写binlog 和先写binlog在写redolog会有什么问题

 

什么是redolog ,binlog undolog

 

MVCC是怎么实现的?

 

事务隔离是怎么实现的(可重复读)

 

事务的启动方式

 

innodb为什么使用b+树

 

主键索引和普通索引区别

 

什么是索引下推

 

mysql的锁分为哪三类

 

全局锁命令

 

表锁命令

 

行锁命令

 

什么是两阶段锁

 

怎么减少锁冲突

 

mysql为什么会选错索引?

 

怎么给字符串字段加索引

 

什么情况会导致数据库的flush

 

为什么表数据删掉一半表文件大小不变?

 

count的问题,count*慢应该怎么做

 

在两阶段提交的不同时刻,mysql异常重启会怎么办

 

order by 的执行流程

 

说说全字段排序和rowid排序

 

为什么只查询一行数据执行也很慢

 

加锁规则

 

innodb和myisam的区别

 

如何定位优化慢sql

 

如何设计一个数据库

 

为什么要使用索引

 

索引的数据结构有哪些

 

什么样的数据可以成为索引

 

spring

 

spring bean的生命周期

 

springboot的常用注解

 

spring di和aop

 

autoware和resource的区别

 

sping的事务

 

bean的作用域

 

说一下springmvc的执行流程

 

分布式

 

说说单点登录

 

说说分布式会话

 

rabbitmq的常用模式

 

如何保证rabbitmq消息不丢失 提供可靠的confirm模式和return模式

 

幂等性怎么做

 

kafka的特点,高性能的原因

 

 

 

 

全部评论

(1) 回帖
加载中...
话题 回帖