软件公司面试总结 您所在的位置:网站首页 做聚合支付的大公司有哪些 软件公司面试总结

软件公司面试总结

2024-06-24 05:04| 来源: 网络整理| 查看: 265

文章目录 面试1面试2面试3面试4面试5面试6

面试1

1、你先做个简单的自我介绍吧 我叫张三,2015年在重庆邮电大学毕业。我读的专业是电子信息。工作已经快5年了。 我上家公司的主营业务是在柬埔寨做移动支付钱包。 最近做的一个项目是聚合支付的项目,主要的功能是为了让柬埔寨当地的华人能使用微信、支付宝钱包做支付,就做了一个聚合码这样的功能。负责的主要的模块是一个渠道的模块(对接外部渠道),比如支付宝、微信。然后,就提供一个统一的接口给支付交易那边使用。这个项目上线后我也对它做了一些优化。 再往前的一个项目是一个出入金的项目,这个项目主要的功能是提供一些充值、提现的服务,给当地的人可以去我们公司开设的一个现金网点,用现金做充值提现,先充进钱包里面,做线上的消费,我负责的模块就是一个充值服务,主要是对整个充值流程的控制,和账户,还有订单那边做交互。

2、简单介绍下Spring Bean的注入过程

3、简单介绍下Java8有哪些新特性? 1)语法上面主要就是lambda表达式,它可以用那个函数式进行函数式编程,函数式接口的意思就是它这个接口只有一个方法 2)还有一些流的操作,像Stream API,它可以使编程语义更清晰。比如:有一个filter功能就可以把不符合要求的数据过滤掉 3)它对一些数据结构进行了优化,像ConcurrentHashMap,它底层实现改成了红黑树

分析: 面试官问的是有哪些新特性,回答的是一些优化。

4、刚刚有提到过流式处理,你有了解过它的性能么?比如:Stream流的操作,对比像foreach或者基本的for循环,有没有在效率上进行优化?

5、你能跟我讲一下synchronized和lock锁它底层实现的原理吗? synchronized是一个语义级的支持,在一个对象头里面,它有一个Mark Word的这么一个标记去记录他的锁。lock显示锁,它底层是一个AQS,它是一个双向链表的先进先出的队列,它当前持有锁的线程就是一个对头,然后它释放出来职还,就会利用一个自旋的操作,就让下一个线程作为对头。

6、synchronized和lock分别是什么层面的呢?是jdk层面还是jvm层面? sychronized是jvm层面的,lock是jdk层面的

7、刚刚提到synchronized,你有去了解过它锁方法,锁对象头,锁代码块分别是怎么实现的吗?

8、你了解synchronized锁升级过程吗?

9、刚刚提到lock,CAS你能给我简单的介绍一下吗? CAS,它的意思就是比较并交换

10、你有在开发过程中有实际的一些应用吗?有没有用到乐观锁? 我在更新数据库的时候,如果数据库用的是一个乐观锁的话,我也用一个自旋的操作,就把它更新到成功为止

11、自旋的话,会不会效率很低?比如说,一直取不到这个锁的话,那可能会造成一些线程阻塞。或者说,在高并发的场景下,会影响到效率? 并发高的话,不适合用自旋,这个时候更适合用悲观锁

12、关于线程池,把你知道的知识点跟我说一下 工作流程: 1)先提交进来 2)进入核心池里面 3)如果线程数大于coreSize,就会进入一个阻塞队列 4)阻塞队列满了之后,就会新建一个线程,进入最大的池里面 5)当线程数超出maxSize的时候,就会执行一个拒绝策略。jdk自带的拒绝策略有4种,一种是直接丢弃,一种是抛异常,一种是有调用者在调用者的线程执行,一种就是丢弃阻塞队列里面等待时间最长的一个线程

13、你了解JVM调优的基本步骤吗? 如果生产环境上面发生oom异常,首先要判断它是在堆里面发生的,还是在元空间里面。还有一种可能就是gc效率过低,就是用了80%的时间,但是清除的垃圾都达不到2%,效率过低,主要是针对这种情况(进行调优)。如果是堆空间不够,就要考虑是不是有内存溢出的现象,可以通过拿到当时的内存快照,用工具(jmap),然后就用MAT工具来分析,是不是内存泄漏,有一些对象,它们本来是没有,应该被gc掉,但是它们还保留着,如果是内存泄漏的情况就改代码,如果不是的话,就考虑增大一下堆内存。

