面试题,不含答案
- 1.jvm和jdk,jre的区别
- 2.什么是字节码?采用字节码的好处是什么?
- 3.Java 程序从源代码到运行的过程
- 4.jdk9引入了一种新的编译模式aot,为什么不全部使用aot
- 5.continue、break 和 return 的区别是什么?
- 6.Java 中有 8 种基本数据类型
- 7.基本类型和包装类型的区别
- 8.字符型常量和字符串常量的区别
- 9.Constructor构造器是否能被override
- 10.重载和重写的区别
- 11.面向对象三大特征
- 12、String StringBuffer和StringBuilder的区别
- 13、自动装箱和拆箱
- 14、在一个静态方法内部调用一个非静态成员为什么是非法的
- 15、在Java中定义一个空的构造方法的作用
- 16、接口和抽象类的区别
- 17、成员变量与局部变量的区别
- 18、对象引用和对象实体有何不同
- 19、一个类的构造方法的作用是什么?若一个类没有声明构造方法,该程序可以正常执行吗?
- 20、构造方法有哪些特性
- 21、静态方法和实例方法的区别
- 22、引用相等和对象相等
- 23、==和equals的区别
- 24、为什么重写equals时必须重写hashcode
- 25、为什么Java中只有值传递
- 26、线程和进程
- 27、线程有哪些状态
- 28、final关键字
- 29、Java中的异常以及异常处理
- 30、Java中如何禁止序列化
- 31、Java中IO流
- 32、BIO、NIO、AIO的区别
- 33、static、final、this、super关键字总结
- 34、深拷贝和浅拷贝
- 35、Collections工具类和Arrays工具类的常见方法
- 36、List、Set和Map的区别
- 37、ArrayList、LinkedList和Vecotor的区别
- 38、RandomAccess接口
- 40、ArrayList的扩容机制
- 41、HashMap、HashTable和TreeMap的区别
- 42、hashmap和hashset的区别
- 43、hashset如何检查重复
- 44、HashMap的底层实现原理
- 45、HashMap为什么一定要使用红黑树,二叉树有什么缺点
- 46、ConcurrentHashMap和HashTable的区别
- 47、程序计数器为什么是私有的
- 48、虚拟机栈和本地方法栈为什么是线程私有的
- 49、一句话简单了解堆和方法区
- 50、并发和并行的区别
- 51、为什么使用多线程
- 52、多线程可能带来什么问题
- 53、死锁产生的原因,以及如何避免死锁
- 54、sleep和wait的区别
- 55、为什么我们调用start方法时会执行run方法,为什么不能直接调用run方法
- 56、说说自己如何使用synchronized关键字,应用场景
- 57、synchronized关键字的底层原理
- 58、synchronized和ReentrantLock区别
- 59、简要概括java内存模型
- 60、volatile关键字的主要作用
- 61、synchronized和volatile关键字的区别
- 62、threadlocal有什么用,底层原理是什么
- 63、threadLocal内存泄漏原因,如何处理
- 64、为什么使用线程池
- 65、实现runnable接口和callable接口的区别
- 66、excute和submit方法的区别
- 67、如何创建线程池
- 68、ThreadPoolExcutor饱和策略
- 69、介绍一下 Atomic 原子类
- 70、AtomicInteger原理
- 71、AQS详解
- 72、Java内存区域划分
- 73、为什么用元空间替换永久代?
- 74、运行时常量池
- 75、一个 Java 对象是如何被创建的?
- 76、堆内存中对象分配的基本策略
- 77、Minor GC 和 Full GC有什么区别
- 78、如何判断对象死亡的两种方法
- 79、垃圾收集都有哪些算法,各自的特点
- 80、hotspot为什么要分为老年代和新生代
- 81、类加载过程
- 82、双亲委派模型
- 83、TCP/IP三次握手和四次挥手
- 84、在浏览器中输入url>>>显示主页的过程
- 85、HTTP是不保存状态的协议,如何保存用户状态?
- 86、Cookie和Session的区别
- 87、http和https的区别
- 88、Collection之Queue、Set、List
- 89、线程间的同步方式有哪些
- 90、mysql查看当前存储引擎
- 91、查看表的存储引擎
- 92、mylsam和innodb的区别
- 93、mysql索引使用的数据结构
- 94、mysql缓存的优缺点
- 95、什么是事务
- 96、事务的四大特性
- 97、并发事务带来哪些问题
- 98、事务隔离级别有哪些?mysql的默认隔离级别?
- 99、mylsam和innodb存储引擎使用的锁是什么
- 100、大表的优化
- 101、解释一下什么是池化设计思想。什么是数据库连接池,为什么需要数据库连接池
- 102、分库分表之后,id主键如何处理
- 103、一条SQL语句在mysql中是如何执行的
- 105、一条SQL执行的很慢原因有哪些
- 106、为什么要用缓存
- 107、为什么要用redis而不用map、guava做缓存?
- 108、redis的线程模型
- 109、redis和memcached的区别
- 110、redis常见的数据结构和应用场景
- 111、redis是如何对设置了过期时间的key进行删除的?
- 112、MySQL中有2000w数据,redis中只有20w的数据,如何保证redis中的数据都是热点数据?(redis内存淘汰机制)
- 113、如何保证redis挂掉之后再重启数据可以进行恢复(redis持久化机制)
- 114、redis事务
- 115、缓存雪崩和缓存穿透问题解决方案
- 116、如何保证缓存与数据库双写时的数据一致性
- 117、@Restcontroller和@Controller的区别
- 118、Spring IOC和AOP的理解
- 119、Spring AOP和AspectJ AOP有什么区别
- 120、Spring中的bean作用域有哪些
- 121、@Component和@Bean的区别是什么?
- 122、将一个类声明为Spring的bean注解有哪些
- 123、Spring中的bean生命周期
- 124、说说自己对SpringMVC的了解
- 125、SpringMVC的简单原理和详细流程
- 126、Spring框架中用到了哪些设计模式
- 127、Spring管理事务的方式
- 128、Spring事务中的隔离级别
- 129、Spring事务的传播行为
- 130、@Transactional(rollbackFor = Exception.class)注解了解吗?
- 131、如何使⽤JPA在数据库中⾮持久化⼀个字段?
- 132、#{}和${}的区别是什么?
- 133、Xml 映射⽂件中常见的标签
- 134、最佳实践中,通常⼀个 Xml 映射⽂件,都会写⼀个 Dao 接⼝与之对应,请问,这个 Dao 接⼝的⼯作原理是什么?Dao 接⼝⾥的⽅法,参数不同时,⽅法能重载吗?
- 135、Mybatis 是如何进⾏分⻚的?分⻚插件的原理是什么?
- 136、Mybatis 是如何将 sql 执⾏结果封装为⽬标对象并返回的?都有哪些映射形式?
- 137、Mybatis 的 Xml 映射⽂件中,不同的 Xml 映射⽂件,id 是否可以重复?
- 138、为什么说 Mybatis 是半⾃动 ORM 映射⼯具?它与全⾃动的区别在哪⾥?
- 139、kafka是什么?主要的应用场景?
- 140、消息队列的主要应用场景?
- 141、和其它消息队列相比,kafka的优势
- 142、队列模型和kafka的消息模型
- 143、什么是Producer、Consumer、Broker、Topic、Partition?
- 144、Kafka 的多副本机制了解吗?带来了什么好处?
- 145、Kafka 如何保证消息的消费顺序?
- 146、Kafka 如何保证消息不丢失
- 147、Kafka 如何保证消息不重复消费
- 148、什么是Cookie ? Cookie的作⽤是什么?如何在服务端使⽤ Cookie ?
- 149、Cookie 和 Session 有什么区别?如何使⽤Session进⾏身份验证?
- 150、如果没有Cookie的话Session还能⽤吗?
- 151、什么是 Token?什么是 JWT?如何基于Token进⾏身份验证?
- 152、 SSO与OAuth2.0的区别
1.jvm和jdk,jre的区别
2.什么是字节码?采用字节码的好处是什么?
3.Java 程序从源代码到运行的过程
4.jdk9引入了一种新的编译模式aot,为什么不全部使用aot
5.continue、break 和 return 的区别是什么?
6.Java 中有 8 种基本数据类型
7.基本类型和包装类型的区别
8.字符型常量和字符串常量的区别
9.Constructor构造器是否能被override
10.重载和重写的区别
11.面向对象三大特征
12、String StringBuffer和StringBuilder的区别
13、自动装箱和拆箱
14、在一个静态方法内部调用一个非静态成员为什么是非法的
15、在Java中定义一个空的构造方法的作用
16、接口和抽象类的区别
17、成员变量与局部变量的区别
18、对象引用和对象实体有何不同
19、一个类的构造方法的作用是什么?若一个类没有声明构造方法,该程序可以正常执行吗?
20、构造方法有哪些特性
21、静态方法和实例方法的区别
22、引用相等和对象相等
23、==和equals的区别
24、为什么重写equals时必须重写hashcode
25、为什么Java中只有值传递
26、线程和进程
27、线程有哪些状态
28、final关键字
29、Java中的异常以及异常处理
30、Java中如何禁止序列化
31、Java中IO流
32、BIO、NIO、AIO的区别
33、static、final、this、super关键字总结
34、深拷贝和浅拷贝
35、Collections工具类和Arrays工具类的常见方法
36、List、Set和Map的区别
37、ArrayList、LinkedList和Vecotor的区别
38、RandomAccess接口
40、ArrayList的扩容机制
41、HashMap、HashTable和TreeMap的区别
42、hashmap和hashset的区别
43、hashset如何检查重复
44、HashMap的底层实现原理
45、HashMap为什么一定要使用红黑树,二叉树有什么缺点
46、ConcurrentHashMap和HashTable的区别
47、程序计数器为什么是私有的
48、虚拟机栈和本地方法栈为什么是线程私有的
49、一句话简单了解堆和方法区
50、并发和并行的区别
51、为什么使用多线程
52、多线程可能带来什么问题
53、死锁产生的原因,以及如何避免死锁
54、sleep和wait的区别
55、为什么我们调用start方法时会执行run方法,为什么不能直接调用run方法
56、说说自己如何使用synchronized关键字,应用场景
57、synchronized关键字的底层原理
58、synchronized和ReentrantLock区别
59、简要概括java内存模型
60、volatile关键字的主要作用
61、synchronized和volatile关键字的区别
62、threadlocal有什么用,底层原理是什么
63、threadLocal内存泄漏原因,如何处理
64、为什么使用线程池
65、实现runnable接口和callable接口的区别
66、excute和submit方法的区别
67、如何创建线程池
68、ThreadPoolExcutor饱和策略
69、介绍一下 Atomic 原子类
70、AtomicInteger原理
71、AQS详解
72、Java内存区域划分
73、为什么用元空间替换永久代?
74、运行时常量池
75、一个 Java 对象是如何被创建的?
76、堆内存中对象分配的基本策略
77、Minor GC 和 Full GC有什么区别
78、如何判断对象死亡的两种方法
79、垃圾收集都有哪些算法,各自的特点
80、hotspot为什么要分为老年代和新生代
81、类加载过程
82、双亲委派模型
83、TCP/IP三次握手和四次挥手
- 为什么需要三次握手
- 为什么需要四次挥手
- 三次挥手中为什么要回传SYN
- 传了SYN为啥还要传ACK
84、在浏览器中输入url>>>显示主页的过程
85、HTTP是不保存状态的协议,如何保存用户状态?
86、Cookie和Session的区别
87、http和https的区别
88、Collection之Queue、Set、List
89、线程间的同步方式有哪些
90、mysql查看当前存储引擎
show variables like '%storage_engine%';
91、查看表的存储引擎
show table status like "table_name";