美文网首页
老蒋的Java杭州面经

老蒋的Java杭州面经

作者: 蒋仁勇 | 来源:发表于2020-08-07 16:15 被阅读0次

    一转眼转行Java已三年有余,大大小小也面过杭州几十家企业了,幸好有个好习惯,记笔记,虽然记得乱七八糟,但每次面试后不管电话面还是现场面都多多少少有些收获,其实面试也是一种学习过程,趁着最近稍闲一点整理一下自己以前的面经:

    2017年4月:
    1.collection集合类有哪些:
    2.MySQL与Oracle分页:

    Oracle数据库如何优化
    讲讲SSM
    设计模式的应用
    如何处理多线程并发
    反射原理
    自旋锁的理解
    CPU与内存问题分析
    JDK1.8新特性
    如何架构微博系统
    聚合索引与聚集索引
    对象头存了什么信息
    数据库查询缓存怎么做
    常用数据结构
    currenthashmap为什么线程安全
    举例项目中多线程的使用
    IO->网络编程
    令牌桶怎么做,重启怎么办

    2017年8月:
    1.hashmap原理
    2.一次web请求全部流程

    2018.2.25
    SpringMVC如何处理请求
    乐观锁与悲观锁
    volatile数组/http与socekt
    单例模式三种实现:双重校验、懒汉、饿汉
    Oracle与MySQL区别
    dubbo序列化:默认hession/fastjson/Java自带
    mybatic实现分表
    单点登录
    跨域问题
    JVM的gc算法
    自动拆装箱(缓存范围内数据)栈上分配(对象作用域只在方法上),逃逸分析(消除同步,矢量替代)
    运行池、常量池
    static修饰的都存在方法区、程序不结束一直存在、编译进入
    初始化顺序:静态、类加载机制、自定义类加载器(JVM自带)<-启动类加载器<-拓展类加载器<-应用类加载器
    双亲委派模型
    动态静态分派(重写与重载)
    restfull风格
    shell脚本
    聚集索引与非聚集索引的根本区别:表记录的排列顺序和索引排列顺序是否一致
    如何实现分布式存储
    synchronized原理
    运行时异常与一般异常的区别
    锁升级步骤
    如何保证线程可见性
    Java内存模型
    springboot面向设计DDD-领域驱动设计
    偏向锁、自旋锁
    如何解决网络io问题
    了解区块链技术
    如何理解人工智能
    政治经济学-好心办坏事与如何清空监狱
    互联网新闻知道哪些
    对算法、模块化、原生的优缺点与理解

    2018.3.3
    模板方法与策略模式的区别
    JDK1.9新特性,最近在学什么
    map遍历的3种方法与区别
    工作中用到的优化,对性能优化的了解
    工作中对线程的应用
    Oracle使用感觉
    Linux复制文件与常用命令

    2018.3.6有赞
    eurka注册服务发现与过程,超时、缓存
    异步线程池设置考虑
    ACL与RBAC区别

    宇泛:
    2018年3月问题:
    1.对spring cloud的了解
    2.MySQL执行引擎,数据库引擎
    3.领域驱动设计

    2019.5.25
    线程池的优化、使用场景、饱和策略
    hashmap与concurrenthashmap
    如何减少线程间上下文切换(cas减少用锁,减少线程数)
    并发常用类(闭锁,信号量,栅栏)
    服务降级与熔断的区别
    volatile原理-内存可见与指令从排序
    ZSET原理,score 跳表
    领域驱动设计-cqrs
    outofmemery发生与排查
    fullgc

    2019.5.29
    工行:
    类加载过程
    重写与重载区别
    spring IOC原理
    序列化与反序列化
    JVM
    Java代码优化(大io,高CPU)
    如何说服初级程序员使用spring配置而不是new对象
    业务决定技术,举例支付服务是复制代码还是服务调用
    一千万量级数据查询优化,除了索引、缓存还有什么
    mybatis使用prepared statement
    mysql/Redis、dubbo、ibatis/springmvc
    ajax jQuery

    2019.6.3
    阿里:
    jvm/分布式、Linux、SQL优化,
    treemap、linkmap、hashmap区别
    Git回退
    jmap-JVM如何打另一进程快照
    new 一个类在JVM中做什么事情,类加载机制
    class加载->实例创建,分配内存,类各成员变量
    索引过多有什么问题
    SQL优化
    你对你的项目有什么理解
    工行二面:
    dubbo长连接
    负载均衡客户端实现,不用jar包泛式
    引用的方式
    限流分布式,Redis超时
    前端限制,aop实现

    2019.6.17蚂蚁
    AOP切面原理,XML与注解方式,哪个注解
    hashmap碰撞和什么相关
    object有哪些方法,何时要重写hashcode方法
    注入对象的方法@Resource与@Autowired

    2019.8.20拉钩面试真题
    简单描述一下JVM内存模型
    什么情况下会触发fullgc
    java类加载器有几种,关系是怎样的
    双亲委派模型的加载流程与好处
    1.8为什么用metaspace替换permgen,它保存在哪里
    编译期会对指令做哪些优化
    volatile可以解决哪些问题,怎么做到
    简单描述GC分代回收
    G1与CMS区别
    对象引用有哪几种方式,有什么特点
    使用过哪些jvm

    2019.10.10博彦电话面
    hashmap底层原理
    什么是cas
    排序算法9种
    自平衡二叉树-红黑树

    2019.10.11海康电话1面
    类加载机制:加载-校验-准备-解析-初始化-使用-卸载

    2019.10.15海康电话2面
    Java并发类
    线程池核心线程与最大线程区别,队列
    1.8接口可用defuat关键字实现部分方法

    2019.10.16数立电话终面
    线程池三个重要参数
    hashmap如何减少hash碰撞

    2019.10.21智能问答,女面试官电话面
    spring如何保证线程安全,Tomcat结构
    Redis单线程为什么性能好,多路io复用,内存
    布隆过滤器(hash,快速判断是否存在)
    MySQL最多命中多少索引
    如何使用Java集合类实现cas算法
    Redis哪些命令不常用keys
    http协议
    哪种排序算法最稳定
    IO并发工具类源码,哪些设计模式
    volatile原理
    synchronized和try lock锁的区别
    线程可见的安全性保障
    50万QPS如何达到
    集群中各节点共享会话状态的保持
    kafka特点原理
    并发编程类,栅栏
    JVM内存原理,GC串行还是并行
    线程池

    2019.10.23蚂蚁电话面
    synchronized和lock锁的区别
    cas缺点;aba/cpu开销大,不可保障代码块原子性
    spring7种事务传播行为,4种特性,5种隔离级别
    hashmap何时扩容为红黑树,put时做了啥
    threadlocal强弱软引用
    线程池
    zk与eureka区别
    spring bean生命周期
    常见类加载器(顶级),双亲委派,G1特性
    如何知道当前线程有锁
    Redis同步数据与持久化
    zk选举算法
    死锁出现场景与解决办法
    分布式事务实现机制
    如何解决消息队列丢消息问题
    多线程内存模型
    for update 使用
    如何实现秒杀场景

    2019.10.24速递现场面
    MySQL读写分离,同步数据机制
    数据迁移与同步
    网关如何设计
    图片为什么不用OSS之类的文件服务器
    dubbo支持的序列化协议与负载策略
    印象最深刻的bug解决过程

    2019.10.24微洱现场面
    set与list区别
    大数据场景下客户与商家系统设计
    list《long》a,b 合并,去重,排序
    JVM有调整过什么参数

    情咖FM
    常用集合类
    Redis几种数据类型分别在什么场景使用
    Redis其他应用

    2019.10.24脸脸现场面
    G1(JDK9才是默认),和其他垃圾回收器的过程
    eurka与zookeer区别,一致性、高可用
    spring循环依赖的原理:单例、原型
    如何保证线程顺序执行1-8,并发工具包
    hashmap
    线程从start开始的过程
    kafka消费原理
    docker+k8s无运维化
    MongoDB索引与MySQL索引的区别
    threft/redis排序
    为什么MySQL用indb最默认存储引擎
    最近关注了哪些新技术

    2019.10.24菜鸟
    定时任务集群下使一台执行开放式
    Git 命令代码冲突怎么解决
    线程安全如何保证
    全链路跟踪无侵入,日志切面
    spring拓展点
    beanfacty与factrybean实际使用
    IOC锁lock
    MySQLCPU100%如何解决
    对数据库数据结构有什么了解

    2019.10.25有赞现场
    spring的优势
    未来2-3年的规划
    项目中还有哪些可以优化
    bean的加载顺序
    JDK动态代理与cglib代理区别与应用场景
    脏读幻读原理与MySQL索引优化
    order by走索引了吗,事务
    CPU100%怎么排查
    类加载机制;双亲委派模型的优点
    aop5种通知类型:前置、后置、环绕、异常、最终
    切面与切点
    弱一致性与最终一致性

    2019.10.28蚂蚁
    转账场景
    算法:数组找出和为指定数的2-3个下标
    如何用命令搜索本地日志,不看哪些,忽略大小写

    2019.10.31共道电话面
    JVM如何回收循环引用对象
    MQ
    spring源码,hashmap put做了什么

    2019.11.1涂鸦
    如何用命令查询本地日志,分组统计,忽略大小写
    zookeer原理与线上排查,zk数据类型
    MySQL分页limit 慢与CPU100%怎么解决
    B树与B+树

    2019.11.8
    mybatis如何防止SQL注入攻击
    hashmap如何线程不安全与concurrenthashmap区别
    单点登录如何实现
    cookie如何传递,如何防伪造
    分布式锁
    悲观锁与乐观锁

    2019年11月:百应,问题:
    1.令牌桶与漏桶有什么区别
    2.说说限流-滑动窗口的原理
    3.B+树与B树的区别
    4.说说ID策略
    5.ZK是原子性的吗
    6.zk与eurka区别
    7.CPU100%如何快速定位是哪行代码的问题
    8.CAP高可用与一致性的选择
    9.如何查看JVM使用与gc情况
    10.阿里云MQTT IOT通道怎么玩
    11.Redis底层数据结构与模型

    相关文章

      网友评论

          本文标题:老蒋的Java杭州面经

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