14、现在遇上一个线上cpu占用率100%的问题,你怎么排查这个问题? 1)先用top查出是哪些进程占用的cpu最高 2)找到占用cpu最高的进程后,用命令找到里面占用率最高的线程,然后,转换为16进制的,然后再用jstack,打出它具体的堆栈,定位到具体的哪一行代码。

15、在linux上面查看进程的命令?

16、一般怎么去优化mysql的查询? 一般就用expain执行计划,看看执行的各方面的数据。如果是索引没用的的话,就建索引。

17、mysql里面,索引有几种类型? 一般有两种,hash和B+树

18、我们为什么用B+树,不用其他的呢?比如平衡二叉树,红黑树这些。 不用平衡二叉树,是因为平衡二叉树的树高太高了。如果数据是放在内存的话,其实用 AVL也没问题,但是如果树高很高的话它就频繁访问硬盘,IO次数会多一点。

19、树高低也有B树,为什么用B+?

20、能跟我说一下MyISAM和InnoDB的区别吗? 1)MyISAM用的是非聚集索引,它的索引直接指向的是数据项 2)InnoDB用的是追溯索引,它的索引直接指向主键索引,主键索引查取数据项 3)InnoDB支持redo log日志 4)InnoDB支持事务 5)InnoDB支持行锁,MyISAM只支持表锁

21、开发过程种技术选型的时候,这么多缓存中间件(Memcache, MongoDB),为什么选择Redis?

22、Redis为什么这么快? 1)因为数据是在内存中的嘛,所以读写(IO)比较快 2)另外,Redis使用的IO模型是异步非阻塞

23、如果断电了,Redis的数据会不会丢失? Redis支持持久化,就是把数据持久化到硬盘里面。持久化有两种方式,一种是RDB,每隔一段时间会把内存快照存到硬盘里面,还有一种是AOF,就是用命令将内容序列化到文件里面去,如果断电的话,可以根据AOF写的文件来恢复数据。一般生产上就是RDB和AOF同时开启的,两者有优点缺点,AOF备份的数据会比较全一点,但是恢复起来比较慢,RDB虽然说数据少一点,但是恢复挺快的,拿上去就直接能用了,所以说一般在应急情况下都是会先用RDB的,然后再用AOF去追加那些不全的数据

24、你了解过Redis的集群么?

25、你是怎么理解缓存击穿和缓存穿透的?

26、Spring的优点有哪些? 1)没有侵入性(AOP) 2)把对象的依赖管理起来(IOC)

27、跟我讲下dubbo的调用链路(从生产者到消费者的整个链路)

分析: 1)服务暴露的过程 2)然后调用过程中其实还有1个Monitor监视器什么的 3)在启动的时候,还有一个Containner容器,跟Spring Bean怎么融合的

28、除了单例和工厂,你了解哪些设计模式? 项目中比较常用的: 1)策略模式,它的类结构是有一个Context,它是聚合的一个抽象的策略接口,然后,还有很多个具体的策略实现类来实现它。我主要是把它用在渠道这方面,比如,渠道下单,有多个渠道,要写的报文格式,还有,数据结构都是不一样的,然后就可以用不同的策略 2)还有一个是状态模式,主要是用来进行状态流转的控制,它的类结构和策略模式也有点像,很相似,也是一个Context(它持有的),它聚合的是一个抽象的状态接口,然后,下面也有很多状态的实现类,具体实现类。 比较: 这两个模式关注点不太一样,策略模式主要关注的是对一个功能的不同实现算法(方法),并且可以动态的去切换。状态模式,它主要是关注的一个状态的流转,会从A状态B状态他们之间的是什么流程

29、金融支付的场景,怎么保证幂等? 1)数据库层面要做一个唯一索引 2)在访问量稍微大的情况下,可以考虑把一些需要做幂等的数据先存到缓存里面

30、存到缓存里面怎么去做的? 比如:订单过来的时候,可以把那个订单号放到redis里面,下一笔订单来之后先去Redis里面检查是否存在此订单,然后就过站

31、按道理来说会出现各种场景,就是像退款、下单、支付、发货等都是一个订单号操作的,你怎么能保证是一个场景还是多个场景在这里进行操作的?因为它完全可能是支付成功后,商家马上就来接收到这笔订单之后马上发货什么的。 答:刚刚主要是针对新建订单的场景

