最新Java面试真题,金九银十你说了算


Java基础题(34道)

1.面向对象和面向过程的区别

2.Java语言有哪些特点

3.关于JVMJDK和JRE最详细通俗的解答

4.OracleJDK和OpenJDK的对比

5.Java和C++的区别

6.什么是Java程序的主类应用程序和小程序的主类有何不同

7.Java应用程序与小程序之间有那些差别

8.字符型常量和字符串常量的区别

9.构造器Constructor是否可被override

10.重载和重写的区别

11.Java面向对象编程三大特性:封装继承多态

12.StringStringBuffer和StringBuilder的区别是什么String为什么是不可变的

13.自动装箱与拆箱

14.在一个静态方法内调用一个非静态成员为什么是非法的

15.在Java中定义一个不做事且没有参数的构造方法的作用

16.importjava和javax有什么区别

17.接口和抽象类的区别是什么

18.成员变量与局部变量的区别有那些

19.创建一个对象用什么运算符?对象实体与对象引用有何不同?

20.什么是方法的返回值?返回值在类的方法里的作用是什么?

21.一个类的构造方法的作用是什么若一个类没有声明构造方法,该程序能正确执行吗?为什么?

22.构造方法有哪些特性

23.静态方法和实例方法有何不同

24.对象的相等与指向他们的引用相等,两者有什么不同?

25.在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

26.==与equals(重要)

27.hashCode与equals(重要)

28.为什么Java中只有值传递

29.简述线程,程序、进程的基本概念。以及他们之间关系是什么

30.线程有哪些基本状态?

31关于final关键字的一些总结

32Java中的异常处理

33Java序列化中如果有些字段不想进行序列化怎么办

34获取用键盘输入常用的的两种方法


集合框架(22道)

1.ArrayList和Vector的区别。

2.说说ArrayList,Vector,LinkedList的存储性能和特性。

3.快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?

4.hashmap的数据结构。

5.HashMap的工作原理是什么?

6.Hashmap什么时候进行扩容呢?

7.List、Map、Set三个接口,存取元素时,各有什么特点?

8.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?

9.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?

10.heap和stack有什么区别。

11.Java集合类框架的基本接口有哪些?

12.HashSet和TreeSet有什么区别?

13.HashSet的底层实现是什么?

14.LinkedHashMap的实现原理?

15.为什么集合类没有实现Cloneable和Serializable接口?

16.什么是迭代器(Iterator)?

17.Iterator和ListIterator的区别是什么?

18.数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?

19.Java集合类框架的最佳实践有哪些?

20.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?

21.Comparable和Comparator接口是干什么的?列出它们的区别。

22.Collection和Collections的区别。


并发编程(42道)

1.Synchronized用 过 吗 ,其 原 理 是 什 么 ?

2.你 刚 才 提 到 获 取 对 象 的 锁 ,这 个“锁”到 底 是 什 么 ?如 何 确 定对 象 的 锁 ?

3.什 么 是 可 重 入 性 ,为 什 么 说Synchronized是 可 重 入 锁 ?

4.JVM对Java的 原 生 锁 做 了 哪 些 优 化 ?

5.为 什 么 说Synchronized是 非 公 平 锁 ?

6.什 么 是 锁 消 除 和 锁 粗 化 ?

7.为 什 么 说Synchronized是 一 个 悲 观 锁 ?乐 观 锁 的 实 现 原 理又 是 什 么 ?什 么 是CAS,它 有 什 么 特 性 ?

8.乐 观 锁 一 定 就 是 好 的 吗 ?

9.跟Synchronized相 比 ,可 重 入 锁ReentrantLock其 实 现原 理 有 什 么 不 同 ?

10.那 么 请 谈 谈AQS框 架 是 怎 么 回 事 儿 ?

11.请 尽 可 能 详 尽 地 对 比 下Synchronized和ReentrantLock的 异 同 。

12.ReentrantLock是 如 何 实 现 可 重 入 性 的 ?

13.除 了ReetrantLock,你 还 接 触 过JUC中 的 哪 些 并 发 工 具 ?

14.请 谈 谈ReadWriteLock和StampedLock。

15.如 何 让Java的 线 程 彼 此 同 步 ?你 了 解 过 哪 些 同 步 器 ?请 分 别介 绍 下 。

16.CyclicBarrier和CountDownLatch看 起 来 很 相 似 ,请 对 比下 呢 ?

17.Java中 的 线 程 池 是 如 何 实 现 的 ?

18.创 建 线 程 池 的 几 个 核 心 构 造 参 数 ?

19.线 程 池 中 的 线 程 是 怎 么 创 建 的 ?是 一 开 始 就 随 着 线 程 池 的 启 动创 建 好 的 吗 ?

20.既 然 提 到 可 以 通 过 配 置 不 同 参 数 创 建 出 不 同 的 线 程 池 ,那 么Java中 默 认 实 现 好 的 线 程 池 又 有 哪 些 呢 ?请 比 较 它 们 的 异 同 。

21.如 何 在Java线 程 池 中 提 交 线 程 ?

22.什 么 是Java的 内 存 模 型 ,Java中 各 个 线 程 是 怎 么 彼 此 看 到对 方 的 变 量 的 ?

23.请 谈 谈volatile有 什 么 特 点 ,为 什 么 它 能 保 证 变 量 对 所 有 线程 的 可 见 性 ?

