
java面试题
文章平均质量分 58
java开发面试题
hxpjava1
毕业于武汉理工大学计算机系,12年开发架构经验,擅长java,k8s
展开
-
面试问题:哪些html元素支持跨域
1image2iframe3link4script原创 2018-08-11 13:24:41 · 860 阅读 · 0 评论 -
面试问题:什么是闭包
什么是闭包?闭包的优缺点?闭包(closure)是javascript的一大难点,也是它的特色。很多高级应用都要依靠闭包来实现。1、变量作用域要理解闭包,首先要理解javascript的特殊的变量作用域。变量的作用域无非就两种:全局变量和局部变量。javascript语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。注意点:在函数...转载 2018-08-10 15:24:38 · 6090 阅读 · 0 评论 -
面试问题:怎么分析mysql慢查询
我们平台过一段时间就会把生产数据库的慢查询导出来分析,要嘛修改写法,要嘛新增索引。以下是一些笔记、总结整理 慢查询排查 show status; // 查询mysql数据库的一些运行状态 show status like 'uptime'; // 查看mysql数据库启动多长时间,myisam存储引擎长时间启动需要进行碎片整理 ...转载 2018-07-29 19:23:50 · 3408 阅读 · 0 评论 -
面试问题:消息队列使用场景
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1异步处理场景说明:用户注...转载 2018-07-27 11:59:33 · 5263 阅读 · 0 评论 -
面试问题:有没有用过分布式锁,怎么实现的
很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的东西也是一样的和Java多线程相关的!做好准备,马上开车!学过Java多线程的应该都知道什么是锁,没学过的也不用担心,Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制。...转载 2018-07-16 17:14:02 · 18295 阅读 · 5 评论 -
面试问题,hashmap怎么扩容的,平时写代码会考虑容量因素么
首先说明博主德Java为1.8版本 HashMap中的变量首先要了解HashMap的扩容过程,我们就得了解一些HashMap中的变量: Node<K,V>:链表节点,包含了key、value、hash、next指针四个元素 table:Node<K,V>类型的数组,里面的元素是链表,用于存放HashMap元素的实体 size:记录了放入HashMap...转载 2018-07-16 16:56:31 · 2159 阅读 · 0 评论 -
面试问题zuul如何实现流量控制
简述Spring Cloud Zuul RateLimit项目Github地址:https://github.com/marcosbarbero/spring-cloud-zuul-ratelimit该包实现了在Zuul对每个服务进行限流。提供的几种限流方式:1. 认证用户(Authenticated User)使用已认证的用户名(username)或'anonymous'2. 原始请求(Requ...转载 2018-07-14 12:29:38 · 8243 阅读 · 0 评论 -
面试问题:如何实现软件可扩展性
网站的可扩展性架构设计,能够在对现有系统影响最小的情况下,系统功能可以可持续扩展及提升的能力。在此,对容易混为一谈的 “扩展性” 和 “伸缩性” 的概念进行详细说明:扩展性表现为:基础设施不需要经常变更,应用之间较少依赖或耦合,可以对需求变更快速响应。它对扩展开放,对修改关闭。架构设计会考虑到未来功能的可扩展性,所以当系统增加新功能时,不需要对现有系统的结构和代码进行修改。伸缩性是指系统通过增加(...转载 2018-07-12 11:33:04 · 22231 阅读 · 0 评论 -
面试问题如何预防csrf攻击
CSRF 的全称是“跨站请求伪造”,而 XSS 的全称是“跨站脚本”。看起来有点相似,它们都是属于跨站攻击——不攻击服务器端而攻击正常访问网站的用户,但前面说了,它们的攻击类型是不同维度上的分 类。CSRF 顾名思义,是伪造请求,冒充用户在站内的正常操作。我们知道,绝大多数网站是通过 cookie 等方式辨识用户身份(包括使用服务器端 Session 的网站,因为 Session ID 也是大多保...转载 2018-07-12 10:24:03 · 6353 阅读 · 0 评论 -
面试问题如何防止sql注入
摘要: 防止SQL注入一、SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。二、SQL注入攻击的总体思路1.寻找到SQL注入的位置2.判断服务器类型和后台数据库类型3.针对不通的服务器和数据库特点进行SQL注入攻击 三、SQL注入攻击实例比如在一个登录界面,要求输入用户名和...转载 2018-07-12 10:20:09 · 6407 阅读 · 0 评论 -
面试问题如何预防xss攻击
1. XSS攻击原理XSS原称为CSS(Cross-Site Scripting),因为和层叠样式表(Cascading Style Sheets)重名,所以改称为XSS(X一般有未知的含义,还有扩展的含义)。XSS攻击涉及到三方:攻击者,用户,web server。用户是通过浏览器来访问web server上的网页,XSS攻击就是攻击者通过各种办法,在用户访问的网页中插入自己的脚本,让其在用户访...转载 2018-07-11 18:37:40 · 26279 阅读 · 0 评论 -
面试问题,请说明zookeeper的选举机制
zookeeper集群配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服务器都是平等的。这篇主要分析leader的选择机制,zookeeper提供了三种方式:LeaderElectionAuthFastLeaderElectionFastLeaderElection默认的算...转载 2018-07-11 16:49:41 · 12394 阅读 · 10 评论 -
面试问题spring 抛出异常事务不回滚怎么处理
最近做项目时,由于业务需要,在service中抛出自定义异常时出现了事务不回滚的情况,具体情况如下: public void editEpidemic(Epidemic epidemic) throws EpidemicException{ EpidemicLog log = new EpidemicLog(); log.setType(ConstantsUt...转载 2018-07-09 20:25:19 · 10459 阅读 · 3 评论 -
面试问题eureka和zookeeper的区别
作为服务注册中心,Eureka比Zookeeper好在哪里著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。4.1 Zookeeper保证CP当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册...转载 2018-07-09 17:54:44 · 3506 阅读 · 2 评论 -
Dubbo面试题汇总
默认使用的是什么通信框架,还有别的选择吗? 默认也推荐使用netty框架,还有mina以及基于servlet等方式。https://www.cnblogs.com/songxh-scse/p/6692301.htmlhttps://blog.youkuaiyun.com/youanyyou/article/details/78990214 服务调用是阻塞的吗?默认是阻塞的,可以异步调用,没有返回值的可以这么...转载 2018-07-05 17:32:36 · 4427 阅读 · 0 评论 -
Spring Boot面试题
Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家。问题一 Spring Boot、Spring MVC 和 Spring 有什么区别?SpringFrameSpringFramework 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。当我们恰当的使用 DI 或者是 IOC 的时候,我们...转载 2018-07-05 15:57:12 · 896 阅读 · 0 评论 -
springboot+springcloud相关面试题
什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 自动配置spri...转载 2018-07-05 15:55:06 · 653 阅读 · 0 评论 -
面试题:在Java中如何跳出当前的多重嵌套循环?
/* * 在Java中如何跳出当前的多重嵌套循环? * 在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号, * 然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环 */package java基础题目; public class Test3 { public static void main(String[] args) { method1(); meth...转载 2018-07-05 14:00:03 · 870 阅读 · 1 评论 -
java面试题全集(下)
这部分主要是开源Java EE框架方面的内容,包括hibernate、MyBatis、spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。12...转载 2018-07-05 13:28:24 · 537 阅读 · 0 评论 -
Java面试题全集(上)
2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的优快云博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补...转载 2018-07-05 13:25:14 · 391 阅读 · 0 评论 -
面试问题(事务有哪些隔离级别)
数据库必须具备的四个特性1:原子性:事务包含的所有操作要么全部成功,要么全部失败回滚;成功必须要完全应用到数据库,失败则不能对数据库产生影响;2:一致性:事务执行前和执行后必须处于一致性状态,例:用户A和用户B的前加起来一共是5000; 无论AB用户之间是如何相互转换的,事务结束后两个用户的钱加起来还是5000,这就是事务的一致性。 3:隔离性:当多个用户并发访问数据库时,数据库为每一个用户开启的...转载 2018-07-04 10:38:38 · 2838 阅读 · 2 评论 -
面试问题(谈谈redis事务)
MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础。Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项:>Redis会将一个事务中的所有命令序列化,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求。这样便能保证Redis将这些命令作为一个单独的隔离操作执行。 > 在一个Redis事务中...转载 2018-03-14 12:54:50 · 3266 阅读 · 0 评论 -
面试问题(jvm怎么判断一个对象已经没用)
方法1引用计数为0方法2路径不可达原创 2018-03-02 12:36:13 · 848 阅读 · 0 评论 -
面试问题(如何保证分布式数据最终一致性)
保证分布式系统数据一致性的6种方案编者按:本文由「高可用架构后花园」群讨论整理而成。有人的地方,就有江湖有江湖的地方,就有纷争问题的起源在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统...转载 2018-03-01 10:51:42 · 28070 阅读 · 4 评论 -
面试问题(分布式事务除两阶段提交外的其他解决方案)
前言最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行 CAP 的下一阶段的开发工作,不过目前已经告一段落了。接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事务来简单聊一...转载 2018-03-01 10:48:27 · 11619 阅读 · 1 评论 -
面试问题(java cas有什么优点和问题)
java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包。可见CAS的重要性。 CASCAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。 本文先从CAS的应用说起,再深入原理解析。 CAS应用CAS有3个操作数,内存值V,旧的预期值A,要修改的...转载 2018-03-01 10:08:36 · 12227 阅读 · 4 评论 -
面试问题(有没有遇到过同名的类加载错误的情况)
遇到过。原因是java类加载器,首先加载bootstrapclassloader,然后extend classloader,然后appclassloader最后用户自定义classloader。而使用时是反过来的,先从自定义classloader找,然后appclassloader里找,而后extendclassloader里找,最后bootstrapclassload...原创 2018-03-01 10:00:27 · 669 阅读 · 0 评论 -
面试问题(什么是happen-before)
先行发生原则(Happens-before)先行发生原则(Happens-Before)是判断数据是否存在竞争、线程是否安全的主要依据。先行发生是Java内存,模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,那么操作A产生的影响能够被操作B观察到。 Java内存模型中存在的天然的先行发生关系: 1. 程序次序规则:同一个线程内,按照代码出现的顺序,前面的代码先行于后面的代码,准确的...转载 2018-03-01 09:43:53 · 1261 阅读 · 0 评论 -
(面试问题)jdk1.8用的是什么gc,有什么改进
前言 与C语言不同,Java内存(堆内存)的分配与回收由JVM垃圾收集器自动完成,这个特性深受大家欢迎,能够帮助程序员更好的编写代码,本文以HotSpot虚拟机为例,说一说Java GC的那些事。Java堆内存 我们知道Java堆是被所有线程共享的一块内存区域,所有对象实例和数组都在堆上进行内存分配。为了进行高效的垃圾回收,虚拟机把堆内存划分成新生代(Young Gen...转载 2018-03-01 09:40:54 · 15308 阅读 · 10 评论 -
面试问题(你喜欢和什么样的人一起工作,不喜欢和什么样的人一起工作)
我喜欢和有互助,比较开放,比较和气,友善,比较有激情的人一起工作。做一行爱一行,不喜欢朝九晚5,为了工作而工作,没有分享精神,铁公鸡一毛不拔,自以为是,没有激情的人一起工作。...原创 2018-03-01 09:35:00 · 11331 阅读 · 0 评论 -
面试问题(mysql有哪些存储引擎)
数据库中的存储引擎其实是对使用了该引擎的表进行某种设置,数据库中的表设定了什么存储引擎,那么该表在数据存储方式、数据更新方式、数据查询性能以及是否支持索引等方面就会有不同的“效果”。在MySQL数据库中存在着多种引擎(不同版本的MySQL数据库支持的引擎不同),熟悉各种引擎才能在软件开发中应用引擎,从而开发出高性能的软件,MySQL数据库中的引擎有哪些呢?一般来说,MySQL有以下几种引擎:ISA...转载 2018-03-01 09:26:55 · 2879 阅读 · 0 评论 -
面试问题(mysql是行级锁还是表级锁)
MySQL锁详解一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化...转载 2018-03-01 09:19:12 · 26393 阅读 · 7 评论 -
面试问题(水平分库后查询如何排序)
跨分片的排序分页一般来讲,分页时需要按照指定字段进行排序。当排序字段就是分片字段的时候,我们通过分片规则可以比较容易定位到指定的分片,而当排序字段非分片字段的时候,情况就会变得比较复杂了。为了最终结果的准确性,我们需要在不同的分片节点中将数据进行排序并返回,并将不同分片返回的结果集进行汇总和再次排序,最后再返回给用户。如下图所示:上面图中所描述的只是最简单的一种情况(取第一转载 2017-10-22 19:23:04 · 4322 阅读 · 2 评论 -
面试题(redis master和slave是怎么实现数据同步的)
Redis的主从同步机制可以确保redis的master和slave之间的数据同步。按照同步内容的多少可以分为全同步和部分同步;按照同步的时机可以分为slave刚启动时的初始化同步和正常运行过程中的数据修改同步;本文将对这两种机制的流程进行分析。全备份过程中,在slave启动时,会向其master发送一条SYNC消息,master收到slave的这条消息之后,将可能启动后台进程进行备份,备转载 2017-10-25 22:50:41 · 16815 阅读 · 2 评论 -
面试问题(乐观锁和悲观锁的区别)
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人转载 2017-10-20 11:36:44 · 12097 阅读 · 0 评论 -
面试问题(spring bean的生成过程)
Spring是个Bean大工厂,负责Bean的创建和注入。核心接口BeanFactory是Spring最核心接口,它是Bean的容器,所有Bean的创建和注入几乎都与它有关。很多后缀是“Context”的类都继承或扩展了它,比如ClassPathXmlApplicationContext。最核心的方法是getBean,当然getBean有很多种重载形式,这里不一一列出。publ转载 2017-10-21 22:47:08 · 8534 阅读 · 2 评论 -
面试问题(aop 反回结果的增强是哪个)
@AfterReturning的returning所指定的对象详情情况http://blog.youkuaiyun.com/hxpjava1/article/details/78287967原创 2017-10-19 19:17:52 · 406 阅读 · 0 评论 -
面试问题(aop默认代理方式是什么)
jdk代理,可以通过proxy-target-class修改proxy-target-class属性值决定是基于接口的还是基于类的代理被创建。如果proxy-target-class 属性值被设置为true,那么基于类的代理将起作用(这时需要cglib库)。如果proxy-target-class属值被设置为false或者这个属性被省略,那么标准的JDK 基于接口的代理。原创 2017-10-19 19:11:48 · 4172 阅读 · 2 评论 -
面试问题(maven依赖)
问题:A依赖于b,b依赖于c1.0,d依赖于c2.0,a和d在同一个pom里,请问这个pom依赖于哪个c答案:根据最短路径原则,pom依赖于d依赖的c2.0问题A依赖于b1.0,c依赖于b2.0,a和c在同一个pom,请问这个pom依赖哪个b答案:这里根据A和c谁排在前面这里有篇文章http://blog.youkuaiyun.com/honghailiang888/article/detai原创 2017-10-18 11:44:15 · 1619 阅读 · 0 评论 -
面试问题(做一个基础平台需要哪些人才)
技术总监,架构师,产品总监,产品经理,开发,测试,运营,运维原创 2017-10-17 10:40:56 · 780 阅读 · 0 评论