32、怎么避免重复消费(重复支付)? 免重复支付,目前的做法就是从数据库里面查一下订单的状态,然后用状态机的状态(刚刚说的状态模式),如果是已经完成了,它已经到了一个状态了,就不会对这边订单做修改了。如果是它还是处理中的话,那就证明它还可以流向失败还有成功的状态。

33、像这样一个场景,就是刚刚你说去查一下嘛,如果我去数据库查到了,然后返回过来的途中,其实它的状态应该还是未支付的,但其实有一笔支付的已经过来了,然后这个时候同时过来两笔,按道理来说这两笔可能都会加上去,对不对? 答:如果是这种情况的话,可以加一个分布式锁

34、说一下分布式锁你是怎么实现的? 分布式锁主要是控制我们平时所谓的线程的共享资源的修改,分布式锁就是控制一个进程,平时的话我们就用Redis的setnx(原子性操作)

35、有试过用ZK(zookeeper)吗?

参考资料 [01] 利用jmap和MAT等工具查看JVM运行时堆内存 [02] HashTable和HashMap的区别详解 [03] Redis乐观锁解决高并发抢红包的问题 [04] 使用Redis和Lua的原子性实现抢红包功能 [05] 一次生产 CPU 100% 排查优化实践 [06] 一份十分完整的CPU 100%排查优化指南

小结 java程序员面试,最常见的套路永远是问:你用过多少中间件和库? 然后又问:这些中间件和库的特性了解多少? 再高级一点的就会问:这些中间件和库特性原理是什么? 作为真正有能力解决问题的开发人员,考虑问题的方向不是这么样的。 1,业务上需要什么功能,某个库或中间件能提供,那么只要冲自已想要的去了解好就行,毕竟软件功能要的永远是够用就行,要考虑以后扩展就不要盲目用第三方提供的东西了,业务周期也没这么充裕的时间让你慢慢搞,堆起来功能能用时业务考虑的第一要素。所以问此中间件和库深层了解是多余的,人人都是冲它有自已想要的功能去用而已,没必要用一样就得了解得透彻。 2,既然是java开发,那么要看看想找的是什么人,搬砖工问的是使用过什么框架,什么库就行了,架构师级别问的,应该是spring,springboot,springcloud都有什么不同,有什么优点,有什么缺点,缺点怎么克服,给出方案和案例才是重点。举个简单例子,很多都知道swagger能生成文档,但对复杂数据不支持,该怎么救活呢?很多人会答不上,但架构师级别有做过的肯定知道,这些是开发前必须解决的事。只要工作场景用不着,很多人对java都是不认识的,nio和netty有什么用都可能不清楚,因为工作场景用不上,用得上的多数是架构级别。如果非架构级别还经常用上,只能说现在用于开发的框架设计太烂了。 3,既然是用java,多线程相关的就别问些什么了,知道hashtable和hashmap的区别就好了,知道线程并行访问资源的时序分析和注意事项就可以了,加个concurrent包装的,就别用来做什么多线程,高效率之类的东西了,用原子锁级别的能有多快呢?并行读互斥写的锁,在绝对读写高并发时同样死。用java老老实实用无状态线程池,共享对象什么的用个redis或memc来放就好了。java不可能像c\c++那样能用cas解决任何高效并发的问题。安全生产最重要,效率稍低机器来补。java的各种多线程对象,sync关键字,都是让多线程变得比单线程流水线还慢的东西。 作为面试官,就要清楚要招的是什么人,要用什么人,别老把乱七八糟的东西扯一大堆不等用的,问倒对方还觉得高兴一样,这样对你对公司形象对面试者都没有好处。 面试重点是这人现有技能是否满足岗位要求,人是否能好好合作,最后才是这人是否学习快,灵活变通,能产生更多价值。

面试2

面试职位:Java开发(机器人后台管理系统) 面试公司:维xxx科技有限公司 面试时间:2019-09-20

面试流程: 1)填表 2)笔试(填空,选择,编程,简答) 3)技术面试(自我介绍,项目介绍,提问)

Java笔试题不难,如果好好准备的话,笔试肯定可以过的。

跟Java面试有关的学习资料如下: [01] Java面试题全集(上) [02] Java面试题全集(中) [03] Java面试题全集(下)

印象比较深的题目如下:

