马士兵22春招面试题①

1、Java面向对象有哪些特征?

  • 三大特征

    • 继承

      • 父类方法属性复用,增强代码的复用性
    • 多态

      • 必备要求:

        • 继承
        • 重写
        • 父类引用指向子类对象
        Animal animal = new Dog();
        
      • 增加代码的可移植性

      • 增加代码的健壮性

      • 灵活性

    • 封装

      • 增加了代码的可维护性
      • 增强代码的复用性

2、ArrayList和LinkedList的区别

  • 相同点

    • 都实现了List接口
  • 不同点
    • 前者

      • 底层数组
      • 访问数据更方便
    • 后者
      • 底层链表
      • 插入/删除数据更快

3、高并发中的集合有哪些问题?

一代线程安全集合

  • 涉及集合

    • Vector
    • Hashtable
  • 特点
    • 线程安全
    • 直接由synchronized修饰,性能低下

二代线程非安全集合

  • 涉及集合

    • ArrayList
    • HashMap
  • 特点
    • 线程不安全
    • 性能高效
  • 如何变的线程安全
    • 可使用Collections.synchronizedList(xxx);Collections.synchronizedMap(m);

三代线程安全集合

  • juc包下的

    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • CopyOnWriteArraySet
  • 底层通过Cas自旋锁保证原子性

容器


4、JDK1.8的新特性有哪些?

  • 接口的默认方法
  • Lambda表达式
  • Lambda作用域
  • 方法/构造引用
  • 函数式接口
  • 访问局部变量
  • 访问对象字段与静态变量
  • Stream流式编程
  • 多重注解

5、Java接口和抽象类的区别

  • 相同点

  • 不同点

    • 抽象类

    • 接口

  • 什么时候使用抽象类/接口?

    • 抽象类

      • 描述抽象的概念,如:植物、动物、人类…
    • 接口
      • 描述某个特征,如:会飞、会游泳

6、ACID是如何保证的?

  • 原子性

    • 由undolog日志保证,记录了需要回滚的日志信息,事务回滚时撤销已执行成功的sql
  • 一致性
    • 由其他3个特性保证,保证业务上的一致性
  • 隔离性
    • 由MVCC来保证,多版本并发控制
  • 持久性
    • redolog日志保证

7、BeanFactory和ApplicationContext的区别

  • 相同点

  • 不同点


8、HashMap和HashTable的区别

  • 相同点

    • 都是Map接口的子类
  • 不同点
    • 前者

      • 线程不安全
      • 效率高
      • 允许KV键值为空
      • 数组默认大小16,扩容为2的指数倍
      • 继承AbstractMap类
    • 后者
      • 线程安全
      • 效率低
      • 不允许KV键值为空
      • 数组默认大小11,扩容为原来的两倍+1
      • 继承Dictionary类

9、HashMap有哪些线程安全的方式?

  • 使用Collections.synchronizedMap();

    • 使用了syn进行互斥同步
    • 使用代理模式new新的类
  • 使用ConcurrentHashMap
    • 拆分了map,减少锁的粒度,减少锁冲突

10、MVCC解决的问题是什么?


11、mybatis的优缺点

  • 优点

  • 缺点


12、mybatis和hibernate的区别

  • 相同点

  • 不同点


13、mybatis中#{}和${}的区别


14、MySql的隔离级别有哪些?

  • 读未提交
  • 读可提交
  • 可重复读
  • 串行化

15、MySql复制原理

主机写入数据会记录到BinLog中,从机会有一个IO线程去拉取主机的Binlog日志,并写入RelayLog日志中,并由一个SQL线程进行读取写入到从机的库中


16、MySql聚簇和非聚簇索引的区别

Mysql的索引是存储在磁盘中的,

聚簇和非聚簇索引的区别主要是判断数据和索引是否存放在一起


17、MySql索引结构的优劣势


18、MySql的锁有哪些类型?


19、MySql为什么需要主从同步?

  • 读写分离
  • 主备,数据预备
  • 提高整体性能


20、MySql执行计划怎么看?

Explain


21、spring、springmvc、springboot的区别是什么?

spring:底层框架

mvc:web框架

boot:整合上面的脚手架


22、springmvc工作流程

笔记


23、SpringMVC九大组件是什么?


24、Spring的核心是什么?


25、Spring事务传播机制是什么


26、Spring中单例Bean是线程安全的吗?

他是,但他又不是

线程处理本身就是读取到自身的线程内存中处理,是安全。

但如果处理的数据是有状态的,那不同线程修改的值之间的可见性不能保证,所以是不安全的。

就需要根据实际情况去进行判断和修改


27、Spring中使用了哪些设计模式以及应用场景


28、Spring事务的隔离级别有哪些?

数据库的隔离级别支持一毛一样


29、Spring事务的实现原理是什么


30、Spring事务失效的情况有哪些?


