阿里面试题(一)

(以下面试题均搜集于各个招聘网站的面试经历题目)

1.如何防止网络抖动产生的重复建单?

答:原因:你这种情况应该是客户端请求发过去了,服务器写到数据库了,返回完成状态的时候网断了,这时客户端没有收到反馈以为订单没有生成,再点击下单,这时网络好了,结果生成了两个。

解决办法:(1).待支付订单如果正在支付,就把这边订单锁定,变更为一个中间状态,这样就不会重复去支付这笔订单了(前端将提交按钮第一次点击提交时变成disable状态,直到后台返回状态后提交按钮恢复状态)

(2).可以修改后台代码使用线程池来避免重复提交,用sychronized就会是有重复的数据产生,如果加上则不会产生重复数据,达到预期效果。前台重复提交第二次时,然后通过查询后台返回一个状态,前台提示“不能重复提交”

(3).通过查询数据库这条订单的关键字段信息,看是否有重复订单,若有则前台重复提交时返回前台“不可重复提交”

2.如何度过服务器启动后的连接风暴?

3.jvm GC原理?

参考:http://blog.csdn.net/lzxadsl/article/details/50159939

4.类加载机制?

参考:http://blog.csdn.net/fgets/article/details/52934178

5.JVM优化?

参考:http://blog.csdn.net/kefengwang/article/details/54378235

6.说说对KAFAKA的理解?

现代的互联网分布式系统,只要稍微大一些,就一定逃不开3类中间件:远程调用(RPC)框架、消息队列、数据库访问中间件。Kafka 是消息队列中间件的代表产品,用 Scala 语言实现.

参考:https://www.cnblogs.com/yangxiaoyi/p/7359236.html

7.说一下多线程的实现,同步,异步,优化?

答: 同步就是一件事,一件事情一件事的做。 异步就是,做一件事情,不引响做其他事情。

多线程有两种实现方法,分别是继承Thread类与实现Runnable接口;

同步的实现方面有两种,分别是synchronized,wait与notify

多线程优化参考:http://blog.csdn.net/luofenghan/article/details/78596950

8.说一下线程池?线程池里面的线程的状态有哪些?

线程池作用:简单说,频繁地创建和关闭线程是非常耗CPU资源的,线程池可以减少开销

理解线程池参考:https://www.cnblogs.com/aspirant/p/6920418.html

线程池状态:http://blog.csdn.net/l_kanglin/article/details/57411851

9.数据结构有哪些?

答:http://blog.csdn.net/gzl0524/article/details/78929154

10.hashmap和hashtable的区别?hashmap的数据结构?hash的具体实现?

答:http://blog.csdn.net/fujiakai/article/details/51585767

11.设计模式有了解哪些?谈一下单例模式,工厂模式,代理模式

答:顺便说一下spring的aop是基于代理模式的,可以实现日志记录功能等

12.集合的分类和各自原理?

答:http://blog.csdn.net/qq_35124535/article/details/66971650

13.分布式和集群区别?

答:集群是个物理形态,分布式是个工作方式

参考:http://huangyongxing310.iteye.com/blog/2317865

14.数据库的锁

答:

锁机制有两个层面。

一种是代码层次上的,如java中的同步锁,典型的就是同步关键字synchronized,这里我不在做过多的讲解,

感兴趣的可以参考:http://www.cnblogs.com/xiohao/p/4151408.html

另外一种是数据库层次上的,比较典型的就是悲观锁和乐观锁。就是悲观锁(传统的物理锁)和乐观锁。

15.java中事务介绍

答:http://blog.csdn.net/sinat_33536912/article/details/51200630

16.jvm内存管理机制?

答:https://www.cnblogs.com/newyunhe/articles/5001056.html

17.Concurrent包的熟悉

18.数据库的各种锁的机制

答:http://blog.csdn.net/lexang1/article/details/52248686

19.索引的类型和各自实现

答:https://www.cnblogs.com/barrywxx/p/4351901.html

20.高并发理解和解决办法

答:http://blog.csdn.net/systemzyf/article/details/70258041

21.数据库的优化?

答:最好不要设置null值,避免sql语句中进行计算,避免In,导致全表扫描

22.分布式下线程同步怎样处理问题?

答:http://www.fx361.com/page/2017/0309/1098261.shtml

23.如何处理并发和同步?

答:http://betakoli.iteye.com/blog/2257095

文章转自: https://blog.csdn.net/gzl0524/article/details/79195940

pa:答案来自于网上搜索结果,可以参考~

原文发布于微信公众号 - JAVA高级架构(gaojijiagou)

原文发表时间:2018-05-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

Linux探秘之用户态与内核态

Unix/Linux的体系架构 ? 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——...

60290
来自专栏前端杂货铺

node模块加载层级优化

模块加载痛点 大家也或多或少的了解node模块的加载机制,最为粗浅的表述就是依次从当前目录向上级查询node_modules目录,若发现依赖则加载。但是随着应用...

38580
来自专栏极客猴

pustil - 获取系统信息库

运维工程师经常使用 Python 编写脚本程序来做监控系统运行的状态。如果自己手动使用 Python 的标准库执行系统命令来获取信息,会显得非常麻烦。既要兼容不...

16910
来自专栏安恒网络空间安全讲武堂

Python编写渗透工具学习笔记一 | 0x01 目录扫描程序

0x01web目录扫描程序 脚本利用演示 直接输入python DirScan.py会打印出使用说明信息 ? 然后扫描一下 ? 可以看到扫描出了我的服务器的这些...

49370
来自专栏信安之路

绕过内容安全策略总结

今年的 0CTF 预选赛 6 道 web 题,其中三道都涉及 CSP 的知识点,简直可怕。。。这次趁着空闲时间就稍稍总结一下 CSP 绕过方面的知识,无论是对以...

25700
来自专栏云飞学编程

python爬虫零基础入门——反爬的简单说明

之前在《如何开始写你的第一个python脚本——简单爬虫入门!》中给大家分享了一下写一个爬虫脚本的基本步骤,今天继续分享给大家在初期遇到的一个很烦人的问题——反...

10330
来自专栏aCloudDeveloper

Linux探秘之用户态与内核态

一、 Unix/Linux的体系架构 ?   如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一...

24780
来自专栏Golang语言社区

如何优化服务器的性能

一、通常服务器的性能会卡在三个地方: cpu 网络IO 磁盘IO 二、在优化性能的时候,首先要判断性能的瓶颈在上述的哪个地方。然后对症下药,按照下面的方法来优化...

44590
来自专栏Ryan Miao

查找git ignore的追踪

前言 版本控制说简单也简单,说复杂也困难的多。作为开发者,最基础的版本管理和团队协作的功能必须掌握。而其他一些相关的信息也可以了解下。比如,这次就有同事遇到了问...

35660
来自专栏企鹅号快讯

使用postman快速建立MOCK使用篇

首先介绍一下Mock,借用一下百度百科解释:mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法, 其...

1.1K50

扫码关注云+社区

领取腾讯云代金券