笔试题目:依赖注入的3种方式 参考答案: ① setter方法注入 ②构造器注入 ③@Autowired注入

笔试题目:Spring框架中Bean的作用域 参考答案: ① singleton ② prototype ③ request ④ session ⑤ global-session

笔试题目:Spring MVC的原理

笔试题目:实现三角形的角度 在这里插入图片描述分析: 这家公司主要是做三维实景的,开发人员需要懂几何知识的

package examples; public class MathTest2 { public static void main(String[] args) { Point p1 = new Point(1,2); Point p2 = new Point(3,1); Point p3 = new Point(2,3); double a = p2.getLength(p3); double b = p3.getLength(p1); double c = p1.getLength(p2); // 计算弧度 double rad = Math.acos((b*b + c*c - a*a)/(2.0*b*c)); // 将弧度转成角度 double angle = Math.toDegrees(rad); System.out.println(angle); } } class Point{ private double x; private double y; /** * 计算出两个坐标点之间的距离 * @param other * @return */ public double getLength(Point other) { double width = this.x-other.x; double height = this.y-other.y; return Math.sqrt(width*width+height*height); } public Point() { super(); // TODO Auto-generated constructor stub } public Point(double x, double y) { super(); this.x = x; this.y = y; } public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } }

笔试题目:栈的实现原理

笔试题目:html5框架的Canvas有什么作用 参考答案:HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像

面试题目:你知道哪些协议? 我回答的是http协议和https协议

面试题目:有没有用过socket? 他们的机器人项目主要是使用socket进行通信的

面试题目:阻塞,同步与异步 参考: https://www.jianshu.com/p/5bb812ca5f8e

面试题目:客户端跟后台是怎么交互的? 分析: 1)自定义响应结构(POJO类) 2)浏览器通过ajax发送请求 3)控制器根据请求的路径分配对应handler进行处理 4)handler接收请求参数,并返回自定义的响应结构数据 5)通过视图组件将响应数据转成json格式的文本,发送给浏览器

维xxx科技有限公司面试小结 1)问的问题基本上都是很基础的 2)准备不够充分

参考资料: [01] Spring注解依赖注入的三种方式的优缺点以及优先选择 [02] 理解Spring框架中Bean的作用域 [03] Java中计算三角形的角度 [04] socket阻塞与非阻塞,同步与异步 [05] ajax的同步和异步有怎样的区别?

面试3

面试职位:软件测试 面试公司:上海好xx信息技术有限公司 面试时间:2019-09-24

面试流程: 1)填表 1)技术面试(自我介绍,项目介绍,提问)

印象比较深的题目如下:

面试题目:Email系统怎么测试?比如:QQ邮箱 分析: 这个问题比较开放,现场没发挥好。 1)功能角度(功能运行成功和运行失败的各种情况) 测试发送邮件:邮件主题为空的情况;收件人为空的情况;收件人邮件地址不正确的情况;收件人过多的情况;邮件正文为空的情况;邮件主题过长的情况;邮件正文内容过长的情况;邮件正文包含图片的情况;输入正确的情况;邮件正文设置样式的情况;附件个数过多的情况;附件大小超出限制的情况;服务器磁盘空间不够的情况;收件人邮箱空间不够的情况;邮件主题包含特殊字符(换行、空格、引号等)的情况;数据一致性检查(对方收到的内容是否与发送的内容一致,不会出现中文乱码) 2)安全性角度 登录请求里面的密码是否做了加密处理;邮件内容是否做了加密处理;邮件正文内容包含js代码的情况;邮件正文内容包含木马链接的情况;非登录状态能否发送邮件;附件是病毒或木马文件的情况; 3)性能角度 email系统的响应速度如何;模拟大量并发的情况; 4)兼容性角度 使用不同的浏览器进行测试 5)界面角度(样式检查) 根据原型效果图进行比对(比如:邮件发送成功的界面,发送失败的界面等等)

面试官补充了两点: 1)系统的关联性(QQ聊天系统和QQ邮件系统) 2)垃圾邮件处理机制

面试题目:你知道RPC么?讲一下RPC的原理 RPC的实现原理主要包括8个步骤,请参考[06]

参考资料: [06] RPC的实现原理 [07] 什么是RPC

面试4

面试职位:Java开发 面试公司:上海xx金融信息服务有限公司 面试时间:2019-09-25

