当前位置: 首页 > news >正文

一份阿里P7的面试题

BAT的牛人多,普通人也多,虽然他们不是每一个人都能达到令人仰望的技术水平,但毕竟平台高,所以眼光也会变得宽阔,代码要求更为严格,所以普通的程序员也会被逼的变得更优秀;身边的牛人多,普通的程序员也会受到影响,提升的更快。

下面是阿里P7的面试题,

Java多线程

线程池的原理,为什么要创建线程池?

线程的生命周期,什么时候会出现僵死进程;

什么实现线程安全,如何实现线程安全;

创建线程池有哪几个核心参数?如何合理配置线程池的大小?

synchronized、volatile区别、synchronized锁粒度、模拟死锁场景、原子性与可见性;

JVM相关

JVM内存模型,GC机制和原理;GC分哪两种;什么时候会触发Full GC?

JVM里的有几种classloader,为什么会有多种?

什么是双亲委派机制?介绍一些运作过程,双亲委派模型的好处;(这个我真的不会...)

什么情况下我们需要破坏双亲委派模型;

常见的JVM调优方法有哪些?可以具体到调整哪个参数,调成什么值?

JVM虚拟机内存划分、类加载器、垃圾收集算法、垃圾收集器、class文件结构是如何解析的

Java扩展

红黑树的实现原理和应用场景;

NIO是什么?适用于何种场景?

Java9比Java8改进了什么;

HashMap内部的数据结构是什么?底层是怎么实现的?

说说反射的用途及实现,反射是不是很慢,我们在项目中是否要避免使用反射;

说说自定义注解的场景及实现;

List和Map区别,Arraylist与LinkedList区别,ArrayList与Vector 区别;

Spring

Spring AOP的实现原理和场景;(应用场景很重要)

Spring bean的作用域和生命周期;

Spring Boot比Spring做了哪些改进?Spring 5比Spring4做了哪些改进;(惭愧呀,我们还在用Spring4,高版本的没关心过)

Spring IOC是什么?优点是什么?

SpringMVC、动态代理、反射、AOP原理、事务隔离级别;

中间件

Dubbo完整的一次调用链路介绍;

Dubbo支持几种负载均衡策略?

Dubbo Provider服务提供者要控制执行并发请求上限,具体怎么做?

Dubbo启动的时候支持几种配置方式?

了解几种消息中间件产品?各产品的优缺点介绍;

消息中间件如何保证消息的一致性和如何进行消息的重试机制?

Spring Cloud熔断机制介绍;

Spring Cloud对比下Dubbo,什么场景下该使用Spring Cloud?

数据库篇

锁机制介绍:行锁、表锁、排他锁、共享锁;

乐观锁的业务场景及实现方式

事务介绍,分布式事物的理解,常见的解决方案有哪些,什么事两阶段提交、三阶段提交;

MySQL记录binlog的方式主要包括三种模式?每种模式的优缺点是什么?

MySQL锁,悲观锁、乐观锁、排它锁、共享锁、表级锁、行级锁;

分布式事务的原理2阶段提交,同步\异步\阻塞\非阻塞;

数据库事务隔离级别,MySQL默认的隔离级别、Spring如何实现事务、

JDBC如何实现事务、嵌套事务实现、分布式事务实现;

SQL的整个解析、执行过程原理、SQL行转列;

Redis

Redis为什么这么快?redis采用多线程会有哪些问题?

Redis支持哪几种数据结构;

Redis跳跃表的问题;

Redis单进程单线程的Redis如何能够高并发?

Redis如何使用Redis实现分布式锁?

Redis分布式锁操作的原子性,Redis内部是如何实现的?

转载于:https://www.cnblogs.com/LoveMyBottle/p/10768891.html

相关文章:

  • svn统计代码行数(增量)
  • O2OA V4.1660 发布,Java 全功能开源办公软件
  • 比特币公共api大全
  • ansible从入门到放弃
  • LeetCode每日一题: 移除元素(No.27)
  • 秒杀系统流量削峰这事儿应该怎么做?
  • jenkins测试配置
  • 20189317 《网络攻防技术》 第十周作业
  • SpringBoot RabbitMQ 集成 二 Work queues
  • 75条笑死人的知乎神回复,用60行代码就爬完了
  • Windows server 2012 利用ntdsutil工具实现AD角色转移及删除域控方法
  • Linux学习
  • 面试官:说说双亲委派模型?
  • 北京
  • yocto添加层简介
  • 【Leetcode】104. 二叉树的最大深度
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 03Go 类型总结
  • 230. Kth Smallest Element in a BST
  • Android框架之Volley
  • Consul Config 使用Git做版本控制的实现
  • EOS是什么
  • Java 网络编程(2):UDP 的使用
  • LeetCode18.四数之和 JavaScript
  • PhantomJS 安装
  • select2 取值 遍历 设置默认值
  • SSH 免密登录
  • Terraform入门 - 1. 安装Terraform
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 入门到放弃node系列之Hello Word篇
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 详解NodeJs流之一
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (3)llvm ir转换过程
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (vue)页面文件上传获取:action地址
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (六)c52学习之旅-独立按键
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (四)库存超卖案例实战——优化redis分布式锁
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)LINQ之路
  • (状压dp)uva 10817 Headmaster's Headache
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案