
面试
小飞侠v科比
专注IT全栈技术
展开
-
SpringBoot面试专题及答案
问题一什么是 Spring Boot?多年来,随着新功能的增加,spring 变得越来越复杂。只需访问 https://spring.io/projects 页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的...原创 2019-07-18 19:31:13 · 210 阅读 · 0 评论 -
Tomcat面试专题
1、Tomcat 的缺省端口是多少,怎么修改?1)找到 Tomcat 目录下的 conf 文件夹2)进入 conf 文件夹里面找到 server.xml 文件3)打开 server.xml 文件4)在 server.xml 文件里面找到下列信息<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"...原创 2019-07-20 15:02:27 · 845 阅读 · 0 评论 -
设计模式面试专题
1.请列举出在 JDK 中几个常用的设计模式?单例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些类中。工厂模式(Factory pattern)被用于各种不可变的类如 Boolean,像 Boolean.valueOf,观察者模式(Observer pattern)被用于 Swing 和很多的事件监听中。装饰器设计模式(Decora...原创 2019-07-20 15:06:16 · 407 阅读 · 0 评论 -
深入理解 Spring 事务原理
一、事务的基本原理Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:获取连接 Connection con = DriverManager.getConnection()开启事务con.setAutoCommit(true/false);执行CRUD提交事务/回滚事务 ...原创 2019-07-17 21:50:21 · 195 阅读 · 0 评论 -
Java面试题 消息中间件
六:消息中间件1:WebService基于RESTful类型的webServiceRESTful是基于jax-rs的WebService.它即支持XML也支持JSON.JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services的简写,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创...原创 2019-07-17 22:08:15 · 1787 阅读 · 0 评论 -
Java面试题 MQ消息队列
七:MQ消息队列1:介绍消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。2:为什么会产生消息队列?1)不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程...原创 2019-07-17 22:09:13 · 3720 阅读 · 0 评论 -
Nginx面试专题
1、请解释一下什么是 Nginx?Nginx 是一个 web 服务器和反向代理服务器,用于 HTTP、HTTPS、SMTP、POP3和 IMAP 协议。2、请列举 Nginx 的一些特性。 Nginx 服务器的特性包括:反向代理/L7 负载均衡器嵌入式 Perl 解释器动态二进制升级可用于重新编写 URL,具有非常好的 PCRE 支持3、请列举 Nginx 和 Apache 之间的不同...原创 2019-07-24 22:00:15 · 173 阅读 · 0 评论 -
zookeeper面试专题
1.ZooKeeper 是什么?ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现, 它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易 用的接口和性能高效、功能稳定的系统提供给用户。客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所...原创 2019-07-24 22:07:34 · 151 阅读 · 0 评论 -
Spring高级面试专题
1、什么是 Spring 框架? Spring 框架有哪些主要模块?Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题, 使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造, 这使得我们可以在开发环境中安心的集成 Spring 框架, 不必担心 Spring 是如何...原创 2019-07-24 22:16:20 · 1104 阅读 · 1 评论 -
Java面试题 java高级
八:java高级1:代码优化(1)代码优化的目标是:1 、减小代码的体积2 、提高代码运行的效率(2)代码结构层次的优化(目的:更加方便代码的维护–可维护性,可读性)1.代码注释(代码规范)2.工具类的封装(方便代码的维护,使代码结构更加清晰不臃肿,保证团队里代码质量一致性)3.公共部分的提取(3)代码性能的优化(目的:使程序的性能最优化)(1)尽量指定类、方法的 final ...原创 2019-07-17 22:47:07 · 3672 阅读 · 0 评论 -
Java面试题 java基础
1:什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。2:什么是多线程?1个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务3:多线程的原理?同一时间,CPU只能处理1条线程...原创 2019-07-17 22:51:08 · 319 阅读 · 0 评论 -
JVM性能优化相关问题
一.Java 类加载过程?Java 类加载需要经历一下 7 个过程:1.加载加载是类加载的第一个过程,在这个阶段,将完成一下三件事情:通过一个类的全限定名获取该类的二进制流。将该二进制流中的静态存储结构转化为方法去运行时数据结构。在内存中生成该类的 Class 对象,作为该类的数据访问入口。2.验证验证的目的是为了确保 Class 文件的字节流中的信息不回危害到虚拟机.在该阶...原创 2019-07-30 22:26:50 · 143 阅读 · 0 评论 -
泛型需要注意的问题
泛型相关问题1、泛型类型引用传递问题在 Java 中,像下面形式的引用传递是不允许的:ArrayList<String> arrayList1=new ArrayList<Object>();//编译错误ArrayList<Object> arrayList1=new ArrayList<String>();//编译错误 我们先看第一种情...原创 2019-07-30 22:36:25 · 655 阅读 · 0 评论 -
面试必备之乐观锁与悲观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程...原创 2019-07-25 23:03:33 · 220 阅读 · 0 评论 -
Redis面试专题
1、什么是 Redis?简述它的优缺点?Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Ke y-Value DB 。Redis 的出色之处不仅仅是性能...原创 2019-07-22 22:52:11 · 469 阅读 · 0 评论 -
MySQL性能优化的21个最佳实践
MySQL 性能优化的 21 个最佳实践今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于 Web 应用尤其明显。关于数据库的性能,这并不只是 DBA 才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的 SQL 语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的 SQL 语句的优化,而只是针对 MySQL 这一 Web ...原创 2019-07-20 14:53:32 · 1017 阅读 · 0 评论 -
mysql面试专题
1.数据库三范式是什么?1.第一范式(1NF):字段具有原子性,不可再分。(所有关系型数据库系统都满足第一范式数据库表中的字段都是单一属性的,不可再分)2.第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键...原创 2019-07-20 14:24:49 · 401 阅读 · 0 评论 -
BAT常问面试题 集合框架
1.ArrayList 和 Vector 的区别。这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是HashSet 之类的集合的最大不同处,HashSet 之类的集合不可以按索引号去检索其中的元素,也不允许...原创 2019-07-18 20:41:00 · 133 阅读 · 0 评论 -
BAT常问面试题JVM
JVM 面试题一.Java 类加载过程?Java 类加载需要经历一下 7 个过程:1.加载加载是类加载的第一个过程,在这个阶段,将完成一下三件事情:通过一个类的全限定名获取该类的二进制流。将该二进制流中的静态存储结构转化为方法去运行时数据结构。在内存中生成该类的 Class 对象,作为该类的数据访问入口。2.验证验证的目的是为了确保 Class 文件的字节流中的信息不回危害...原创 2019-07-18 20:43:38 · 220 阅读 · 0 评论 -
BAT常问面试题 数据库
1.请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?SQL 标准定义的四个隔离级别为: read uncommited :读到未提交数据read committed:脏读,不可重复读repeatable read:可重读serializable :串行事物2.在 MySQL 中 ENUM 的用法是什么?ENUM 是一个字符串对象,用于指定一组预定义的...原创 2019-07-18 20:47:48 · 427 阅读 · 0 评论 -
JAVA项目面试总结 电商系统 OA办公系统 P2P网贷
我叫XX,XX年出生,来自XX,从事Java软件开发行业4年多了,在这4年里,我接触到了一些主流框架并有了深刻的理解,项目开发中,熟悉使用struts2、spring、hibernate、mybatis等并参与搭建过SSH/SSM/SpringMVC+Mybatis等框架。对springBoot也略有研究.关于前台的框架,使用过基于jquery的esayUI等。也参与了项目数据库的选择以及对数据...原创 2019-07-16 20:16:00 · 13015 阅读 · 3 评论 -
Java面试题基础篇
一、java基础篇1:成员变量局部变量区别成员变量:在这个类中定义的私有变量,属于这个类。局部变量:在方法体中创建,在方法体外访问不到这个类区别:①、上面关于两者的定义也是一种区别;②、二者的初始值不同:成员变量声明了就可以使用,有默认值;局部变量必须经过声明和赋值两部操作才能使用(局部变量没有默认值);③、二者在内存中的位置不一样:成员变量分配到堆中,局部变量分配到栈中④、二者的...原创 2019-07-16 20:21:18 · 318 阅读 · 0 评论 -
MyBatis面试专题
1、什么是 MyBatis?答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。2、讲下 MyBatis 的缓存答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现 Serializable 序列化接口(可用来保存对象的状态),可在它的映射文件中配置3...原创 2019-07-28 22:54:01 · 215 阅读 · 0 评论 -
memcached面试专题
memcached 是怎么工作的?Memcached 的神奇来自两阶段哈希(two-stage hash)。Memcached 就像一个巨大的、存储了很多<key,value>对的哈希表。通过 key,可以存储或查询任意的数据。客户端可以把数据存储在多台 memcached 上。当查询数据时,客户端首先参考节点列表计算出 key 的哈希值(阶段一哈希),进而选中一个节点;客户端将请...原创 2019-07-23 23:23:11 · 192 阅读 · 0 评论 -
Kafka消息中间件面试专题
1.Kafka 的设计时什么样的呢?Kafka 将消息以 topic 为单位进行归纳将向 Kafka topic 发布消息的程序成为 producers.将预订 topics 并消费消息的程序成为 consumer.Kafka 以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个 broker. producers 通过网络将消息发送到 Kafka 集群,集群向消费者提供消息2....原创 2019-07-23 23:27:32 · 476 阅读 · 0 评论 -
RabbitMQ消息中间件面试专题
问题一:RabbitMQ 中的 broker 是指什么?cluster 又是指什么?答:broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用程序。cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束。问题二:什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数...原创 2019-07-23 23:29:57 · 720 阅读 · 0 评论 -
Dubbo面试专题
Dubbo 支持哪些协议,每种协议的应用场景,优缺点?dubbo: 单一长连接和 NIO 异步通讯,适合大并发小数据量的服务调用, 以及消费者远大于提供者。传输协议 TCP,异步,Hessian 序列化;rmi: 采用 JDK 标准的 rmi 协议实现,传输参数和返回参数对象需要实现Serializable 接口,使用 java 标准序列化机制,使用阻塞式短连接,传输数据包大小混合,消...原创 2019-07-19 20:52:39 · 195 阅读 · 0 评论 -
并发编程面试专题
1)现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用 join 方法实现。2)在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写...原创 2019-07-19 20:53:42 · 260 阅读 · 0 评论 -
Netty面试专题
1.BIO 、 NIO 和AIO 的 区 别 ?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步 IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O ...原创 2019-07-19 20:56:13 · 161 阅读 · 0 评论 -
Linux面试专题
1) Linux 中主要有哪几种内核锁?Linux 的同步机制从 2.0 到 2.6 以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随 Linux 从单处理器到对称多处理器的过渡;伴随着从非抢占内核到抢占内核的过度。Linux 的锁机制越来越有效,也越来越复杂。Linux 的内核锁主要是自旋锁和信号量。自旋锁最多只能被一个可执行线程持有...原创 2019-07-19 20:58:32 · 173 阅读 · 0 评论 -
JVM面试专题
1.内存模型以及分区,需要详细到每个区放什么。JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class 类信息常量池(static 常量和 static 变量)等放在方法区new:方法区:主要是存储类信息,常量池(static 常量和 static 变量),编译后的代码(字节码)等数据堆:初始化的对象,成员变量 (那种非 static 的变量),所有的对...原创 2019-07-19 21:03:47 · 135 阅读 · 0 评论 -
Spring基础面试专题
Spring 概述1.什么是 spring?Spring 是个 java 企业级应用的开源开发框架。Spring主要用来开发 Java 应用, 但是有些扩展是针对构建J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发, 并通过 POJO 为基础的编程模型促进良好的编程习惯。2.使用 Spring 框架的好处是什么?轻量: Spring 是轻量的, 基本...原创 2019-07-22 23:01:57 · 141 阅读 · 0 评论