24.既 然volatile能 够 保 证 线 程 间 的 变 量 可 见 性 ,是 不 是 就 意 味着 基 于volatile变 量 的 运 算 就 是 并 发 安 全 的 ?

25.请 对 比 下volatile对 比Synchronized的 异 同 。

26.请 谈 谈ThreadLocal是 怎 么 解 决 并 发 安 全 的 ?

27.很 多 人 都 说 要 慎 用ThreadLocal,谈 谈 你 的 理 解 ,使 用ThreadLocal需 要 注 意 些 什 么 ?

28.现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?

29.在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?

30.在java中wait和sleep方法的不同?

31.用Java实现阻塞队列。

32.用Java写代码来解决生产者——消费者问题。

33.用Java编程一个会导致死锁的程序,你将怎么解决?

34.什么是原子操作,Java中的原子操作是什么?

35.Java中的volatile关键是什么作用?怎样使用它?在Java中它跟synchronized方法有什么不同?

36.什么是竞争条件?你怎样发现和解决竞争?

37.你将如何使用threaddump?你将如何分析Threaddump?

38.为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?

39.Java中你怎样唤醒一个阻塞的线程?

40.在Java中CycliBarriar和CountdownLatch有什么区别?

41.什么是不可变对象,它对写并发应用有什么帮助?

42.你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?



JVM (41道)

1.内存模型以及分区,需要详细到每个区放什么。

2.堆里面的分区:Eden,survival(from+to),老年代,各自的特点。

3.对象创建方法,对象的内存分配,对象的访问定位。

4.GC的两种判定方法

5.SafePoint是什么

6.GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?

7.GC收集器有哪些?CMS收集器与G1收集器的特点。

8.MinorGC与FullGC分别在什么时候发生?

9.几种常用的内存调试工具:jmap、jstack、jconsole、jhat

10.类加载的几个过程

11.JVM内存分哪几个区,每个区的作用是什么?

12.如和判断一个对象是否存活?(或者GC对象的判定方法)

13.简述java垃圾回收机制?

14.java中垃圾收集的方法有哪些?

15.java内存模型

16.java类加载过程?

17.简述java类加载机制?

18.类加载器双亲委派模型机制?

19.什么是类加载器,类加载器有哪些?

20.简述java内存分配与回收策率以及MinorGC和MajorGC

21.Java类加载过程?

22.描述一下JVM加载Class文件的原理机制?

23.Java内存分配。

24.GC是什么?为什么要有GC?

25.简述Java垃圾回收机制。

26.如何判断一个对象是否存活?(或者GC对象的判定方法)

27.垃圾回收的优点和原理。并考虑2种回收机制。

28.垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

29.Java中会存在内存泄漏吗,请简单描述。

30.深拷贝和浅拷贝。

31. System.gc()和Runtime.gc()会做什么事情?

32.finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

33.如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

34.什么是分布式垃圾回收(DGC)?它是如何工作的?

35.串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?

36.在Java中,对象什么时候可以被垃圾回收?

37.简述Java内存分配与回收策率以及Minor GC和MajorGC。

38.JVM的永久代中会发生垃圾回收么?

39.Java中垃圾收集的方法有哪些?

40.什么是类加载器,类加载器有哪些?

41.类加载器双亲委派模型机制?


Tomcat(20道)

1、Tomcat的缺省端口是多少,怎么修改?

2、tomcat有哪几种Connector运行模式(优化)?

3、Tomcat有几种部署方式?

4、tomcat容器是如何创建servlet类实例?用到了什么原理?

5.tomcat如何优化?

6.内存调优

7.垃圾回收策略调优

8.添加JMS远程监控

9.专业点的分析工具有

10.关于Tomcat的session数目

11.监视Tomcat的内存使用情况

12.打印类的加载情况及对象的回收情况

13.Tomcat一个请求的完整过程

14.Tomcat工作模式?

15.你怎样给tomcat去调优?

16.如何加大tomcat连接数

17.tomcat中如何禁止列目录下的文件

18.怎样加大tomcat的内存。

19.Tomcat有几种部署方式

20.Tomcat的优化经验。



 Nginx(18道)

1、请解释一下什么是Nginx?

2、请列举Nginx的一些特性。

3、请列举Nginx和Apache之间的不同点

4、请解释Nginx如何处理HTTP请求。

5、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?

6、使用“反向代理服务器”的优点是什么?

7、请列举Nginx服务器的最佳用途。

8、请解释Nginx服务器上的Master和Worker进程分别是什么?

9、请解释你如何通过不同于80的端口开启Nginx?

10、请解释是否有可能将Nginx的错误替换为502错误、503?

11、在Nginx中,解释如何在URL中保留双斜线?

12、请解释ngx_http_upstream_module的作用是什么?

13、请解释什么是C10K问题?

14、请陈述stub_status和sub_filter指令的作用是什么?

15、解释Nginx是否支持将请求压缩到上游?

16、解释如何在Nginx中获得当前的时间?

17、用Nginx服务器解释-s的目的是什么?

18、解释如何在Nginx服务器上添加模块?




数据库(30道)

1.请简洁描述MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

2.在MySQL中ENUM的用法是什么?

3.CHAR和VARCHAR的区别?

4.列的字符串类型可以是什么?

5.MySQL中使用什么存储引擎?

6.TIMESTAMP在UPDATECURRENT_TIMESTAMP数据类型上做什么?

7.主键和候选键有什么区别?

8.MySQL数据库服务器性能分析的方法命令有哪些?