31、MyIsam和Innodb的区别

关注:是行锁/表锁,读写性能怎么样,是否支持事务/外键,存储的所有和数据是否是一起的


32、MySql索引的类型且对数据库的影响是什么?


33、Spring中Bean生命周期

9、通过getBean()方法获取对象


34、怎么处理MySql慢查询?

  • 改写sql
  • 多命中索引
  • 开启慢日志
  • 查看执行计划
  • 拆分表
  • 拆分查询数据量


35、如何实现IOC容器?


36、什么是MVCC?


37、什么是MySql主从复制


38、什么是bean自动装配,它有那些方式


39、Spring优势有哪些?


40、事务的基本特征是什么?


41、索引的设计原则有哪些?


42、分布式id生成方案有哪些


43、分布式锁的应用场景


44、分布式锁有哪些解决方案


45、zk分布式锁的实现原理


46、zk和redis做分布式锁的区别


47、MySql如何做分布式锁


48、你设计微服务的原则是什么


49、CAP定理是什么


50、BASE理论是什么?


51、最大努力通知方案的关键是什么?


52、什么是分布式系统中的幂等?


53、幂等有哪些技术的解决方案?



54、对外提供的API如何保证幂等


55、双写一致性问题的解决方案

选择先更新数据,再删除缓存,再设置之前再删除一次缓存,然后再设置缓存的策略

  • 方案





56、认证和授权的区别是什么?


57、分布式架构下,Session共享有什么方案?


58、Java中==和equals的区别


59、throw和throws的区别


60、重写和重载的区别是什么


61、String、StringBuffer、StringBuilder的区别以及使用场景


62、怎么样声明可以让一个类不会被继承


63、kafka的再分配reblance机制是什么


64、zk在kafka中的作用是什么

  • 分布式锁
  • 分布式配置
  • 统一命名
  • 对brokerid由zk节点version保证
  • broker的状态元数据存储


65、kafka高性能是如何保障的?


66、Redis持久化机制RDB&AOF

  • 持久化方式

  • RDB优点

  • RDB缺点

  • AOF优点

  • AOF缺点


67、redis缓存回收策略


68、redis集群方案有哪些?

  • 常见集群分类

  • redis有哪些?


69、SpringCloud核心组件有哪些?分别的作用是什么


70、配置中心如何实现自动刷新的


71、配置中心如何保证数据安全


72、zk和eureka做注册中心的区别

对于数据的一致性服务的可用性做取舍

zk对于cap定理中是cp,一致性、容错性

eureka对于cap定理中是ap,可用性、容错性


73、Springcloud和dubbo的区别


74、什么是Hystrix?实现原理是什么


75、ZAB协议是什么?


76、注册中心挂了,服务挂了,如何处理?

  • 注册中心挂了,本地持久化注册中心信息
  • 服务挂了,通过配置监控系统来实现对应监控

77、ABA问题是什么?说下?那如何避免ABA问题

  • 如何避免ABA问题

  • CAS导致的其他问题


78、类初始化过程是什么?

之前的学习笔记

  • 类加载过程

  • 类初始化过程


79、ConcurrentHashMap的底层原理是什么

1.8比1.7的锁粒度更加的细,针对数组某个槽位的加锁

  • 对比

    • 1.7

    • 1.8


80、GC如何判断对象是否可被回收

  • 引用计数算法

  • 可达性分析算法

  • 不同的引用类型

    • 强引用:四不回收
    • 软引用:内存不够就回收
    • 弱引用:发现就回收
    • 虚引用:几乎和没有一样


81、Happens-Before规则是什么?

学习笔记

聊的是可见性的问题


82、Java类加载器有哪些?

笔记


83、JVM8为什么要增加元空间?

  • 永久代

  • 永久代的大小

  • 为什么出永久代

  • 元空间

  • 元空间的特点


84、JVM内存模型是如何分配的

  • 虚拟机栈

  • 本地方法栈

  • PC寄存器

  • 方法区

  • 直接内存(堆外内存)


85、sychronized和lock的区别


86、一个程序开多少线程合适?


87、创建线程有哪些方式?


88、线程的生命周期和状态


89、什么是守护线程


90、双亲委派机制是什么

  • 概念

  • 好处

  • 如何破坏双亲委派机制

重写findClass方法

  • 破坏双亲委派模型的案例

    • jdbc
    • tomcat

91、为什么使用线程池

  • 创建和销毁线程代价高,性能消耗明显,提升性能
  • 便于对线程的管理


92、了解哪些垃圾回收算法

笔记

  • 标记清除
  • 标记压缩
  • 标记清除压缩
  • 复制算法
  • 分代算法