面试流程: 1)填表 2)笔试(逻辑题,选择题,简答题) 3)1面:技术经理面试(自我介绍,项目介绍,提问) 4)2面:公司高管面试(自我介绍,提问) 5)3面:HR面试(沟通薪资待遇)

印象比较深的题目如下:

笔试题目(逻辑): 在一张长方形的桌面上放了n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与原先某些硬币重叠。请证明整个桌面可以用4n个硬币完全覆盖。

笔试题目(逻辑): 假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。 我写上去的答案: 1)用容积为6升的水壶装满水 2)往容积为5升的水壶倒水,直至倒满(6升的水壶里面还剩1升水) 3)把容积为5升的水壶里面的水全部倒掉 4)把容积为6升的水壶里面剩余的1升水倒入容积为5升的水壶 5)用容积为6升的水壶装满水 6)往容积为5升的水壶倒水,直至倒满(6升的水壶里面还剩2升水) 7)把容积为5升的水壶里面的水全部倒掉 8)把容积为6升的水壶里面剩余的2升水倒入容积为5升的水壶 9)用容积为6升的水壶装满水 10)往容积为5升的水壶倒水,直至倒满(6升的水壶里面还剩3升水)

笔试题目(逻辑): 现在共有100匹马跟100块石头,马分3种,大型马;中型马跟小型马。其中一匹大马一次可以驮3块石头,中型马可以驮2块,而小型马2头可以驮一块石头。问需要多少匹大马,中型马跟小型马?

参考资料: [08] 50道逻辑思维题目

笔试题目(Java)

String s1 = "Student"; String s2 = "Stu" + "dent"; String s3 = new String("Student"); System.out.println(s1==s2);//结果是多少?true System.out.println(s1==s3);//结果是多少?false

笔试题目(Java):volatile关键字的作用

参考资料: [09] volatile关键字的作用

笔试题目(Java):CMS收集器

参考资料: [10] 并发收集器 CMS

笔试题目(Java):为什么要使用MQ消息中间件

参考资料: [11] 为什么要使用MQ消息中间件?它解决了什么问题? [12] 为什么要使用MQ和到底什么时候要使用MQ

笔试题目(算法)

二分搜索算法是利用( )实现的算法 A.分治策略 B.动态规划法 C.贪心法 D.回溯法

参考资料: [13] 二分查找算法实现(图解)与实例

笔试题目(算法):插入排序算法的时间复杂度

参考资料: [14] 插入排序算法、时间复杂度和稳定性

笔试题目(c语言):volatile关键字的作用?一个指针可以是volatile吗?

参考资料: [15] 解读关键字volatile

笔试题目(c语言)

下面是一个简单的密码保护功能,你能在不知道密码的情况下将其破解吗?

#include int main(int argc, char *argv[]) { int flag = 0; char passwd[10]; memset(passwd,0,sizeof(passwd)); strcpy(passwd, argv[1]); if(0 == strcmp("LinuxGeek", passwd)) { flag = 1; } if(flag) { printf("\n Password cracked \n"); } else { printf("\n Incorrect passwd \n"); } return 0; }

我写上去的答案是:① 使用穷举法破解 ②利用缓存溢出漏洞

参考资料: [16] 栈中变量的存放-strcpy [17] 12个有趣的C语言面试题

笔试题目(c语言):static关键字的作用?const关键字的作用? 我写上去的答案是:static表示变量的空间只有1份;const关键字可以用来定义常量;

笔试题目(操作系统):进程之间的通信方式

参考资料: [18] 进程间的几种通信方式

笔试题目(计算机网络):TCP和UDP的比较

笔试题目(项目)

天猫双十一有个积分换魔盒的活动,总共有50万台天猫魔盒(box),每个用户(user)可以用99个天猫积分(point)兑换一台魔盒,且每人限换一台。 请设计一套java接口并实现下单(order)逻辑。 参考(但不局限于)下面的下单逻辑: 1、创建订单 2、扣减用户积分 3、扣减魔盒库存 4、下单成功 同时请回答: 1、数据库表结构如何设计,有哪些表,分别有什么作用? 2、下单过程中哪些地方可能成为瓶颈?如何解决或改善? 3、是否会用到数据库事务,哪些地方会用到?如果不用数据库事务,如何保证数据的一致性?

用户表:t_user