9.LIKE和REGEXP操作有什么区别?

10.BLOB和TEXT有什么区别?

11.数据库的三范式?

12.MySQL表中允许有多少个TRIGGERS?

13.什么是通用SQL函数?

14.MySQL中有哪几种锁?

15.MySQL数据优化。

16.MySQL的关键字。

17.存储引擎。

18.数据库备份。

19.truncatedeletedrop的区别。

20.Redis是什么?两句话做一下概括。

21.Redis(管道,哈希)。

22.Redis实现原理或机制。

23.Redis有两种类型分区。

24.什么是MongoDB。

25.MongoDB特点。

26.MongoDB的功能。

27.MongoDB的适用场景。

28.Redis、memcache、MongoDB对比。

29.Redis有什么用?只有了解了它有哪些特性,我们在用的时候才能扬长避短,为我们所用。

30.这里对Redis数据库做下小结。



MySQL(73道)

1.数据库三范式是什么?

2.有哪些数据库优化方面的经验?

3.请简述常用的索引有哪些种类?

4.以及在mysql数据库中索引的工作机制是什么?

5.MySQL的基础操作命令

6.mysql的复制原理以及流程。

7.mysql支持的复制类型?

8.mysql中myisam与innodb的区别?

9.mysql中varchar与char的区别以及varchar(50)中的50代表的涵义?

10.MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

11.表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,将该字段拆成子表好处是什么?

12.MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?

13.MySQL中控制内存分配的全局参数,有哪些? 

14.若一张表中只有一个字段VARCHAR(N)类型,utf8编码,则N最大值为多少(精确到数量级即可)?

15.[SELECT*]和[SELECT全部字段]的2种写法有何优缺点?

16.HAVNG子句和WHERE的异同点?

17.MySQL当记录不存在时insert,当记录存在时update,语句怎么写?

18.MySQL的insert和update的select语句语法

19.一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?

20.Mysql的技术特点是什么?

21.Heap表是什么?

22.Mysql服务器默认端口是什么?

23.与Oracle相比,Mysql有什么优势?

24.如何区分FLOAT和DOUBLE?

25.区分CHAR_LENGTH和LENGTH?

26.请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

27.在Mysql中ENUM的用法是什么?

28.如何定义REGEXP?

29.CHAR和VARCHAR的区别?

30.列的字符串类型可以是什么?

31.如何获取当前的Mysql版本?

32.Mysql中使用什么存储引擎?

33.Mysql驱动程序是什么?

34.TIMESTAMP在UPDATECURRENT_TIMESTAMP数据类型上做什么?

35.主键和候选键有什么区别?

36.如何使用Unixshell登录Mysql?

37.myisamchk是用来做什么的?

38.MYSQL数据库服务器性能分析的方法命令有哪些?

39.如何控制HEAP表的最大尺寸?

40.MyISAMStatic和MyISAMDynamic有什么区别?

41.federated表是什么?

42.如果一个表有一列定义为TIMESTAMP,将发生什么?

43.列设置为AUTOINCREMENT时,如果在表中达到最大值,会发生什么情况?

44.怎样才能找出最后一次插入时分配了哪个自动增量?

45.你怎么看到为表格定义的所有索引?

46.LIKE声明中的%和_是什么意思?

47.如何在Unix和Mysql时间戳之间进行转换?

48.列对比运算符是什么?

49.我们如何得到受查询影响的行数?

50.Mysql查询是否区分大小写?

51.LIKE和REGEXP操作有什么区别?

52.BLOB和TEXT有什么区别?

53.mysql_fetch_array和mysql_fetch_object的区别是什么?

54.我们如何在mysql中运行批处理模式?

55.MyISAM表格将在哪里存储,并且还提供其存储格式?

56.Mysql中有哪些不同的表格?

57.ISAM是什么?

58.InnoDB是什么?

59.Mysql如何优化DISTINCT?

60.如何输入字符为十六进制数字?

61.如何显示前50行?

62.可以使用多少列创建索引?

63.NOW()和CURRENT_DATE()有什么区别?

64.什么样的对象可以使用CREATE语句创建?

65.Mysql表中允许有多少个TRIGGERS?

66.什么是非标准字符串类型?

67.什么是通用SQL函数?

68.解释访问控制列表

69.MYSQL支持事务吗?

70.mysql里记录货币用什么字段类型好

71.MYSQL数据表在什么情况下容易损坏?

72.mysql有关权限的表都有哪几个?

73.Mysql中有哪几种锁?




MongoDB(33道)

1.你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?

2.NoSQL数据库有哪些类型?

3.MySQL与MongoDB之间最基本的差别是什么?

4.你怎么比较MongoDB、CouchDB及CouchBase?

5.MongoDB成为最好NoSQL数据库的原因是什么?

6.32位系统上有什么细微差别?

7.journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?

8.分析器在MongoDB中的作用是什么?

9.名字空间(namespace)是什么?

10.如果用户移除对象的属性,该属性是否从存储层中删除?

11.能否使用日志特征进行安全备份?

12.允许空值null吗?

13.更新操作立刻fsync到磁盘?

14.如何执行事务/加锁?

15.为什么我的数据文件如此庞大?

16.启用备份故障恢复需要多久?

17.什么是master或primary?

18.什么是secondary或slave?

19.我必须调用getLastError来确保写操作生效了么?

20.我应该启动一个集群分片(sharded)还是一个非集群分片的MongoDB环境?

