本文作者:huangp1489

多线程微服务面试技巧和方法

huangp1489 11-09 5
多线程微服务面试技巧和方法摘要: 有谁去大连腾飞软件园面试过吗?面试都问什么呢?急?有谁去大连腾飞软件园面试过吗?面试都问什么呢?急?mq面试必背知识点?String常量池如何理解?面试一般会问吗?有谁去大连腾飞软...
  1. 有谁去大连腾飞软件园面试过吗?面试都问什么呢?急?
  2. 有谁去大连腾飞软件园面试过吗?面试都问什么呢?急?
  3. mq面试必背知识点?
  4. String常量池如何理解?面试一般会问吗?

有谁去大连腾飞软件面试过吗?面试都问什么呢?急?

我去过SBI BITS 面过 系统开发部 web项目的话 基本就是 主流框架 分布式开发 微服务之类的,再问一下开发语言的基础知识,比如spring机制啦 java事务啦 jvm,多线程 啦 一些面试经常问的问题,还有一些中间件的使用,再就是前端 比较主流的一些库 接触过或者是基本语法,在就是设计经验数据库经验也会问问,问的会比较全面一点,但是不是深扣一个东西 让你解释很清楚。

有谁去大连腾飞软件园面试过吗?面试都问什么呢?急?

我去过SBI BITS 面过 系统开发部 web项目的话 基本就是 主流框架 分布式开发 微服务之类的,再问一下开发语言的基础知识,比如spring机制啦 Java事务啦 jvm,多线程 啦 一些面试经常问的问题,还有一些中间件的使用,再就是前端 比较主流的一些库 接触过或者是基本语法,在就是设计经验和数据库经验也会问问,问的会比较全面一点,但是不是深扣一个东西 让你解释很清楚。

mq面试必背知识点?

解耦:我们看到,服务A强依赖服务B和C,当服务B或者C挂掉后,会直接导致服务A的不可用,这显然不是我们所期望的。比如服务的最后一步是记录日志,但是该服务挂了,虽然日志服务和主流服务没有必然的业务联系,但是因为代码的耦合性过高,直接导致整个服务响应失败。

多线程微服务面试技巧和方法
(图片来源网络,侵删)

异步:***如服务A本身执行只需要10ms,服务B需要5ms,服务C(日志服务)需要1s。同样的,一个和业务本身无关的服务过长的响应时间导致了整体服务的响应超时。

削峰:***如由于服务C只是记录日志的,服务器配置较低,1s只能处理2000条数据,但是高峰时段,每秒的请求高达10万笔,过高的请求会导致服务器崩溃。

String常量如何理解?面试一般会问吗?

String常量池问题,答主根据自己的理解来简单说说吧!

多线程微服务面试技巧和方法
(图片来源网络,侵删)

所以jvm为了节约***,给String开辟了一个字符串常量池,那么每次要创建新的Strig你对象的时候都会到字符串常量池中先去看看有没有这个值,有的话那就直接引用,不需要创建。没有的话创建完毕之后在放入到字符串常量池中。

要理解什么是String常量池需要了解所谓的堆,栈,方法区。这里我就不做过多解释,如果有不懂的小伙伴自己区查找资料去看看。这里我就简单说说:

:一般放对象,那么也是GC常常光顾的地方

多线程微服务面试技巧和方法
(图片来源网络,侵删)

:一般放引用

方法区:一般放公共的***,比如说被Static修饰的静态成员,包括final修饰的成员;

示例:String a="abc";

String b="abc";

String c=new String("abc");

根据上面的代码答主自己画的内存图:

为了便于理解,举个例子,有如下代码段:

String t0 = "helloworld";

String t1 = new String("helloworld");

上面代码在运行时会在J***a虚拟机栈中创建一个String类型变量t0,然后会优先在方法区的运行时常量池中查找是否已经存在相同的字符串,倘若已经存在,栈中t0变量直接指向该字符串;倘若不存在,则在常量池中创建一个"helloworld"字符串,再将栈中t0变量指向该字符串。通过new关键字创建字符串对象,首先当前类被加载后,会在方法区的运行时常量池中查找是否已经存在"helloworld"字符串,如果不存在,则将编译期生成的"helloworld"存到运行时常量池中,如果已存在不存放,在堆中生成一个String类型的对象,栈中t1变量指向该对象。需要注意的是从JDK1.7开始,HotSpot虚拟机将字符串常量移至J***a Heap。

这里再说一下String的intern方法,JDK1.7之前的版本中,intern方***优先在方法区的运行时常量池中查找是否已经存在相同的字符串,倘若已经存在,则返回已存在的字符串,否则则在常量池中添加一个字符串常量,并返回字符串。因为从JDK1.7开始,HotSpot虚拟机将字符串常量移至J***a Heap,intern方法的实现也发生了变化,首先还是会先去查询常量池中是否已经存在,如果存在,则返回常量池中的字符串,否则不再将字符串拷贝到常量池,而只是在常量池中保存字符串对象的引用。

文章版权及转载声明

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnrkw.com/post/36364.html发布于 11-09

阅读
分享