Day499500501502503504.马士兵22春招面试题① -面经相关推荐

  1. 2021年100题Java春招面试题

    2021年100题Java春招面试题 开发技术类 1. 为什么现在函数式编程这么越来越受关注?为什么函数式编程重要?什么时候适用函数式语言? 函数式编程有什么好处,和面向对象比有什么好处,有什么坏处. ...

  2. 2018年京东春招笔试题

    2018年京东春招笔试题(2018.04.09) 题目一 整数分解 题目描述 小Q的数学老师给小Q一个整数N,问小Q能否将W分解为两个整数X和Y相乘,并且满足X为奇数,Y为偶数.即能否找到奇数X和偶数 ...

  3. 意淫系列-2018美图春招笔试题

    2018美图春招笔试题 只是试水,没有A类会议拒绝实习. 题不难,陪女朋友吃饭去了,然后就没怎么时间,只是看了下题. 题型:选择题和编程题,选择题25道,涉及数据结构,C,Python,C++,图像, ...

  4. 深夜爆肝JS好文!2021字节跳动春招面试题深度讲解

    剑指offer -- 2021字节跳动春招面试题深度讲解(JS篇) 1. 深拷贝与浅拷贝 2. 原型与原型链 3. this 指向问题 4. new 关键字做了什么? 5. 原生JS如何实现事件委托? ...

  5. 中国联通智网创新中心2021春招笔试题

    中国联通智网创新中心2021春招笔试题 这个智网中心是2020年5月新建立的,之前没听过.然后这次报名参加了笔试,实际上这是第二次笔试,第一次题很难(对我来说)然后非常惨,考完之后人家将近两个礼拜没通 ...

  6. 2018年网易游戏春招笔试题

    2018年网易游戏春招笔试题(2018.04.16) 题目一 生产线问题 题目描述 作为一条生产线的负责人,你手头上有N个订单,你需要通过这条生产线去处理这些订单.每个订单可以用两个属性去描述:耗时p ...

  7. 30K 月薪运维工程师面试考什么?滴滴17年春招笔试题

    转眼之间已经进入了18年2月份.每年的2.3月份,工程师们就会迎来新一波的跳槽高峰.为了拿到更高的薪资,好好准备笔试.面试当然是重中之重. 今天小编为大家整理了去年滴滴春招的笔试题,快来试试自己能不能 ...

  8. python招聘笔试题_滴滴2020年春招笔试题分析(Python)

    数据背景来自:优梨:滴滴2020年春招Sql笔试题分析​zhuanlan.zhihu.com 这里就不再重复了,主要描述如何使用python数据清洗 问题: 1.订单的平均应答率是多少?完单率是多少? ...

  9. 乐飞天下python笔试题_滴滴2020年春招笔试题分析(Python)

    数据背景来自:优梨:滴滴2020年春招Sql笔试题分析​zhuanlan.zhihu.com 这里就不再重复了,主要描述如何使用python数据清洗 问题: 1.订单的平均应答率是多少?完单率是多少? ...

最新文章

  1. ARP***原理与解决方法《一》
  2. openssl证书及配置
  3. 第八章 CTE 递归 及 分组汇总 高级部分(多维数据集)
  4. RK3288/RK3399 CPU定频方法
  5. Linux上的redis安装和后台启动
  6. Unity 实现水纹波动效果
  7. 【渝粤教育】国家开放大学2018年春季 3717-22T天然气管道长输技术 参考试题
  8. 数据库已关闭。请指定主机身份证明以访问数据库重新启动和诊断工具
  9. 已知多个同比增速和现期,快速比较多个对象间的增量
  10. 南京邮电大学MOOC高级程序语言设计(C++)第六章编程题答案
  11. 微分几何、黎曼几何思想
  12. 1linux 课程引入
  13. MySql数据库操作详解
  14. Android Kiosk 模式
  15. 小丁带你走进git的世界二-工作区暂存区分支
  16. 微信小程序利用canvas绘制一个动画百分比圆圈
  17. 微信公众号之清理缓存无效
  18. 自定义协议推送的设计
  19. python BFS最短路径问题
  20. 便利贴--17{移动端滑动模块}

热门文章

  1. 全国计算机等级考试考务工作安排,2015年42次全国计算机等级考试考务工作安排(3月20日修改)(1)...
  2. 什么是“托管代码”?
  3. 托管代码与非托管代码之间与托管程序
  4. 电脑屏上出现联想炫彩鸿蒙,最欢甚!联想P50手机炫彩版升级上市
  5. html设计动画小黄人,用纯css3画一个小黄人并实现动画效果
  6. 取中文拼音首字母,提供了多音字的选择 js javascript c# java 存储过程
  7. 计算机表格如何求和,excel怎么求和,教您excel如何进行求和
  8. 【nmon】nmon :服务器性能结果报告分析 —— 报表参数详解
  9. 学计算机苹果电脑哪款好,学生超值电脑汇总!适合学生的5款顶级笔记本电脑,您喜欢哪款?...
  10. Elasticsearch:Scroll深度分页及返回大量数据