21.分片(sharding)和复制(replication)是怎样工作的?

22.数据在什么时候才会扩展到多个分片(shard)里?

23.当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?

24.如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?

25.我可以把moveChunk目录里的旧文件删除吗?

26.我怎么查看Mongo正在使用的链接?

27.如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?

28.如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?

29.当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?

30.MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?

31.如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?

32.MongoDB支持存储过程吗?如果支持的话,怎么用?

33.如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?



Redis(51道)

1、什么是Redis?简述它的优缺点?

2、Redis与memcached相比有哪些优势?

3、Redis支持哪几种数据类型?

4、Redis主要消耗什么物理资源?

5、Redis有哪几种数据淘汰策略?

6、Redis官方为什么不提供Windows版本?

7、一个字符串类型的值能存储最大容量是多少?

8、为什么Redis需要把所有数据放到内存中?

9、Redis集群方案应该怎么做?都有哪些方案?

10、Redis集群方案什么情况下会导致整个集群不可用?

11、MySQL里有2000w数据redis中只存20w的数据,如何保证redis中的数据都是热点数据

12、Redis有哪些适合的场景?

13、Redis支持的Java客户端都有哪些?官方推荐用哪个?

14、Redis和Redisson有什么关系?

15、Jedis与Redisson对比有什么优缺点?

16、说说Redis哈希槽的概念?

17、Redis集群的主从复制模型是怎样的?

18、Redis集群会有写操作丢失吗?为什么?

19、Redis集群之间是如何复制的?

20、Redis集群最大节点个数是多少?

21、Redis集群如何选择数据库?

22、Redis中的管道有什么用?

23、怎么理解Redis事务?

24、Redis事务相关的命令有哪几个?

25、Rediskey的过期时间和永久有效分别怎么设置?

26、Redis如何做内存优化?

27、Redis回收进程如何工作的?

28.加锁机制

29.锁互斥机制

30.watchdog自动延期机制

31.可重入加锁机制

32.释放锁机制

33.上述Redis分布式锁的缺点

34.使用过Redis分布式锁么,它是怎么实现的?

35.使用过Redis做异步队列么,你是怎么用的?有什么缺点?

36.什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?

37.redis和memcached什么区别?为什么高并发下有时单线程的redis比多线程的memcached效率要高?

38.redis主从复制如何实现的?redis的集群模式如何实现?redis的key是如何寻址的?

39.使用redis如何设计分布式锁?说一下实现思路?使用zk可以吗?如何实现?这两种有什么区别?

40.知道redis的持久化吗?底层如何实现的?有什么优点缺点?

41.redis过期策略都有哪些?LRU算法知道吗?写一下java代码实现?

42.缓存穿透、缓存击穿、缓存雪崩解决方案?

43.在选择缓存时,什么时候选择redis,什么时候选择memcached

44.缓存与数据库不一致怎么办

45.主从数据库不一致如何解决

46.Redis常见的性能问题和解决方案

47.Redis的数据淘汰策略有哪些

48.Redis当中有哪些数据结构

49.假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?

50.使用Redis做过异步队列吗,是如何实现的

51.Redis如何实现延时队列



Spring(70道)

1.什么是spring?

2.使用Spring框架的好处是什么?

3.Spring由哪些模块组成?

4.核心容器(应用上下文)模块。

5.BeanFactory–BeanFactory实现举例。

6.XMLBeanFactory

7.解释AOP模块

8.解释JDBC抽象和DAO模块。

9.解释对象/关系映射集成模块。

10.解释WEB模块。

11.为什么说Spring是一个容器?

12.Spring配置文件

13.什么是SpringIOC容器?

14.IOC的优点是什么?

15.ApplicationContext通常的实现是什么?

16.Bean工厂和Applicationcontexts有什么区别?

17.一个Spring的应用看起来象什么?

18.什么是Spring的依赖注入?

19.有哪些不同类型的IOC(依赖注入)方式?

20.哪种依赖注入方式你建议使用,构造器注入,还是Setter方法注入?

21.什么是Springbeans?

22.一个SpringBean定义包含什么?

23.如何给Spring容器提供配置元数据?

24.你怎样定义类的作用域?

25.解释Spring支持的几种bean的作用域?

26.Spring框架中的单例bean是线程安全的吗?

27.解释Spring框架中bean的生命周期。

28.哪些是重要的bean生命周期方法?你能重载它们吗?

29.什么是Spring的内部bean?

30.在Spring中如何注入一个java集合?

31.什么是bean装配?

32.什么是bean的自动装配?

33.解释不同方式的自动装配。

34.自动装配有哪些局限性?

35.你可以在Spring中注入一个null和一个空字符串吗?

36.什么是基于Java的Spring注解配置?给一些注解的例子.

37.什么是基于注解的容器配置?

38.怎样开启注解装配?

39.@Required注解

40.@Autowired注解

41.@Qualifier注解

42.在Spring框架中如何更有效地使用JDBC?

43.JdbcTemplate

44.Spring对DAO的支持

45.使用Spring通过什么方式访问Hibernate?

46.Spring支持的ORM

47.如何通过HibernateDaoSupport将Spring和Hibernate结合起来?

48.Spring支持的事务管理类

49.Spring框架的事务管理有哪些优点?

50.你更倾向用那种事务管理类型?

51.解释AOP

52.Aspect切面

52.在SpringAOP中,关注点和横切关注的区别是什么?

53.连接点

54.通知

55.切点

56.什么是引入?

