2021Java面试题汇编参考.pdf
《2021Java面试题汇编参考.pdf》由会员分享,可在线阅读,更多相关《2021Java面试题汇编参考.pdf(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、Java基础 111.JDK和 JRE有什么区别?.112.=和 equals的区别是什么?.113.两个对象的hashCode。相同,则 equals。也一定为tru e,对吗?114.final在 java中有什么作用?.115.java 中的 Math.round(-1.5)等于多少?.116.String属于基础的数据类型吗?.117.java中操作字符串都有哪些类?它们之间有什么区别?.118.String str=i与 String str=new String*)一样吗?.129.如何将字符串反转?.1210.String类的常用方法都有那些?.1211.抽象类必须要有抽象方
2、法吗?.1212.普通类和抽象类有哪些区别?.1213.抽象类能使用final修饰吗?.1214.接口和抽象类有什么区别?.1215.java中 IO流分为几种?.1216.BIO.NIO、AIO 有什么区别?.1317.Files的常用方法都有哪些?.13二、容器1418.java容器都有哪些?.1419.Collection 和 Collections 有什么区别?.1420.List、Set、Map之间的区别是什么?.1421.HashMap 和 HashTable 有什么区别?.1422.如何决定使用HashMap还是TreeMap?.1423.说一下HashMap的实现原理?.14第
3、1页yasin24.说一下HashSet的实现原理?.1525.Array Li st 和 Linked List 的区别是什么?.1526.如何实现数组和List之间的转换?.1527.Array List 和 Vector 的区别是什么?.1528.Array 和 Array List 有何区另 IJ?.1529.在 Queue中 poll。和 remove。有什么区别?.1530.哪些集合类是线程安全的?.1531.迭代器Iterator是什么?.1532.Iterator怎么使用?有什么特点?.1533.Iterator 和 Listiterator 有什么区别?.16三、多线程 16
4、34.什么是线程?.1635.并行和并发有什么区别?.1636.线程和进程的区别?.1637.守护线程是什么?.1638.创建线程有哪几种方式?.1639.说一下runnable和 callable有什么区别?.1740.线程有哪些状态?.1741.sleep。和 wait。有什么区别?.1742.notify。和 notify All。有什么区别?.1743.线程的run。和 start。有什么区别?.1844.创建线程池有哪几种方式?.1845.线程池都有哪些状态?.1846.线程池中submit。和 execute。方法有什么区别?.1947.在 java程序中怎么保证多线程的运行安全?
5、.19第2页yasin48.多线程锁的升级原理是什么?.1949.什么是死锁?.1950.怎么防止死锁?.1951.ThreadLocal是什么?有哪些使用场景?.2052.说一下synchronized底层实现原理?.2053.synchronized 和 volatile 的区别是什么?.2054.synchronized 和 Lock 有 彳 十 么 区 另IJ?.2055.synchronized 和 ReentrantLock 区别是什么?.2156.说下 atomic的原理?.21四、反射2157.什么是反射?.2158.什么是java序列化?什么情况下需要序列化?.2159.动态
6、代理是什么?有哪些应用?.2160.怎么实现动态代理?.22五、对象拷贝 2261.为什么要使用克隆?.2262.如何实现对象克隆?.2263.深拷贝和浅拷贝区别是什么?.22六、Java Web 2264.jsp 和 servlet 有什么区另!J?.2265.jsp有哪些内置对象?作用分别是什么?.2366.说一下js p的4种作用域?.2367.session 和 cookie 有什么区另I?.2368.说一下session的工作原理?.2469.如果客户端禁止cookie能实现session还能用吗?.24第3页yasin70.spring mvc 和 struts 的区别是什么?.2
7、471.如何避免sql注入?.2572.什么是XSS攻击,如何避免?.2573.什么是CSRF攻击,如何避免?.25七、异常2674.throw 和 throws 的区另IJ?.2675.finaL finally、finalize 有什么区另lj?.2676.try-catch-finally中哪个部分可以省略?.2677.try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?2678.常见的异常类有哪些?.26八、网络2779.http响应码301和 302代表的是什么?有什么区别?.2780.forward 和 redirect 的区
8、另lj?.2781.简述tcp和 udp的区另!?.2782.tcp为什么要三次握手,两次不行吗?为什么?.2883.说一下tcp粘包是怎么产生的?.2884.OSI的七层模型都有哪些?.2885.get和 post请求有哪些区别?.2886.如何实现跨域?.2887.说一下JSONP实现原理?.30九、设计模式 3088.说一下你熟悉的设计模式?.3089.简单工厂和抽象工厂有什么区别?.30十、Spring/Spring MVC 3190.为什么要使用spring?.31第4页yasin91.解释一下什么是aop?.3192.解释一下什么是ioc?.3293.spring有哪些主要模块?.
9、3294.spring常用的注入方式有哪些?.3295.spring中的bean是线程安全的吗?.3296.spring支持几种bean的作用域?.3297.spring自动装配bean有哪些方式?.3398.spring事务实现方式有哪些?.3399.说下 spring的事务隔离?.33100.说一下spring mvc运 彳 亍;充 程?.34101.spring mvc 有哪些组件?.34102.RequestMapping 的作用是什么?.34103.Autowired的作用是什么?.35十一、Spring Boot/Spring Cloud 35104.什么是 spring boot
10、?.35105.为什么要用 spring boot?.35106.spring boot核心配置文件是什么?.35107.spring boot配置文件有哪几种类型?它们有什么区别?.35108.spring boot有哪些方式可以实现热部署?.35109.jpa 和 hibernate 有什么区另IJ?.36110.什么是 spring cloud?.36111.spring cloud断路器的作用是什么?.37112.spring cloud的核心组件有哪些?.37十二、Hibernate 37113.为什么要使用hibernate?.37第5页yasin114.什么是ORM框架?.381
11、15.hibernate中如何在控制台查看打印的sql语句?.38116.hibernate有几种查询方式?.38117.hibernate实体类可以被定义为final吗?.38118.在 hibernate中使用Integer和 int做映射有什么区别?.38119.hibernate是如何工作的?.38120.get。和 load。的区别?.39121.说一下hibernate的缓存机制?.39122.hibernate对象有哪些状态?.39123.在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?39124.hibernate实体类
12、必须要有无参构造函数吗?为什么?.40十三、Mybatis 40125.mybatis中#和$的区别是什么?.40126.mybatis有几种分页方式?.40127.什么是mybatis?.40128.mybatis逻辑分页和物理分页的区别是什么?.40129.mybatis是否支持延迟加载?延迟加载的原理是什么?.40130.说一下mybatis的一级缓存和二级缓存?.41131.mybatis 和 hibernate 的区别有哪些?.41132.mybatis 有哪些执行器(Executor)?.41133.mybatis分页插件的实现原理是什么?.41134.mybatis如何编写一个自
13、定义插件?.41十四、RabbitMQ 42135.rabbitmq的使用场景有哪些?.42136.rabbitmq有哪些重要的角色?.42第6页yasin137.rabbitmq有哪些重要的组件?.42138.rabbitmq中 vhost的作用是什么?.42139.rabbitmq的消息是怎么发送的?.43140.rabbitmq怎么保证消息的稳定性?.43141.rabbitmq怎么避免消息丢失?.43142.要保证消息持久化成功的条件有哪些?.43143.rabbitmq持久化有什么缺点?.43144.rabbitmq有几种广播类型?.43145.rabbitmq怎么实现延迟消息队列?
14、.43146.rabbitmq集群有什么用?.43147.rabbitmq节点的类型有哪些?.43148.rabbitmq集群搭建需要注意哪些问题?.44149.rabbitmq每个节点是其他节点的完整拷贝吗?为什么?.44150.rabbitmq集群中唯一一个磁盘节点崩溃了会发生什么情况?.44151.rabbitmq对集群节点停止顺序有要求吗?.44十五、Kafka 44152.kafka可以脱离zookeeper单独使用吗?为什么?.44153.kafka有几种数据保留的策略?.44154.kafka同时设置了 7 天和10G清除数据,到第五天的时候消息达到了10G,这个时候kafka将
15、如何处理?.44155.什么情况会导致kafka运行变慢?.44156.使用kafka集群需要注意什么?.45十六、Zookeeper 45157.zookeeper 是什么?.45158.zookeeper都有哪些功能?.45159.zookeeper有几种部署模式?.45第7页yasin160.zookeeper怎么保证主从节点的状态同步?.45161.集群中为什么要有主节点?.45162.集群中有3台服务器,其中一个节点宕机,这个时候zookeeper还可以使用吗?.45163.说一下zookeeper的通知机制?.45十七、MySql 46164.数据库的三范式是什么?.46165.一
16、张自增表里面总共有7条数据,删除了最后2条数据,重启mysql数据库,又插入了一条数据,此时id是几?.46166.如何获取当前数据库版本?.46167.说一下ACID是什么?.46168.char和varchar的区别是什么?.46169.float和double的区别是什么?.46170.mysql的内连接、左连接、右连接有什么区别?.46171.mysql索引是怎么实现的?.47172.怎么验证mysql的索引是否满足需求?.47173.说一下数据库的事务隔离?.47174.说一下mysql常用的引擎?.47175.说一下mysql的行锁和表锁?.48176.说一下乐观锁和悲观锁?.48
17、177.mysql问题排查都有哪些手段?.48178.如何做mysql的性能优化?.48十八、Redis 48179.redis是什么?都有哪些使用场景?.48180.redis有哪些功能?.48181.redis 和 memecache 有什么区另IJ?.48第8页yasin182.redis为什么是单线程的?.49183.什么是缓存穿透?怎么解决?.49184.redis支持的数据类型有哪些?.49185.redis支持的java客户端都有哪些?.49186.jedis 和 redisson 有哪些区别?.49187.怎么保证缓存和数据库数据的一致性?.49188.redis持久化有几种方
18、式?.49189.redis怎么实现分布式锁?.49190.redis分布式锁有什么缺陷?.49191.redis如何做内存优化?.49192.redis淘汰策略有哪些?.50193.redis常见的性能问题有哪些?该如何解决?.50十九、JVM 50194.说一下jvm的主要组成部分?及其作用?.50195.说一下jvm运行时数据区?.50196.说一下堆栈的区别?.51197.队列和栈是什么?有什么区别?.51198.什么是双亲委派模型?.51199.说一下类加载的执行过程?.52200.怎么判断对象是否可以被回收?.52201.java中都有哪些引用类型?.52202.说一下jvm有哪些
19、垃圾回收算法?.52203.说一下jvm有哪些垃圾回收器?.52204.详细介绍一下CMS垃圾回收器?.53205.新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?.53第9页yasin206.简述分代垃圾回收器是怎么工作的?.53207.说一下jvm调优的工具?.53208.常用的jvm调优的参数都有哪些?.53第10页yasin一、Java基础1.JDK和 JRE有什么区别?JDK:Java Development Kit的简称,java开发工具包,提供了 java的开发环境和运行环境。JRE:Java Runtime Environment的简称,java运行环境,为 java的
20、运行提供了所需环境。具体来说JDK其实包含了 JR E,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具。简单来说:如果你需要运行java程序,只需安装JRE就可以了,如果你需要编写java程序,需要安装JDK。2.=和 equals的区别是什么?=解读:对于基本类型和引用类型=的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;equals解读:equals本质上就是=,只不过String和 Integer等重写了 equals方法,把它变成了值比较。总 结:=对于基本类型来说是值比较,对于引用类型来说是比较的是
21、引用;而 equals默认情况下是引用比较,只是很多类重新了 equals方法,比如String、Integer等把它变成了值比较,所以一般情况下equals比较的是值是否相等。3.两个对象的hashCode。相同,贝 equals。也一定为tru e,对吗?不对,两个对象的hashCode。相同,equals。不一定true。因为在散列表中,hashCode。相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等。4.final在 java中有什么作用?final修饰的类叫最终类,该类不能被继承。final修饰的方法不能被重写。final修饰的变量叫常量,常量必须初始化,初始
22、化之后值就不能被修改。5.java 中的 Math.round(-1.5)等于多少?等于-1,因为在数轴上取值时,中间值(0.5)向右取整,所以正0.5是往上取整,负 0.5是直接舍弃。6.String属于基础的数据类型吗?String 不属于基础类型,基础类型有 8 种:byte、booleans char、short、in float、long、double,而 String属于对象。7.java中操作字符串都有哪些类?它们之间有什么区别?操作字符串的类有:String,StringBuffer、StringBuilder0String和 StringBuffer.StringBuilde
23、r的区别在于String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象,而 StringBuffer,StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用String。第11页yasinStringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder的性能却高于StringBuffer,所以在单线程环境下推荐使用StringBuilder,多线程环境下推荐使用String
24、Buffer。8.String str=i与 String str=new String(”i”)一样吗?不一样,因为内存的分配方式不一样。String str=i”的方式,java虚拟机会将其分配到常量池中;而 String str=new String(i)则会被分到堆内存中。9.如何将字符串反转?使用 StringBuilder 或者 StringBuffer 的 reverseQ 方法。10.String类的常用方法都有那些?indexOfQ:返回指定字符的索引。charAtO:返回指定索引处的字符。,replaceO:字符串替换。trimO:去除字符串两端空白。splitO:分割字符
25、串,返回一个分割后的字符串数组。,getBytes。:返回字符串的byte类型数组。lengthO:返回字符串长度。toLowerCase。:将字符串转成小写字母。toUpperCase。:将字符串转成大写字符。,substringO:截取字符串。,equalsO:字符串比较。11.抽象类必须要有抽象方法吗?不需要,抽象类不一定非要有抽象方法。12.普通类和抽象类有哪些区别?普通类不能包含抽象方法,抽象类可以包含抽象方法。抽象类不能直接实例化,普通类可以直接实例化。13.抽象类能使用final修饰吗?不能,定义抽象类就是让其他类继承的,如果定义为final该类就不能被继承,这样彼此就会产生矛盾
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 Java 试题 汇编 参考
限制150内