
JAVA面试题大全
文章平均质量分 76
@邢先生
对酒当歌,人生几何;
譬如朝露,去日苦多。
信息时代,技术革命;
科技创新,未来可期。
展开
-
最新Java面试题及答案汇总
最新Java面试题及答案汇总面试题包括以下十八个模块: Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。基础模块(一)容器(二)多线程(三)反射(四)对象拷贝(五)JAVA Web(六)异常(七)网络(八)设计模式(九)Spring / Spring MVC(原创 2021-03-22 10:48:04 · 557 阅读 · 0 评论 -
Redis(十七)+ JVM(十八)
redis 是什么?都有哪些使用场景?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 使用场景:数据高并发的读写海量数据的读写对扩展性要求高的数据\180. redis 有哪些功能?数据缓存功能分布式锁的功能支持数据持久化支持事务支持消息队列\181. redis 和 memecache 有什么区别?memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富.原创 2021-03-22 10:32:05 · 270 阅读 · 0 评论 -
MySql(十六)
数据库的三范式是什么?第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。第三范式:任何非主属性不依赖于其它非主属性。一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?表类型如果是 MyISAM ,那 id 就是 8。表类型如果是 InnoDB,那 id 就是 6。InnoDB 表只会把自增主键的最大 id.原创 2021-03-21 01:28:59 · 319 阅读 · 0 评论 -
Zookeeper(十五)
zookeeper 是什么?zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zookeeper 都有哪些功能?集群管理:监控节点存活状态、运行请求等。主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用 zookeeper 可以协助完成这个过程.原创 2021-03-21 01:27:45 · 202 阅读 · 0 评论 -
Kafka(十四)
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。kafka 可以脱离 zookeeper 单独使用吗?为什么?kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。kafka 有几种数据保留的策略?kafka 有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。kafka 同时原创 2021-03-21 01:26:53 · 184 阅读 · 0 评论 -
RabbitMQ(十三)
MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。开发中消息队列通常有如下应用场景:1、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2、应用程序解耦合MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。3、削峰填谷如订原创 2021-03-17 23:41:04 · 297 阅读 · 0 评论 -
Mybatis(十二)
ORM对象关系映射,数据和实体对象的映射。MyBatis是一个优秀的基于 Java 的持久层框架,它内部封装了 JDBC。mybatis 中 #{}和 ${}的区别是什么?#{}是预编译处理,KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 21: …串替换; Mybatis在处理#̲{}时,会将sql中的#{}替…{}时,就是把${}替换成变量的值;使用#{}可以有效的防止SQL注入,提高系统安全性。mybatis 有几..原创 2021-03-17 23:32:42 · 133 阅读 · 0 评论 -
Spring Boot / Spring Cloud(十一)
104. 什么是 spring boot?在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建,依赖注入即为由spring容器为应用程序的某个对象提供资源,比如 引用对象、常量数据等。SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且原创 2021-03-17 23:30:33 · 438 阅读 · 0 评论 -
Spring / Spring MVC(十)
90. 为什么要使用 spring?1.简介目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring是分层的JavaSE/EE应用full-stack轻量级开源框架2.轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足原创 2021-03-16 21:57:28 · 296 阅读 · 0 评论 -
设计模式(九)
88. 说一下你熟悉的设计模式?单例模式简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象观察者模式对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。装饰者模式对已有的业务逻辑进一步的封装,使其增加额外的功能,如Java中的IO流就使原创 2021-03-16 21:50:48 · 132 阅读 · 0 评论 -
网络(八)
79. http 响应码 301 和 302 代表的是什么?有什么区别?答:301,302 都是HTTP状态的编码,都代表着某个URL发生了转移。区别:301 redirect: 301 代表永久性转移(Permanently Moved)。302 redirect: 302 代表暂时性转移(Temporarily Moved )。80. forward 和 redirect 的区别?Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。直接转发方式(Forward)原创 2021-03-16 21:50:01 · 144 阅读 · 0 评论 -
异常(七)
74. throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。75. final、finally、finalize 有什么区别?final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将.原创 2021-03-16 21:48:53 · 156 阅读 · 0 评论 -
JAVA Web(六)
64. jsp 和 servlet 有什么区别?jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到。Jsp是Servlet的一种简化,原创 2021-03-16 21:48:00 · 160 阅读 · 0 评论 -
畅购商城项目,面试问答,项目详解及全部代码
商城项目商城—微服务技术栈1 商城介绍1.1 项目介绍此电商项目属于B2C模式的线上商城,支持用户在线浏览商品,在线搜索商品,并且可以将喜欢的商品加入购物车从而下单购买商品,同时支持线上支付,支付模式支持支付宝、微信、银联支付。用户还可以参与低价商品秒杀。畅购商城采用了微服务架构,微服务技术采用了SpringCloud技术栈,各个微服务站点基于SpringBoot构建,并采用SpringCloud Gateway将各个微服务的功能串联起来,形成一套套系统,同时在微服务网关Gateway中采用过滤和原创 2021-03-12 21:43:49 · 10979 阅读 · 1 评论 -
对象拷贝(五)
对象拷贝(五)61. 为什么要使用克隆?想对一个对象进行处理,又想保留原有的数据进行接下来的操作,就需要克隆了,Java语言中克隆针对的是类的实例。62. 如何实现对象克隆?有两种方式:实现Cloneable接口并重写Object类中的clone()方法;实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下:import java.io.ByteArrayInputStream;import java.io.ByteArrayOutput原创 2021-03-12 21:24:55 · 135 阅读 · 0 评论 -
反射(四)
反射(四)57. 什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成员变量和方法。在运行时调用任意一个对象的方法。58. 什么是 java 序列化?什么情况下需要序列化?简单说就是为了保存在内存中的各种对象的状态(也就原创 2021-03-12 20:56:42 · 152 阅读 · 0 评论 -
多线程(三)
多线程(三)35.并行和并发有什么区别?**并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。36. 线程和进程的区别?简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独原创 2021-03-12 20:54:39 · 195 阅读 · 0 评论 -
容器(二)
容器(二)18. java 容器都有哪些?常用容器的图录:19. Collection 和 Collections 有什么区别?java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。Collections则是集合类的一个工具类/帮助类,其中提供了一系列原创 2021-03-12 20:51:14 · 167 阅读 · 0 评论 -
基础模块(一)
基础模块(一)1.JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,原创 2021-03-12 20:48:51 · 365 阅读 · 1 评论