57.什么是目标对象?

58.什么是代理?

59.有几种不同类型的自动代理?

60.什么是织入。什么是织入应用的不同点?

61.解释基于XMLSchema方式的切面实现。

62.解释基于注解的切面实现

63.什么是Spring的MVC框架?

64.DispatcherServlet

65.WebApplicationContext

66.什么是SpringMVC框架的控制器?

67.@Controller注解

68.@RequestMapping注解

69.返回Json用什么注解?

70.Spring事务支持的隔离级别



SpringMVC(22道)

1、什么是SpringMvc?

2、SpringMVC的优点:

3、SpringMVC工作原理?

4、SpringMVC流程?

5、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?

6、如果你也用过struts2.简单介绍下springMVC和struts2的区别有哪些?

7、SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代?

8、@RequestMapping注解用在类上面有什么作用?

9、怎么样把某个请求映射到特定的方法上面?

10、如果在拦截请求中,我想拦截get方式提交的方法,怎么配置?

11、怎么样在方法里面得到Request,或者Session?

12、我想在拦截的方法里面得到从前台传入的参数,怎么得到?

13、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

14、SpringMvc中函数的返回值是什么?

15、SpringMVC怎么样设定重定向和转发的?

16、SpringMvc用什么对象从后台向前台传递数据的?

17、SpringMvc中有个类把视图和数据都合并的一起的,叫什么?

18、怎么样把ModelMap里面的数据放入Session里面?

19、SpringMvc怎么和AJAX相互调用的?

20、当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理?

21、SpringMvc里面拦截器是怎么写的

22、讲下SpringMvc的执行流程



MyBatis(36道)

1、什么是MyBatis?

2、讲下MyBatis的缓存

3、Mybatis是如何进行分页的?分页插件的原理是什么?

4、简述Mybatis的插件运行原理,以及如何编写一个插件?

5、Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?

6、#{}和${}的区别是什么?

7、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

8、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

9、MyBatis与Hibernate有哪些不同?

10、MyBatis的好处是什么?

11、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

12、什么是MyBatis的接口绑定,有什么好处?

13、接口绑定有几种实现方式,分别是怎么实现的?

14、什么情况下用注解绑定,什么情况下用xml绑定?

15、MyBatis实现一对一有几种方式?具体怎么操作的?

16、Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?

17、MyBatis里面的动态Sql是怎么设定的?用什么语法?

18、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

19、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?

20、当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定pojo?

21、模糊查询like语句该怎么写

22、通常一个Xml映射文件,都会写一个Dao接口与之对应,Dao的工作原理,是否可以重载?

23、Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?

24、Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

25、Mybatis中如何执行批处理?

26、Mybatis都有哪些Executor执行器?它们之间的区别是什么?

27、Mybatis中如何指定使用哪一种Executor执行器?

28、Mybatis执行批量插入,能返回数据库主键列表吗?

29、Mybatis是否可以映射Enum枚举类?

30、如何获取自动生成的(主)键值?

31、在mapper中如何传递多个参数?

32、resultTyperesultMap的区别?

33、使用MyBatis的mapper接口调用时有哪些要求?

34、Mybatis比IBatis比较大的几个改进是什么?

35、IBatis和MyBatis在核心处理类分别叫什么?

36、IBatis和MyBatis在细节上的不同有哪些?



SpringBoot(22道)

1.什么是SpringBoot?

2.SpringBoot有哪些优点?

3.什么是JavaConfig?

4.如何重新加载SpringBoot上的更改,而无需重新启动服务器?

5.SpringBoot中的监视器是什么?

6.如何在SpringBoot中禁用Actuator端点安全性?

7.如何在自定义端口上运行SpringBoot应用程序?

8.什么是YAML?

9.如何集成SpringBoot和ActiveMQ?

10.如何集成SpringBoot和ActiveMQ?

11.如何使用SpringBoot实现分页和排序

12.什么是Swagger?你用SpringBoot实现了它吗?

13.什么是SpringProfiles?

14.什么是SpringBatch?

15.什么是FreeMarker模板?

16.如何使用SpringBoot实现异常处理?

17.您使用了哪些startermaven依赖项?

18.什么是CSRF攻击?

19.什么是WebSockets?

20.什么是AOP?

21.什么是ApacheKafka?

22.我们如何监视所有SpringBoot微服务?



SpringCloud(8道)

1.什么是SpringCloud?

2.使用SpringCloud有什么优势?

3.服务注册和发现是什么意思?SpringCloud如何实现?

4.负载平衡的意义什么?

5.什么是Hystrix?它如何实现容错?

6.什么是Hystrix断路器?我们需要它吗?

7.什么是NetflixFeign?它的优点是什么?

8.什么是SpringCloudBus?我们需要它吗?



Dubbo (45道)

1.Dubbo支持哪些协议,每种协议的应用场景,优缺点?

2.Dubbo超时时间怎样设置?

3.Dubbo有些哪些注册中心?

4.Dubbo集群的负载均衡有哪些策略

5.Dubbo是什么?

6.Dubbo的主要应用场景?

7.Dubbo的核心功能?

8.Dubbo的核心组件?

9.Dubbo服务注册与发现的流程?

10.设计的原因

11.Dubbo的架构设计?

12.Dubbo框架设计一共划分了10个层

13.Dubbo的服务调用流程?

14.Dubbo支持哪些协议,每种协议的应用场景,优缺点?

15.dubbo推荐用什么协议?

