Java常见面试题

以下的问题都是笔者最近在面试当中遇到的,大概就整理了这么些吧,先把问题整理出来,答案后续会补上,网上都能找到答案的,也算是对自己的一次检测和回顾。总体上来说不是很难,常用的技术基本都问到了,主要考察的偏向底层以及实际项目中的一些问题。这几天面试给我最大的感觉就是公司想找的不仅仅是你会写代码,还要明白你用的这个技术的实现原理以及你对这个技术的理解以及你在项目当中是怎么用的。所以平时写代码的时候还是多想一下为什么这个技术能实现某个功能,它的底层怎么实现的。项目上为什么会用到这个技术,这样用的好处是什么。希望大家在以后的工作当中留意下这方面,不要纯粹的为了写代码而写代码。

为保证相关问题解答的专业性和完整性,就不在此赘述笔者的答案了。不过笔者已在网上找到感觉比较合理且专业的答案,为提高可读性已将答案附着于问题下面,为不侵犯原作者版权已在每个问题下面注明原文出处。

1、什么是单例?都有哪几种实现方式?
2、Synchronized 与 Lock 的区别是什么?
原文出处:https://www.jianshu.com/p/b343a9637f95
3、HashMap 与 ConcurrentHashMap 的 区别是什么?JDK7、JDK8中的实现方式分别有什么不同?
原文出处:http://www.importnew.com/28263.html
4、MySQL数据库索引的实现机制以及锁机制?
5、MySQL的三范式是什么?何时降低标准,如何降低?
三范式原文出处:https://www.cnblogs.com/gdwkong/p/9012262.html
何时降低标准,如何降低:待查。

6、1 — 100的5个随机数,并判断是否连续(写出代码)?
7、说下Spring 与 SpringMVC的区别及联系?
8、说下你对Spring IOC 及 AOP的理解?
9、说下你对反射的理解?
10、说下你对JVM的理解?
11、你们项目中的事务是怎么处理的?
12、Nginx都有哪些用途?分别都是怎么做的?
13、你们项目中的分页是怎么做的,实现原理是什么?
14、mybatis的一对一,一对多你们是怎么做的?
15、mybatis的缓存你知道多少?
16、我想要一个有序的集合,你会怎么做?
17、我现在有一个集合,不想让其他人给这个集合中添加(put)元素,怎么做?
18、List 集合 与 Map 集合的区别?
19、MySQL的事务隔离级别?
20、Map 的 Key 可以重复吗?为什么?
21、#{} 与 ${} 的区别是什么?什么是SQL注入?
22、zookeeper的服务提供方挂了如何告知消费方?
23、Synchronized 加在方法上用的什么锁?
24、ajax是如何跨域的 ?
25、SQL分组进行过滤用什么?
26、SpringMVC 常用的注解有哪些 ?简要说下用途?
27、SpringMVC的执行流程是什么?
28、SpringMVC的执行原理是什么?
29、dubbo的RPC调用是怎么回事?
30、Spring 中 AOP 进行切面有几种方式?适应场景分别是什么?
31、什么是异步通信,Java如何实现(精确到类)?
32、如何实现将单机多核并行工作?Java如何实现(精确到类)?
33、解释下什么是方法覆盖、方法重载、方法重写?
34、union 、union all 有用过吗?说说你的理解以及他们的区别?
35、mybatis批量插入有用过吗?需要注意什么?
36、抽象类与接口的区别?
38、写出oracle 或 MySQL 中删除表中重复记录的语句?
39、服务器重定向的方式有_____?
40、ArrayList List = new ArrayList(20)中的List 扩充了几次?为什么?(面试或笔试)
41、说下SQL中 truncate、delete、drop的区别?(面试或笔试)
42、能从存储性能和特性方面说下ArrayList、Vector、LinkedList的区别吗?
44、数组是怎么进行元素的增删改查的?
45、能写一个SingLeton 的例子吗?
46、能写一个工厂模式的例子吗?
47、实例方法和静态方法有什么区别?请举例说明?
48、面向对象中的接口有什么作用?一般在什么情况下使用?请举例说明?
49、分别举例一个泛型类和泛型方法的区别?
50、Long型怎么比较是否相等,Long 型 和 double型 怎么互相转换?
51、MySQL中varchar 与 char 的区别是什么?varchar(50)中的50代表的含义?
52、redis的使用场景是什么?
53、servlet的生命周期?
54、get 与 post 的区别?它们的机制有什么不同?
55、什么是缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级?
56、索引有了解过吗?索引会造成什么弊端?
57、线程有几种状态?线程的实现方式有几种?
58、说下 你对static 的理解和应用?
59、JQuery的选择器可以说几个吗?
60、使用过Maven继承机制吗?具体是怎么用的?
61、高并发方面你们都做过什么?
62、你们项目上redis的内存设计是多大?
63、redis有几种数据类型,说说你对这几种数据类型的理解?常用的是什么?你们是怎么用的?
64、SQL的优化可以说几个吗?
65、redis的分布式锁是怎么用的?
66、JDK8的新特性你知道哪些?
67、说下你对MVC框架的理解?
68、连接池有用过吗?怎么用的?
69、break 和 continue 的区别?
70、什么情况下 会发生栈内存溢出?
71、String、StringBuffer、StringBuilder的区别?String为什么是不可变的?
72、什么是值传递和引用传递?
73、& 与 && 的区别?
74、int 和 Integer 的区别是什么?
75、说说你对 limit 是怎么用的?

各位小伙伴,也可以说说你们在面试当中遇到的问题,大家互相交流。谁有比较好的答案可以在评论区留言,或者在评论区直接留下链接。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值