常见java面试题

常见Java面试题

0.JDK1.8新特性?

1.JDK 和 JRE 有什么区别?

2.== 和 equals 的区别是什么?

3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

4.final 在 java 中有什么作用?

5.java 中的 Math.round(-1.5) 等于多少?

6.String 属于基础的数据类型吗?

7.java 中操作字符串都有哪些类?它们之间有什么区别?

8.String str="i"与 String str=new String(“i”)一样吗?

9.如何将字符串反转?

10.String 类的常用方法都有那些?

11.抽象类必须要有抽象方法吗?

12.普通类和抽象类有哪些区别?

13.抽象类能使用 final 修饰吗?

14.接口和抽象类有什么区别?

15.java 中 IO 流分为几种?

16.BIO、NIO、AIO 有什么区别?

17.Files的常用方法都有哪些?

二、容器
18.java 容器都有哪些?

19.Collection 和 Collections 有什么区别?

20.List、Set、Map 之间的区别是什么?

21.HashMap 和 Hashtable 有什么区别?

22.如何决定使用 HashMap 还是 TreeMap?

23.说一下 HashMap 的实现原理?

24.说一下 HashSet 的实现原理?

25.ArrayList 和 LinkedList 的区别是什么?

26.如何实现数组和 List 之间的转换?

27.ArrayList 和 Vector 的区别是什么?

28.Array 和 ArrayList 有何区别?

29.在 Queue 中 poll()和 remove()有什么区别?

30.哪些集合类是线程安全的?

31.迭代器 Iterator 是什么?

32.Iterator 怎么使用?有什么特点?

33.Iterator 和 ListIterator 有什么区别?

34.怎么确保一个集合不能被修改?
三、多线程
35.并行和并发有什么区别?36.线程和进程的区别?37.守护线程是什么?38.创建线程有哪几种方式?39.说一下 runnable 和 callable 有什么区别?40.线程有哪些状态?41.sleep() 和 wait() 有什么区别?42.notify()和 notifyAll()有什么区别?43.线程的 run()和 start()有什么区别?44.创建线程池有哪几种方式?45.线程池都有哪些状态?46.线程池中 submit()和 execute()方法有什么区别?47.在 java 程序中怎么保证多线程的运行安全?48.多线程锁的升级原理是什么?49.什么是死锁?50.怎么防止死锁?51.ThreadLocal 是什么?有哪些使用场景?52.说一下 synchronized 底层实现原理?53.synchronized 和 volatile 的区别是什么?54.synchronized 和 Lock 有什么区别?55.synchronized 和 ReentrantLock 区别是什么?56.说一下 atomic 的原理
四、反射
57.什么是反射?58.什么是 java 序列化?什么情况下需要序列化?59.动态代理是什么?有哪些应用?60.怎么实现动态代理?五、对象拷贝61.为什么要使用克隆?62.如何实现对象克隆?63.深拷贝和浅拷贝区别是什么?六、Java Web64.1跨域问题67.session 和 cookie 有什么区别?68.说一下 session 的工作原理?69.如果客户端禁止 cookie 能实现 session 还能用吗?71.如何避免 sql 注入?72.什么是 XSS 攻击,如何避免?73.什么是 CSRF 攻击,如何避免?七、异常74.throw 和 throws 的区别?75.final、finally、finalize 有什么区别?76.try-catch-finally 中哪个部分可以省略?77.try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?78.常见的异常类有哪些?八、网络79.http 响应码 301 和 302 代表的是什么?有什么区别?80.forward 和 redirect 的区别?81.简述 tcp 和 udp的区别?82.tcp 为什么要三次握手,两次不行吗?为什么?83.说一下 tcp 粘包是怎么产生的?84.OSI 的七层模型都有哪些?85.get 和 post 请求有哪些区别?86.如何实现跨域?87.说一下 JSONP 实现原理?九、设计模式88.说一下你熟悉的设计模式?89.简单工厂和抽象工厂有什么区别?十、Spring/Spring MVC90.为什么要使用 spring?91.解释一下什么是 aop?92.解释一下什么是 ioc?93.spring 有哪些主要模块?94.spring 常用的注入方式有哪些?95.spring 中的 bean 是线程安全的吗?96.spring 支持几种 bean 的作用域?97.spring 自动装配 bean 有哪些方式?98.spring 事务实现方式有哪些?99.说一下 spring 的事务隔离?100.说一下 spring mvc 运行流程?101.spring mvc 有哪些组件?102.@RequestMapping 的作用是什么?103.@Autowired 的作用是什么?十一、Spring Boot/Spring Cloud104.什么是 spring boot?105.为什么要用 spring boot?106.spring boot 核心配置文件是什么?107.spring boot 配置文件有哪几种类型?它们有什么区别?108.spring boot 有哪些方式可以实现热部署?109.jpa 和 hibernate 有什么区别?110.什么是 spring cloud?111.spring cloud 断路器的作用是什么?112.spring cloud 的核心组件有哪些?十二、Mybatis125.mybatis 中 #{}和 ${}的区别是什么?126.mybatis 有几种分页方式?127.RowBounds 是一次性查询全部结果吗?为什么?128.mybatis 逻辑分页和物理分页的区别是什么?129.mybatis 是否支持延迟加载?延迟加载的原理是什么?130.说一下 mybatis 的一级缓存和二级缓存?131.mybatis 和 hibernate 的区别有哪些?132.mybatis 有哪些执行器(Executor)?133.mybatis 分页插件的实现原理是什么?134.mybatis 如何编写一个自定义插件?
十三、Redis
135.redis 是什么?都有哪些使用场景?136.redis 有哪些功能?137.redis 和 memecache 有什么区别?138.redis 为什么是单线程的?139.什么是缓存穿透?怎么解决?140.redis 支持的数据类型有哪些?141.redis 支持的 java 客户端都有哪些?142.jedis 和 redisson 有哪些区别?143.怎么保证缓存和数据库数据的一致性?144.redis 持久化有几种方式?145.redis 怎么实现分布式锁?146.redis 分布式锁有什么缺陷?147.redis 如何做内存优化?148.redis 淘汰策略有哪些?149.redis 常见的性能问题有哪些?该如何解决?十九、JVM150.说一下 jvm 的主要组成部分?及其作用?151.说一下 jvm 运行时数据区?152.说一下堆栈的区别?153.队列和栈是什么?有什么区别?154.什么是双亲委派模型?155.说一下类加载的执行过程?156.怎么判断对象是否可以被回收?157.java 中都有哪些引用类型?158.说一下 jvm 有哪些垃圾回收算法?159.说一下 jvm 有哪些垃圾回收器?160.详细介绍一下 CMS 垃圾回收器?161.新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?162.简述分代垃圾回收器是怎么工作的?163.说一下 jvm 调优的工具?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值