16.Dubbo有些哪些注册中心?

17.Dubbo默认采用注册中心?

18.为什么需要服务治理?

19.Dubbo的注册中心集群挂掉,发布者和订阅者之间还能通信么?

20.Dubbo与Spring的关系?

21.Dubbo使用的是什么通信框架?

22.Dubbo集群提供了哪些负载均衡策略?

23.Dubbo的集群容错方案有哪些?

24.Dubbo的默认集群容错方案?

25.Dubbo支持哪些序列化方式?

26.Dubbo超时时间怎样设置?

27.服务调用超时问题怎么解决?

28.Dubbo在安全机制方面是如何解决?

29.Dubbo和Dubbox之间的区别?

30.Dubbo和SpringCloud的关系?

31.Dubbo和SpringCloud的区别?

32.Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?

33.dubbo服务负载均衡策略?

34.Dubbo在安全机制方面是如何解决的

35.dubbo连接注册中心和直连的区别

36.dubbo服务集群配置(集群容错模式)

37.dubbo通信协议dubbo协议为什么要消费者比提供者个数多

38.dubbo通信协议dubbo协议为什么不能传大包

39.dubbo通信协议dubbo协议为什么采用异步单一长连接

40.dubbo通信协议dubbo协议适用范围和适用场景

41.RMI协议

42.Hessian协议

43.http

44.Webservice

45.Thrif



Zookeeper  (23道)

1.ZooKeeper是什么?

2.ZooKeeper提供了什么?

3.Zookeeper文件系统

4.四种类型的znode

5.Zookeeper通知机制

6.Zookeeper做了什么?

7.zk的命名服务(文件系统)

8.zk的配置管理(文件系统、通知机制)

9.Zookeeper集群管理(文件系统、通知机制)

10.Zookeeper分布式锁(文件系统、通知机制)

11.获取分布式锁的流程

12.Zookeeper队列管理(文件系统、通知机制)

13.Zookeeper数据复制

14.Zookeeper工作原理

15.zookeeper是如何保证事务的顺序一致性的?

16.Zookeeper下Server工作状态

17.zookeeper是如何选取主leader的?

18.Zookeeper同步流程

19.分布式通知和协调

20.机器中为什么会有leader?

21.zk节点宕机如何处理?

22.zookeeper负载均衡和nginx负载均衡区别

23.zookeeperwatch机制



 ActiveMQ(7道)

1.什么是ActiveMQ?

2. ActiveMQ服务器宕机怎么办?

3.丢消息怎么办?

4.持久化消息非常慢。

5.消息的不均匀消费。

6.死信队列。

7. ActiveMQ中的消息重发时间间隔和重发次数吗?



 RabbitMQ(24道)

1.RabbitMQ中的broker是指什么?cluster又是指什么?

2.什么是元数据?元数据分为哪些类型?包括哪些内容?与cluster相关的元数据有哪些?元数据是如何保存的?元数据在cluster中是如何分布的?

3.RAMnode和disknode的区别?

4.RabbitMQ上的一个queue中存放的message是否有数量限制?

5.RabbitMQ概念里的channel、exchange和queue这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?

6.vhost是什么?起什么作用?

7.在单node系统和多node构成的cluster系统中声明queue、exchange,以及进行binding会有什么不同?

8.客户端连接到cluster中的任意node上是否都能正常工作?

9.若cluster中拥有某个queue的ownernode失效了,且该queue被声明具有durable属性,是否能够成功从其他node上重新声明该queue?

10.cluster中node的失效会对consumer产生什么影响?若是在cluster中创建了mirroredqueue,这时node失效会对consumer产生什么影响?

11.能够在地理上分开的不同数据中心使用RabbitMQcluster么?

12.为什么heavyRPC的使用场景下不建议采用disknode?

13.向不存在的exchange发publish消息会发生什么?向不存在的queue执行consume动作会发生什么?

14.routing_key和binding_key的最大长度是多少?

15.RabbitMQ允许发送的message最大可达多大?

16.什么情况下producer不主动创建queue是安全的?

17.“deadletter”queue的用途?

18.为什么说保证message被可靠持久化的条件是queue和exchange具有durable属性,同时message具有persistent属性才行?

19.什么情况下会出现blackholed问题?

20.如何防止出现blackholed问题?

21.ConsumerCancellationNotification机制用于什么场景?

22.Basic.Reject的用法是什么?

23.为什么不应该对所有的message都使用持久化机制?

24.RabbitMQ中的cluster、mirroredqueue,以及warrens机制分别用于解决什么问题?存在哪些问题?



Kafka (17道)

1.Kafka的设计时什么样的呢?

2.数据传输的事物定义有哪三种?

3.Kafka判断一个节点是否还活着有那两个条件?

4.producer是否直接将数据发送到broker的leader(主节点)?

5、Kafaconsumer是否可以消费指定分区消息?

6、Kafka消息是采用Pull模式,还是Push模式?

7.Kafka存储在硬盘上的消息格式是什么?

8.Kafka高效文件存储设计特点:

9.Kafka与传统消息系统之间有三个关键区别

10.Kafka创建Topic时如何将分区放置到不同的Broker中副本因子不能大于Broker的个数;

11.Kafka新建的分区会在哪个目录下创建

12.partition的数据如何保存到硬盘

13.kafka的ack机制

14.Kafka的消费者如何消费数据

15.消费者负载均衡策略

16.数据有序

17.kafaka生产数据数据的分组策略



