面试题解析
muzi木子
把简单的事做好,就是不简单!
把平凡的事做好,就是不平凡!
展开
-
【面试题解析】-- 20200429Java软件开发工程师面试题解析
1. 如果让你对一个线上应用进行优化,你有哪些方案?分析哪些数据是热点数据,然后对这些数据做缓存处理。对内容不变动或很少变动的页面做静态化处理。跟踪程序中是否存在慢SQL查询,如果有则对SQL进行优化。2. 你如何实现访问限流操作?用户限流通常都是在网关层进行实现的,一般我们会在nginx中对用户访问进行控制,实现用户限流可以使用以下两种算法:令牌桶算法、漏桶算法。3. redis...原创 2020-04-30 10:23:42 · 248 阅读 · 0 评论 -
【面试题解析】-- 20200428Java软件开发工程师面试题解析
1. 什么是SSO?SSO(Single Sign On,单点登录),它指的是一次性对用户登录进行鉴别,之后在访问与该身份认证平台相关联的系统,都能够不用再次登录即可访问,认证中心起到用户身份校验以及发放令牌的作用。2. 你所了解的微服务技术有哪些?微服务基础框架:Duoob、SpringCloud服务注册与发现:Eureka、Nacos、Zookeeper服务调用:Restful、R...原创 2020-04-29 10:09:49 · 345 阅读 · 0 评论 -
【面试题解析】-- 20200427Java软件开发工程师面试题解析
1. 什么是熔断器?它的工作原理是什么?熔断器,是微服务系统中的一种链路保护机制,它可以有效地防止级联故障。熔断器的工作原理以Hystrix为例,首先我们在程序初始化初期就设置了允许请求失败的一个阈值,当在一定时间内请求失败达到这个阈值就会触发熔断,经过一段时间后熔断器会半开半闭,如果此时后端服务恢复,那么熔断器失效,否则重新等待相同时间。2. 谈谈什么是单点故障?单点故障是在分布式系统中,...原创 2020-04-28 10:58:15 · 255 阅读 · 0 评论 -
【面试题解析】--20200424Java软件开发工程师面试题解析
1. 在Spring中,为什么默认将Bean设置为单例?减少新生成实例所需要的性能消耗。可以减少JVM回收垃圾的次数。可是使用获取JavaBean更快,因为第一次获取需要查找,后面在获取都是从缓存中直接获取。2. Spring中对象的作用域有哪些?单例,在整个应用程序中只会创建一个。原型,每次获取都会重新创建。会话,为每一次会话创建一个实例。请求,没每个请求创建一个实例。...原创 2020-04-25 10:49:43 · 172 阅读 · 0 评论 -
【面试题解析】-- 20200423Java软件开发工程师面试题解析
1. 在涉及到金钱交易的计算,在程序中你是如何处理的?在涉及到金钱交易的计算时,在Java中通常可以使用BigDecimal类型,在Java中BigDecimal是可以用于高精度计算的,它不会向Double等数据类型一样会丢失精度。2. Java中实现多线程的方式有哪几种?Java中实现多线程的方式有两种,一种是继承Thread类,一种是实现Runnable接口,因为Java语言是一门单继承...原创 2020-04-24 10:46:01 · 193 阅读 · 0 评论 -
【面试题解析】-- 20200422Java软件开发工程师面试题解析
1. 你在软件开发的过程中,遇到过什么问题?你是如何解决这个问题的?比如在进行软件开发时出现的乱码问题,如果是在对请求进行处理时,请求乱码,那么可以通过request的setCharacterEncoding方法对请求进行统一编码,从而解决乱码问题。2. 什么是继承?继承是在已经存在的类上进行的,它就是指将已存在类的内容作为自己的内容,并且可以加入新的内容。继承是子类自动共享父类成员的一种方...原创 2020-04-23 10:29:44 · 182 阅读 · 0 评论 -
【面试题解析】-- 20200421Java软件开发工程师面试题解析
1. 什么是ORM?常见的ORM框架有哪些?ORM即对象关系映射,一般指的是数据库字段与对象属性之间的映射关系,常见的ORM框架有MyBatis、Hibernate等。2. 谈谈mybatis有什么优势?mybatis是一个半自动化的ORM框架,它要求我们自行编写SQL语句,所以mybatis的灵活性比较好,并且使用mybatis大大简化了我们的开发。3. 什么是MVC设计模式?MVC...原创 2020-04-22 09:51:46 · 134 阅读 · 0 评论 -
【面试题解析】-- 20200420Java软件开发工程师面试题解析
1. 你知道的集合类有哪些?请简要介绍其中两种比如List和Set,这两个集合类都继承自Collection类,List在父类的基础上增加有序的特性,Set在父类的基础上增加了唯一的特性。2. Class.forName()的作用是什么?Class.forName()可以通过传入的字符串参数搜索并加载指定类,如果被加载的类在之前已经加载过了那么将直接返回实例对象,否则将按照类的委托机制,搜索...原创 2020-04-21 10:04:40 · 129 阅读 · 0 评论 -
【面试题解析】-- 20200417Java软件开发工程师面试题解析
1. 在程序中大量使用session会导致什么后果?session需要占据服务器端内存,如果session使用得过多,会导致服务器端负载过重,严重的话可能导致服务器宕机。2. cookie与session之间有什么区别?保存位置上:cookie是保存在客户端浏览器上的,session是保存在服务器端的。安全性上: cookie不是很安全,别人可能通过某种手段获取cookie性能上: co...原创 2020-04-18 10:11:26 · 157 阅读 · 0 评论 -
【面试题解析】-- 20200416Java软件开发工程师面试题解析
1. String和StringBuffer之间有什么区别?String是不可被更改的字符串数据,StringBuffer是动态可变化的字符串数据。2. Java虚拟机是如何加载类文件的?Java虚拟机加载类文件,靠的是ClassLoader与它的子类共同实现的,ClassLoader是Java程序运行时一个非常重要的系统组件。3. 什么是垃圾回收?在Java中,垃圾回收指的是JVM提供...原创 2020-04-17 11:03:48 · 137 阅读 · 0 评论 -
【面试题解析】-- 20200415Java软件开发工程师面试题解析
1. ThreadLocal的作用是什么?ThreadLocal一般被称为线程本地变量,它是一种特殊的线程绑定机制,它可以将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本,它可以将对象的可见性范围限制在同一个线程内。2. 多个线程产生死锁了该如何处理?对竞争资源引入序号,线程只能先获取序号较小的资源,然后才能获取序号较大的资源。在Java代码中,增加同步关键字的使用。‘3....原创 2020-04-16 09:34:51 · 132 阅读 · 0 评论 -
【面试题解析】-- 20200414Java软件开发工程师面试题解析
1. 请你谈谈服务雪崩?服务雪崩一般发生在微服务项目中,指的是一个服务的不可用,而导致其他需要依赖它的服务也不可用进而导致级联故障或整个系统不可用。2. 什么是SpringData?SpringData的使命是在保证底层存储特殊性的前提下,为数据访问提供一个熟悉的,一致性的,基于Spring的数据访问编程模型。3. 请你谈谈你对位运算的理解位运算包含了左移运算和右移运算,向右移是当前值与...原创 2020-04-15 10:01:08 · 157 阅读 · 0 评论 -
【面试题解析】-- 20200413Java软件开发工程师面试题解析
1. SOA与SOAP分别是什么?SOA是一种面向服务的架构,它就是将相同的业务逻辑抽取出来组成一个单独的服务。SOAP是WebService面向服务协议,它采用xml进行数据交互。2. 微服务与SOA有什么区别?微服务,是团队级别的实现,微服务就是将一个系统拆分成多个服务,微服务集成简单。SOA,是企业级的实现,它指的是一个服务由多个子系统组成,它是集成式服务。3. 什么是RPC远程...原创 2020-04-14 10:12:11 · 115 阅读 · 0 评论 -
【面试题解析】--20200411Java软件开发工程师面试题解析
1. 你在项目的什么地方使用到了AOP?权限控制、日志记录,权限控制和日志记录,是系统中两个非常重要的功能,基本上也是每个功能模块会涉及到的功能,所以将这些功能抽取出来,通过AOP实现。2. spring、springmvc、springboot三者之间的区别是什么?spring是一个轻量级的,开放源代码的框架,它提供了AOP和IOC两大核心,用以简化开发,SpringMVC是Spring提...原创 2020-04-13 09:36:47 · 169 阅读 · 0 评论 -
【面试题解析】-- 20200410Java软件开发工程师面试题解析
1. 什么是缓存穿透?如何解决缓存穿透?所谓的缓存穿透,指的就是因为在数据库中不存在某行数据,然后在缓存中也不存在对应key值,导致请求这行数据时总是直接访问数据库。解决缓存穿透,只需要在数据库访问后,如果没有查询到指定值,就保存一个空值到缓存中即可。2. 什么是缓存雪崩?如何解决缓存雪崩?所谓的缓存雪崩,指的是多个缓存key几乎在同一时间失效。要解决缓存雪崩,只需要为每个缓存设置不一样的过...原创 2020-04-11 09:47:56 · 121 阅读 · 0 评论 -
【面试题解析】-- 20200409Java软件开发工程师面试题解析
1. 负载均衡与反向代理的作用是什么?负载均衡,就是将多个访问同一地址的请求,通过一定的策略将请求分发到指定服务器上,而反向代理,可以将一个请求转发到真实的应用服务器。2. 你在使用缓存的时候是否有遇到过什么问题?你是如何解决这个问题的?比如缓存穿透,缓存穿透是由于在数据库中没有某个key的指定数据行,然后在缓存中也不存在该key,所以导致请求直接访问数据库,而给数据库带来压力。要解决这个问...原创 2020-04-10 10:04:32 · 99 阅读 · 0 评论 -
【面试题解析】-- 20200408Java软件开发工程师面试题解析
1. 什么是线程池?线程池,其实质上就是一个存放对象池,为了提高程序的效率,在程序初始化初期就创建了一定数量的线程对象,保存到线程池中,之后要使用多线程,直接从线程池中取出一个线程对象即可。2. 你是否用过nosql?为什么要使用?NoSQL(Not Only SQL,不仅仅是SQL),即非关系型数据库,常见的有Redis、Memcache、ES等,使用缓存的目的是为了提高程序的效率,减轻数...原创 2020-04-09 08:51:02 · 110 阅读 · 0 评论 -
【面试题解析】-- 20200407Java软件开发工程师面试题解析
1. 在Java中你如何实现对象的序列化?所谓的序列化就是指将Java对象转换成字节流,或者是将字节流转换成一个Java对象,要在Java中实现序列化非常简单,只需要实现Serializeable接口即可。2. Java中有哪几种形式的流?根据流的方向可分为:输入流(InputStream)、输出流(OutPutStream)根据流的类型可分为:字节流、字符流3. 面向对象编程的特征...原创 2020-04-08 09:49:58 · 164 阅读 · 0 评论 -
【面试题解析】-- 20200403Java软件开发工程师面试题解析
1. 请说明一下Spring中BeanFactory和ApplicationContext的区别是什么?BeanFactory是Spring中比较原始的工厂类,并且它无法支持Spring中的插件,比如AOP实现的功能。ApplicationContext是BeanFactory的子类,它基本上替代了BeanFactory的所有功能,并且它以一种更面向框架的方式对上下文进行分层和继承,并且在此基...原创 2020-04-07 09:09:42 · 178 阅读 · 0 评论 -
【面试题解析】-- 20200402Java软件开发工程师面试题解析
1. 什么是单点登录?单点登录又称SSO(Single Sign On),指的是用户在多系统群的某个系统登录,之后再访问其它系统无需再次登录授权便可访问。2. 你如何实现单点登录?单点登录的实现需要有Client,还要有Server,在Client中需要拦截系统中未登录的用户请求,并跳转至认证中心,接收并保存认证中心发送的令牌,当用户再次登录时校验token的有效性。Server也就是认证中...原创 2020-04-03 09:33:50 · 324 阅读 · 0 评论 -
【面试题解析】-- 20200331Java软件开发工程师面试题解析
1. ClassLoader是如何加载类的?主要靠的是三个类加载器:BootStrap ClassLoader(启动类类加载器)、Extentions ClassLoader(扩展类加载器)、APP ClassLoader(系统类加载器),然后通过类的委托机制搜索并加载相关类。2. 谈谈你对Spring的理解Spring是一个开源的轻量级的框架,它的主要核心是AOP、IOC、DI,它可以很容...原创 2020-04-01 09:29:32 · 292 阅读 · 0 评论 -
【面试题解析】-- 20200330 Java软件开发工程师面试题解析
1. 什么是MVC设计模式?MVC设计模式是一种架构风格,就是将程序拆分成,Model(模型)、View(视图)、Controller(控制器)这三个部分。2. MVC设计模式有什么优点?有利于开发中的分工。可以提高各个组件之间的可重用性。各个组件各司其职,互不干扰。3. SpringBoot有什么优点?开箱即用,无须外部容器支持。提供了大量的启动器,能够大大提高开发效率。...原创 2020-03-31 10:44:12 · 296 阅读 · 0 评论 -
【面试题解析】-- 20200328Java软件开发工程师面试题解析
1. 为什么函数不能根据返回类型来区分重载?在Java中,重载的概念是:在同一个类中,方法名相同,参数列表完全不同的方法。如果我们声明返回值不同、参数列表完全相同的两个方法,那么程序将不知道该调用哪个方法,所以我们不能根据返回值类型区分重载。2. 在开发中遇到过内存溢出么?原因有哪些?解决方法有哪些?引起内存溢出的原因有很多种,常见的有以下几种:内存中加载的数据量多于庞大,如一次从数据库...原创 2020-03-30 09:11:40 · 233 阅读 · 0 评论 -
【面试题解析】-- 20200327Java软件开发工程师面试题解析
1. http 的长连接和短连接有什么区别?http长连接在http1.1是默认开启的,而短连接在http1.0是默认开启的,长连接是客户端与服务器端建立连接后长时间保持连接状态,而短连接是每进行一次http操作就建立一次连接。2. http 常见的状态码有哪些?200请求成功。302请求重定向。404资源未找到。403请求方法不正确。405请求参数不正确。500服务器内部错误。...原创 2020-03-28 09:35:20 · 374 阅读 · 0 评论 -
【面试题解析】-- 20200326Java软件开发工程师面试题解析
1. 在单点登录中,如果 cookie 被禁用了怎么办?单点登录的实现原理是在服务器端生成一个token,然后将token保存在cookie中,用户请求时token会随着cookie发送到服务器端,从而达到一个身份校验的实现。而如果cookie被禁用了,我们就可以通过url重写的方式,将token附加为一个字符串参数,这样就能有效地解决。2. 什么是 jsp,什么是Servlet?jsp是...原创 2020-03-27 09:29:58 · 271 阅读 · 0 评论 -
【面试题解析】--20200325Java软件开发工程师面试题解析
1. 事务的四大特征是什么?事务的四大特征可以称为ACID:分别是原子性、一致性、隔离性、持久性。原子性:保证每个事务都是一个独立的整体,要么一起成功,要么一起失败。一致性:当数据库事务完成后,保证数据的一致性。隔离性:任何事务都不能依赖或影响其他事务。持久性:当事务完成后,数据持久化到数据中。2. Mysql 中四种隔离级别分别是什么?事务隔离级别脏读不可重复读幻...原创 2020-03-26 09:11:16 · 336 阅读 · 1 评论 -
【面试题解析】-- 20200324Java软件开发工程师面试题解析
1. 谈谈Spring Bean的作用域有哪些?Spring IOC容器创建一个Bean实例时,可以为Bean指定实例的作用域,作用域包括singleton(单例模式)、prototype(原型模式)、request(HTTP请求)、session(会话)、global-session(全局会话)。2. 谈谈spring中的声明式事务Spring 中进行事务管理的通常方式是利用AOP(面向切...原创 2020-03-25 09:25:51 · 250 阅读 · 0 评论 -
【面试题解析】-- 20200323Java软件开发工程师面试题解析
1. mybatis是否支持关联对象查询?mybatis是支持关联对象查询的,mybatis不仅支持association一对一关联对象查询,还支持collections多对一关联对象查询。2. mybatis中是否有缓存机制?在mybatis中是存在缓存机制这一概念的,mybatis的缓存机制有两级,一级缓存(SqlSession缓存)默认是开启的,二级缓存(全局缓存)需要手动开启。3....原创 2020-03-24 09:17:18 · 271 阅读 · 0 评论 -
【面试题解析】-- 20200321Java软件开发工程师面试题解析
1. Spring 中的运用的设计模式有哪些?单例模式模板方法,比如RedisTemplate就是典型的一个模板方法类。代理模式工厂模式前端控制器模式2. 简单介绍一下 Spring bean 的生命周期程序启动时,将元素中声明的bean加载并初始化到容器中,有需要使用到该bean的时候可以直接注入调用,最终bean将会被销毁。3. String 、StringBuilder ...原创 2020-03-22 23:59:11 · 230 阅读 · 0 评论 -
【面试题解析】-- 20200320Java软件开发工程师面试题解析
1. 动态代理和静态代理有什么区别?静态代理是由程序员编写的代理类,在编译期就已经确定了。动态代理是要在运行期才能够确定。静态代理与代理对象的代码耦合,扩展性不够高。动态代理是在不知道代理对象的情况下进行绑定的,只有在运行期才进行动态绑定。2. 请分别介绍final、finally、finalize、static关键字final关键字,它是Java中的常量关键字,被它修饰的方法不可被重写、类...原创 2020-03-21 09:53:50 · 179 阅读 · 0 评论 -
【面试题解析】-- 20200319Java软件开发工程师面试题解析
1. Java 中异常分为哪些种类?按照异常需要处理的时机分为:受检异常(CheckedException)和运行时异常(RuntimeException)。受检异常都是应当被处理的异常,而运行时异常可不必进行处理。2. 简单解释一下 spring 的 AOPAOP,即面向切面编程,它可以说成是OOP的补充和完善。OOP引入了封装、继承、多态等概念来建立一种层次结构,用于模拟公共行为的一个集...原创 2020-03-20 09:48:24 · 117 阅读 · 0 评论 -
【面试题解析】-- 20200318Java软件开发工程师面试题解析
1. 什么是SpringIOC容器?IOC,即控制反转,它可以创建和管理JavaBean并通过与DI依赖注入配置进行装配对象、配置对象、并管理这些对象的整个生命周期。2. 在 Spring AOP 中,关注点和横切关注点的区别是什么?关注点是应用中一个模块的行为,一个关注点可能会被定义成我们想要实现的一个功能。横切关注点就是一个关注点,但是它是整个应用都会使用到的功能,比如日志打印、事务控制...原创 2020-03-19 10:24:48 · 143 阅读 · 0 评论 -
【面试题解析】-- 20200317Java软件开发工程师面试题解析
1. 如何解决get、post请求乱码问题?如果是jsp、servlet项目可以在web.xml中通过设置字符过滤器encodingFilter为utf-8。可以在获取request中请求参数前通过,request.setCharacterEncoding(“utf-8”)统一设置请求的编码格式。2. IOC的优点是什么?IOC/依赖注入把应用代码量降到最低。它使得应用容易测试,单元测...原创 2020-03-18 09:06:27 · 132 阅读 · 0 评论 -
【面试题解析】-- 20200316Java软件开发工程师面试题解析
1. 两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hashCode,这句话对不对?这是不正确的,两个对象如果相等那么他们的hashCode一定相等,因为对象数据类型保存的是堆内存空间的地址,所以他们的hashCode一定相等,但是hashCode相等的两个对象值不一定相等。2. SpringMVC 常用注解都有哪些?@RequestMapping:指定一个...原创 2020-03-17 09:25:45 · 166 阅读 · 0 评论 -
【面试题解析】-- 20200314Java软件开发工程师面试题解析
1. 请你介绍一下HashMapHashMap是Java中一个基于key-value的键值对象,它的底层实现是数组+链表+红黑树,HashMap允许键或值为空,HashMap的线程是不安全的,因为它的底层操作方法没有加锁。2. Sychronized与Lock之间有什么区别?Sychronized与Lock都可以实现锁,Sychronized能够自动加锁和解锁,Lock则需要我们手动调用相关...原创 2020-03-16 00:01:13 · 139 阅读 · 0 评论 -
【面试题解析】-- 20200313Java软件开发工程师面试题解析
1. ArrayList与LinkedList之间有什么区别?ArrayList与LinkedList都实现了List接口,ArrayList的底层其实质上就是一个数组,ArrayList可以说是数组的加强版,而LinkedList底层是由一个双向列表组成。ArrayList元素查找的效率比较高,而LinkedList插入、删除元素的效率较高。2. 什么情况下使用ArrayList是可能发生线...原创 2020-03-14 09:34:53 · 131 阅读 · 0 评论 -
【面试题解析】-- 20200312Java软件开发工程师面试题解析
1. 请谈谈ArrayList的扩容机制ArrayList如果使用默认构造方法创建,那么第一次添加元素时将会执行一次扩容操作,ArrayList的扩容其实质上就是数组元素的拷贝,ArrayList在每次执行add()操作时都会检查当前ArrayList大小,如果检查到容量不够了,那么将执行扩容操作。2. 请简单的介绍一下LinkedList的工作原理LinkedList的底层实现是一个双向链...原创 2020-03-13 10:25:28 · 267 阅读 · 0 评论 -
【面试题解析】-- 20200311Java软件开发工程师面试题解析
1. 请你说说Java中HashMap的工作原理在Java中HashMap是通过key-value保存键值的,通过默认构造方法创建HashMap它的初始大小为16,负载因子为0.75,在HashMap中通过hashcode()与equals()对元素进行添加与检索,当调用put方法时,hashMap会计算key的hash值,如果存在则直接替换值,如果不存在则添加一个元素,2. 请你说说什么是H...原创 2020-03-12 08:58:12 · 144 阅读 · 0 评论 -
【面试题解析】--20200310Java软件开发工程师面试题解析
1. 为什么说String是不能被改变的字符串?String是被final修饰的密封类,String的底层实现是一个final修饰的char[]数组,因为它被final修饰所以,一旦赋值之后就不能再发生改变了。2. 接口是否能够继承接口?抽象类是否能够实现接口?抽象类是否能够继承实体类?接口是可以继承接口的,抽闲类也可以实现接口,抽象类可以继承实体类。3. notify()和notifyA...原创 2020-03-11 00:02:47 · 150 阅读 · 0 评论 -
【面试题解析】--20200309Java软件开发工程师面试题解析
1. 什么是AOP?AOP也就是面向切面编程,它允许我们对横切关注点上的行为进行模块化,也就是将公共的一些实现抽取出来,然后以声明式的方式与需要使用到该功能模块的组件建立关系。2. 什么是IOC?IOC,即控制反转,比如将一个对象的创建交给其他实例去完成这就是控制反转,在Spring中IOC是一个管理JavaBean的容器,它可以创建所有注入到Spring中的Java对象,并且可以建立各个组...原创 2020-03-10 00:12:57 · 115 阅读 · 0 评论