字段名数据类型约束描述idint主键用户编号usernamevarchar(50)非空用户名passwordvarchar(50)非空登录密码creditint默认值为0积分mobilevarchar(50)手机号码addressvarchar(200)收货地址

在这里插入图片描述 商品表:t_product

字段名数据类型约束描述idint主键商品编号namevarchar(50)非空商品名称brandvarchar(50)品牌pricefloat(10,2)非空单价exchange_creditint兑换所需积分exchange_count_limitint兑换数量限制stockint库存数量creditint默认值为0积分exchange_flagboolean默认值false能否使用积分兑换img_urlvarchar(100)图片路径descriptiontext商品描述

在这里插入图片描述

订单表:t_order

字段名数据类型约束描述idvarchar(50)主键订单编号user_idint外键用户编号total_amountfloat(10,2)订单总金额actual_total_amountfloat(10,2)实际订单总金额discount_by_creditfloat(10,2)积分抵扣掉的金额payment_gatewayint支付方式payment_statusint订单支付状态order_statusint订单状态use_creditboolean是否使用积分create_timedatetime下单时间

订单明细表:t_item

字段名数据类型约束描述idint主键项目编号order_idvarchar(50)外键订单编号product_idint外键商品编号qualityint购买数量

兑换记录表:t_exchange_records

字段名数据类型约束描述idint主键记录编号user_idint外键用户编号product_idint外键商品编号order_idvarchar(50)外键订单编号exchange_quantityint兑换数量exchange_datedate兑换日期

参考资料: [19] 天猫积分换魔盒 [20] 面试题:阿里 天猫积分换魔盒

面试5

面试职位:Java开发 面试公司:上海易*软件有限公司 面试时间:2019-11-13

面试流程: 1)填表 2)笔试(简答题) 3)1面:技术经理面试(自我介绍,项目介绍,提问)

印象比较深的题目如下:

笔试题目(Java):

System.out.println(Math.round(10.5));//11 System.out.println(Math.round(-10.5));//-10

笔试题目(Java):

public class A { static{ System.out.print("1"); } public A(){ System.out.print("2"); } } public class B extends A { static{ System.out.print("a"); } public B(){ System.out.print("b"); } } /** * @Author: yangzc * @Description: 控制台输出多少?1a2b2b * @Date: Created on 20:34 2019/11/13 * @Modified By: */ public class ABTest { public static void main(String[] args) { A ab = new B(); ab = new B(); } }

参考资料: [21] Java中父类与子类的加载顺序详解

笔试题目 登录(认证授权)涉及的4种技术方案: 1)用户名和密码 2)OAuth2 3)SSO 4)JWT

选择其中的1个或多个,画出登录的流程图或时序图

参考资料: [22] 登录页面授权认证时序图 [23] OAuth2和JWT - 如何设计安全的API [24] OAuth2实现单点登录SSO [25] 基于JWT和Oauth2 实现 SSO(单点登录) [26] JWT、OAUTH2与SSO资料补充

面试6

面试职位:Java开发 面试公司:上海*羽网络有限公司 面试时间:2019-11-14

面试流程: 1)填表 2)笔试(简答题) 3)1面:技术经理面试(自我介绍,项目介绍,提问)

印象比较深的题目如下:

笔试题目:Java类初始化顺序

参考资料: [27] Java类初始化顺序说明

笔试题目:ReadWriteLock是否读写互斥

参考资料: [28] ReadWriteLock读写之间互斥吗

笔试题目:

/** * @Author: yangzc * @Description: x和y是否相等?为什么? * @Date: Created on 21:22 2019/11/14 * @Modified By: */ public class StringTest { public static void main(String[] args) { String x = "ab"; String y = "a" + "b"; System.out.println(x == y);//true } }

笔试题目:写一个死锁

笔试题目:设计一个单例模式

参考资料: [29] 单例模式——懒汉模式

笔试题目:Spring怎么解决循环依赖

参考资料: [30] Spring 如何解决循环依赖的问题

笔试题目:int a = 1是原子操作么?

笔试题目:MySQL数据库,离散度低的字段建立索引会有什么影响?

推荐阅读: [31] 最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备 [32] 2年Java开发工作经验面试总结

微信扫一扫关注公众号 image.png 点击链接加入群聊

https://jq.qq.com/?_wv=1027&k=5eVEhfN 软件测试学习交流QQ群号:511619105



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有