消息中间件(14道)

1.activemq的几种通信方式

2.activemq如果数据提交不成功怎么办(消息丢失)

3.如何解决消息重复问题

4.大量的消息每页被消费,能否发生oom异常?

5.activeMQ发送消息的方式有哪些?

6.activeMQ如何调优

7.什么是死信队列?

8.Basic.Reject的用法是什么?

9.为什么不应该对所有的message都使用持久化机制?

10.为什么heavyRPC的使用场景下不建议采用disknode?

11.向不存在的exchange发publish消息会发生什么?向不存在的queue执行consume动作会发生什么?

12.什么情况下producer不主动创建queue是安全的?

13.“deadletter”queue的用途?

14.为什么说保证message被可靠持久化的条件是queue和exchange具有durable属性,同时message具有persistent属性才行?




 Netty(10道)

1.BIO、NIO和AIO的区别?

2.NIO的组成?

3.Netty的特点?

4.Netty的线程模型?

5.TCP粘包/拆包的原因及解决方法?

6.了解哪几种序列化协议?

7.如何选择序列化协议?

8.Netty的零拷贝实现?

9.Netty的高性能表现在哪些方面?

10.NIOEventLoopGroup源码?



Linux(11道)

1.绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

2.怎么查看当前进程?怎么执行退出?怎么查看当前路径?

3.怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?

4.Ls 命令执行什么功能?可以带哪些参数,有什么区别?

5.建立软链接(快捷方式),以及硬链接的命令。

6.目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?

7.查看文件内容有哪些命令可以使用?

8.随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?

9.终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?

10.移动文件用哪个命令?改名用哪个命令?

11.使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?



设计模式 (10道)

1.请列举出在JDK中几个常用的设计模式?

2.什么是设计模式?你是否在你的代码里面使用过任何设计模式?

3.Java中什么叫单例设计模式?请用Java写出线程安全的单例模式

4.在Java中,什么叫观察者设计模式(observerdesignpattern)?

5.使用工厂模式最主要的好处是什么?在哪里使用?

6.举一个用Java实现的装饰模式(decoratordesignpattern)?它是作用于对象层次还是类层次?

7.在Java中,为什么不允许从静态方法中访问非静态变量?

8.设计一个ATM机,请说出你的设计思路?

9.在Java中,什么时候用重载,什么时候用重写?

10.举例说明什么情况下会更倾向于使用抽象类而不是接口?



数据结构与算法 (12道)

1.说⼀下⼏种常⻅的排序算法和分别的复杂度

2.⽤java写⼀个冒泡排序算法

3.描述⼀下链式存储结构

4.如何遍历⼀颗⼆叉树

5.倒排⼀个LinkedList

6.⽤java写⼀个递归遍历⽬录下⾯的所有⽂件(directory.listFiles())

7.⼆叉树与红⿊树

8.b-tree、b+tree多叉树

9.谈谈数据结构,⽐如TreeMap

10.图的深度遍历和⼴度遍历

11.介绍⼀下红⿊树、⼆叉平衡树

12.说说java集合,每个集合下⾯有哪些实现类,及其数据结构。

 计算机网络(13道)

1.TCP建⽴连接的过程。

2.TCP断开连接的过程。

3.浏览器发⽣302跳转背后的逻辑?

4.HTTP协议的交互流程。HTTP和HTTPS的差异,SSL的交互流程?

5.Rest和Http什么关系?⼤家都说Rest很轻置,你对Rest⻛格如何理解?

6.TCP的滑动窗⼝协议有什么⽤?讲讲原理。

7.HTTP协议都有哪些⽅法?

8.交换机与路由器的区别?

9.Socket⽹络通信、NIO流以及多线程处理技术,Netty、Mina?

10.http协议(报⽂结构,断点续传,多线程下载,什么是⻓连接)

11.get与post区别

12.Nginx性能调优

13.rpc和http的区别,使⽤场景:

 人事问题(17道)

1.请你自我介绍一下你自己

2.你最大的优点和缺点是什么?

3.谈谈你对公司加班的看法?

4.你对薪资的要求?

5.在未来的五年的时间内,你的职业规划是什么?

6.谈谈你的朋友对你的评价是什么?

7.你还有什么问题要问吗?

8.如果我们公司录用了你,但你却在工作后发现根本不适合这个职位,你怎么办?

9.如果你出现工作失误,给公司造成经济损失,你认为该怎么办?

10.如果你做的一项工作受到上级表扬,主管却说是他做的,你该怎样?

11.谈谈你对跳槽的看法?

12.谈谈工作中你难以和同事、上级相处,你该怎么办?

13.你因工作比较突出,虽说得到领导肯定,但同事越来越孤立你,你该怎么办?

14.说说你选择这份工作的动机

15.你能为我们公司带来什么呢?

16.说说喜欢这份工作的哪一点?

17.你是怎样看待学历和能力的?

115个Java面试题

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

2.JDK和JRE的区别是什么?

3.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

4.是否可以在static环境中访问非static变量?

5.Java支持的数据类型有哪些?什么是自动拆装箱?

6.Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

7.Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

8.Java支持多继承么?

9.接口和抽象类的区别是什么?

10.什么是值传递和引用传递?

11.进程和线程的区别是什么?

12.创建线程有几种不同的方式?你喜欢哪一种?为什么?

13.概括的解释下线程的几种可用状态。

14.同步方法和同步代码块的区别是什么?

15.在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?

16.什么是死锁(deadlock)?

