美文网首页Java 杂谈Java高级架构Java学习笔记
阿里巴巴最全Java面试大纲、项目实战、分布式、高并发、性能优化

阿里巴巴最全Java面试大纲、项目实战、分布式、高并发、性能优化

作者: Java高级架构 | 来源:发表于2018-11-04 21:33 被阅读44次

    【阿里巴巴面试题目】

    如何把java内存的数据全部dump出来

    如何手动触发全量回收垃圾,如何立即触发垃圾回收

    hashmap如果只有一个写其他全读会出什么问题

    git rebase

    mongodb和hbase的区别

    如何解决并发问题

    volatile的用途

    java线程池(好像之前我的理解有问题)

    mysql的binlog

    代理模式

    mysql是如何实现事务的

    读写分离何时强制要读主库,读哪个从库是通过什么方式决定的,从库的同步mysql用的什么方式

    mysql的存储引擎

    mysql的默认隔离级别,其他隔离级别

    将一个链表反转(用三个指针,但是每次只发转一个)

    spring Aop的实现原理,具体说说

    何时会内存泄漏,内存泄漏会抛哪些异常

    是否用过Autowire注解

    spring的注入bean的方式

    sql语句各种条件的执行顺序,如select, where, order by, group by

    select xx from xx where xx and xx order by xx limit xx; 如何优化这个(看explain)

    四则元算写代码

    统计100G的ip文件中出现ip次数最多的100个ip

    zookeeper的事物,结点,服务提供方挂了如何告知消费方

    5台服务器如何选出leader(选举算法)

    适配器和代理模式的区别

    读写锁

    static加锁

    事务隔离级别

    门面模式,类图(外观模式)

    mybatis如何映射表结构

    二叉树遍历

    主从复制

    mysql引擎区别

    静态内部类加载到了哪个区?方法区

    class文件编译后加载到了哪

    web的http请求如何整体响应时间变长导致处理的请求数变少,该如何处理?用队列,当处理不了那么多http请求时将请求放到队列

    中慢慢处理,web如何实现队列

    线程安全的单例模式

    快速排序性能考虑

    volatile关键字用法

    求表的size,或做数据统计可用什么存储引擎

    读多写少可用什么引擎

    假如要统计多个表应该用什么引擎

    concurrenhashmap求size是如何加锁的,如果刚求完一段后这段发生了变化该如何处理

    1000个苹果放10个篮子,怎么放,能让我拿到所有可能的个数

    可重入的读写锁,可重入是如何实现的?

    是否用过NIO

    java的concurrent包用过没

    sting s=new string("abc")分别在堆栈上新建了哪些对象

    java虚拟机的区域分配,各区分别存什么

    分布式事务(JTA)

    threadlocal使用时注意的问题(ThreadLocal和Synchonized都用于解决多线程并发访问。但是ThreadLocal与synchronized有本质的区别。synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每一个线程都提供了变量的副本,使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。而Synchronized却正好相反,它用于在多个线程间通信时能够获得数据共享)

    java有哪些容器(集合,tomcat也是一种容器)

    二分查找算法

    myisam的优点,和innodb的区别

    redis能存哪些类型

    http协议格式,get和post的区别

    可重入锁中对应的wait和notify

    redis能把内存空间交换进磁盘中吗(这个应该是可以的,但是那个面试官非跟我说不可以)

    java线程池中基于缓存和基于定长的两种线程池,当请求太多时分别是如何处理的?定长的事用的队列,如果队列也满了呢?交换进磁盘?基于缓存的线程池解决方法呢?

    synchronized加在方法上用的什么锁

    【阿里巴巴面试题目含答案】

    1,mysql的三大引擎是啥?

    mysql常用的引擎有InnoDB,MyISAM,Memory,默认是InnoDB

    InnoDB:磁盘表,支持事务,支持行级锁,B+Tree索引

    ps:优点: 具有良好的ACID特性。适用于高并发,更新操作比较多的表。需要使用事务的表。对自动灾难恢复有要求的表。

    缺点:读写效率相对MYISAM比较差。占用的磁盘空间比较大。

    mysql的4大特性+4种隔离级别:

    MyISAM:磁盘表,不支持事务,支持表级锁,B+Tree索引

    ps: 优点:占用空间小,处理速度快(相对InnoDB来说)

    缺点:不支持事务的完整性和并发性

    MEMORY(Heap):内存表,不支持事务,表级锁,Hash索引,不支持Blob,Text大类型

    ps: 优点:速度要求快的,临时数据

    缺点:丢失以后,对项目整体没有或者负面影响不大的时候。

    2,redis的hash算法用的是啥?

    redis应该是使用一致性hash算法---MurmurHash3 算法,具有低碰撞率优点,google改进的版本cityhash也是redis中用到的哈希算法。

    现有的主流的大数据系统都是用的 MurmurHash本身或者改进

    3,nosql为啥比sql快?

    Nosql是非关系型数据库,因为不需要满足关系数据库数据一致性等复杂特性所以速度快;

    sql是关系型数据库,功能强大,但是效率上有瓶颈

    4,什么是索引为啥nosql没索引?nosql有索引滴

    索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。

    聚簇索引:有主键时,根据主键创建聚簇索引;没有主键时,会用一个唯一且不为空的索引列做为主键,成为此表的聚簇索引;如果以上两个都不满足那innodb自己创建一个虚拟的聚集索引

    非聚簇索引:非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引

    5,B+树和B树区别?

    B树的非叶子节点存储实际记录的指针,而B+树的叶子节点存储实际记录的指针

    B+树的叶子节点通过指针连起来了, 适合扫描区间和顺序查找。

    阿里巴巴必备技能树

    1.架构筑基

    2.开源框架源码解析

    3.高性能架构专题

    4.微服务专题

    5.团队协作专题

    6.B2C商城项目实战专题

    有朋友问,有了路线图,有没有免费资料?有没有志同道合的小伙伴共同进步?

    以上技术方向我们有自己的高清思维方向导图以及架构师有自己讲解的架构视频分享(包括高可用,高并发,spring源码,mybatis源码,JVM,大数据,Netty等多个技术知识的架构视频资料和各种电子书籍阅读)视频资料获取关注Java高级架构/互联网群:570210627 本群提供免费的学习指导 架构资料 以及免费的解答不懂得问题都可以在本群提出来 还会有职业生涯规划以及面试指导 进群修改群备注:开发年限-地区-经验方便架构师解答问题 备注好加群信息

    Java面试题全集84集系列-视频系列

    Spring Boot实战与原理分析视频课程

    Java秒杀系统方案优化-高性能高并发实战

    Redis从入门到高可用,分布式实践

    欢迎大家加入Java高级架构/互联网:570210627

    Android移动互联网技术:879078537

    本群提供免费的学习指导 架构资料 以及免费的解答

    不懂得问题都可以在本群提出来 还会有职业生涯规划以及面试指导

    进群修改群备注:开发年限-地区-经验方便架构师解答问题

    相关文章

      网友评论

      本文标题:阿里巴巴最全Java面试大纲、项目实战、分布式、高并发、性能优化

      本文链接:https://www.haomeiwen.com/subject/flbdxqtx.html