17.如何确保N个线程可以访问N个资源同时又不导致死锁?

18.Java集合类框架的基本接口有哪些?

19.为什么集合类没有实现Cloneable和Serializable接口?

20.什么是迭代器(Iterator)?

21.Iterator和ListIterator的区别是什么?

22.快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?

23.Java中的HashMap的工作原理是什么?

24.hashCode()和equals()方法的重要性体现在什么地方?

25.HashMap和Hashtable有什么区别?

26.数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?

27.ArrayList和LinkedList有什么区别?

28.Comparable和Comparator接口是干什么的?列出它们的区别。

29.什么是Java优先级队列(Priority Queue)?

30.你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么?

31.如何权衡是使用无序的数组还是有序的数组?

32.Java集合类框架的最佳实践有哪些?

33.Enumeration接口和Iterator接口的区别有哪些?

34.HashSet和TreeSet有什么区别?

35.Java中垃圾回收有什么目的?什么时候进行垃圾回收?

36.System.gc()和Runtime.gc()会做什么事情?

37.finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

38.如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

39.Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?

40.串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?

41.在Java中,对象什么时候可以被垃圾回收?

42.JVM的永久代中会发生垃圾回收么?

43.Java中的两种异常类型是什么?他们有什么区别?

44.Java中Exception和Error有什么区别?

45.1 throw和throws有什么区别?

45.2异常处理的时候,finally代码块的重要性是什么?

46.异常处理完成以后,Exception对象会发生什么变化?、

47.finally代码块和finalize()方法有什么区别?

48.什么是Applet?

49.解释一下Applet的生命周期

50.当applet被载入的时候会发生什么?

51.Applet和普通的Java应用程序有什么区别?

52.Java applet有哪些限制条件?

53.什么是不受信任的applet?

54.从网络上加载的applet和从本地文件系统加载的applet有什么区别?

55.applet类加载器是什么?它会做哪些工作?

56.applet安全管理器是什么?它会做哪些工作?

57.弹出式选择菜单(Choice)和列表(List)有什么区别

58.什么是布局管理器?

59.滚动条(Scrollbar)和滚动面板(JScrollPane)有什么区别?

60.哪些Swing的方法是线程安全的?

61.说出三种支持重绘(painting)的组件。

62.什么是裁剪(clipping)?

63.MenuItem和CheckboxMenuItem的区别是什么?

64.边缘布局(BorderLayout)里面的元素是如何布局的?

65.网格包布局(GridBagLayout)里面的元素是如何布局的?

66.Window和Frame有什么区别?

67.裁剪(clipping)和重绘(repainting)有什么联系?

68.事件监听器接口(event-listener interface)和事件适配器(event-adapter)有什么关系?

69.GUI组件如何来处理它自己的事件?

70.Java的布局管理器比传统的窗口系统有哪些优势?

71.Java的Swing组件使用了哪种设计模式?

72.什么是JDBC?

73.解释下驱动(Driver)在JDBC中的角色。

74.Class.forName()方法有什么作用?

75.PreparedStatement比Statement有什么优势?

76.什么时候使用CallableStatement?用来准备CallableStatement的方法是什么?

77.数据库连接池是什么意思?

78.什么是RMI?

79.RMI体系结构的基本原则是什么?

80.RMI体系结构分哪几层?

81.RMI中的远程接口(Remote Interface)扮演了什么样的角色?

82.java.rmi.Naming类扮演了什么样的角色?

83.RMI的绑定(Binding)是什么意思?

84.Naming类的bind()和rebind()方法有什么区别?

85.让RMI程序能正确运行有哪些步骤?

86.RMI的stub扮演了什么样的角色?

87.什么是分布式垃圾回收(DGC)?它是如何工作的?

88.RMI中使用RMI安全管理器(RMISecurityManager)的目的是什么?

89.解释下Marshalling和demarshalling。

90.解释下Serialization和Deserialization。

91.什么是Servlet?

92.说一下Servlet的体系结构。

93.Applet和Servlet有什么区别?

94.GenericServlet和HttpServlet有什么区别?

95.解释下Servlet的生命周期。

96.doGet()方法和doPost()方法有什么区别?

97.什么是Web应用程序?

98.什么是服务端包含(Server Side Include)?

99.什么是Servlet链(Servlet Chaining)?

100.如何知道是哪一个客户端的机器正在请求你的Servlet?

101.HTTP响应的结构是怎么样的?

102.什么是cookie?session和cookie有什么区别?

103.浏览器和Servlet通信使用的是什么协议?

104.什么是HTTP隧道?

105.sendRedirect()和forward()方法有什么区别?

106.什么是URL编码和URL解码?

107.什么是JSP页面?

108.JSP请求是如何被处理的?

109.JSP有什么优点?

110.什么是JSP指令(Directive)?JSP中有哪些不同类型的指令?

111.什么是JSP动作(JSP action)?

112.什么是Scriptlets?

113.声明(Decalaration)在哪里?

114.什么是表达式(Expression)?

115.隐含对象是什么意思?有哪些隐含对象?


#Java开发##后端开发##面试##Java找工作##大厂#
全部评论
有参考答案就好了
点赞 回复 分享
发布于 2022-09-02 21:39 河南

相关推荐

11-11 14:21
西京学院 C++
Java抽象练习生:教育背景放最前面,不要耍小聪明
点赞 评论 收藏
分享
3 40 评论
分享
牛客网
牛客企业服务