微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

面试题day20

泰隆银行

  • 计算机网络、数据库、操作系统有学过吗

  • TCP三次握手的过程

    seq x

    ack x+1 seq y

    ack y+1

  • 拥塞避免的方法

    慢开始、拥塞避免、快恢复、快重传

  • 数据库创建索引的语法

    CREATE INDEX indexName ON table_name (column_name)

  • 什么是平衡二叉树

    左子树和右子树插值不超过一

  • 怎么判断循环链表

    hashset、快慢指针

  • Linux语言基础

  • java基础:final的作用,修饰函数时呢?

    变量不可修改、类不可继承、方法不能重写

  • set,list,map是否都继承了collection

    map没有

  • spring框架了解吗,平时怎么学习java的

    Spring IOC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。

    Spring AOP 就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候Spring AOP会使用 cglib 生成一个被代理对象的子类来作为代理。

顺丰

9.10一面

  • 聊项目

  • redis说说你的了解,数据类型,持久化方案,内存删除策略。

    • 数据类型
      • string 缓存 session共享 分布式锁
      • list 消息队列
      • hash 存储对象
      • set 集合
      • zset 排行榜
    • 持久化
      • aof 命令
      • rdb 快照
    • 内存删除策略
      • 定时删除
        • 创建一个定时器,当key有过期时间时,时间一到,定时器任务就会立即执行 将expires区域和k-v区域都删除
        • 优点:节约内存
        • 缺点:cpu压力较大,此时无论cpu负载量多高,都会占用cpu来释放,影响redis的吞吐量
      • 惰性删除
        • 数据过期后,并不会立刻删除 等到该数据下次访问的时候,redis才会删除该数据,并返回该值为nil
        • 优点:节省cpu的资源
        • 缺点:可能存在大量的,无人访问的数据会一直存在服务器
      • 定期删除
        • 每秒钟定期对redis中每个库的数据进行轮询 轮询的数据,对过期的数据随机删除一部分 如果随机删除的数据占轮训数据的比例超过一定值,继续轮询删除
  • redis双删不一致情况。

  • 说一说JVM的类加载过程。

    加载 验证 准备 解析 初始化

渤海银行

  • 介绍实习项目

  • 用过哪些数据库

    MysqL redis

  • 说一说MysqL数据库底层数据结构的优点和缺点

    b+树

  • 如何优化慢sql

    • 发现慢sql

      • show processlist查询当前慢sql的语句
      • 开启慢日志 set global slow_query_log=1;
    • 优化慢sql

      • explain sql语句的方式查看慢sql的执行计划
        • type 表示表的连接类型
        • key 表示实际使用的索引
        • rows 扫描出的行数(估算的行数)
      • 分析该sql语句索引使用情况,全表扫描情况
  • 静态方法和非静态方法的区别

    调用方式、从属、加载实际

  • 知道什么是 threadlocal 吗

    ThreadLocal本身并不存储值,它只是作为一个key来让线程从ThreadLocalmap获取value

  • 说一说mvc架构的好处

    低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、可维护性

多益

软件研发工程师面经

  • SpringBoot 对 Spring 的改进

    监控、启动器、自动配置

  • 项目中如何用到 Spring

  • 了解 IoC 吗,说一下对于 IoC 的理解

    Spring IOC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。

  • MyBatis 如何使用,源码有了解吗

    配置Mybtis核心配置文件(一般将其命名为 mybatis-config.xml)
    根据核心配置文件创建 sqlSessionFactory 对象
    通过 sqlSessionFactory 对象创建 sqlSession 对象
    通过 sqlSession 对象操作数据库 CRUD
    提交事务
    释放资源

  • 登陆模块如何做的

  • 链表与队列的使用场景

    多写少读、多读少写

  • TCP 为何要进行三次握手

  • 一个网段下的主机如何通信 ,不同网段下的主机如何通信

    广播协议 路由转发

  • GC 垃圾回收算法

    分代 清除 复制 压缩

  • 什么是线程安全

    多线程操作无数据丢失

  • 如何判断死锁,怎么避免死锁

    双方都持有锁并需要避免多次锁定、加锁顺序执行

  • 设计模式的六大原则

    单一原则(Single Responsibility Principle):一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化;

    里氏替换原则(LSP liskov substitution principle):子类可以扩展父类功能,但不能改变原有父类功能

    依赖倒置原则(dependence inversion principle):面向接口编程;(通过接口作为参数实现应用场景)

    接口隔离原则(interface segregation principle):建立单一接口;(扩展为类也是一种接口,一切皆接口)  

    迪米特原则(law of demeter LOD):最少知道原则,尽量降低类与类之间的耦合;

    开闭原则(open closed principle):用抽象构建架构,用实现扩展原则;

  • JVM 调优参数

    -xms4g 初始堆大小4g

    -Xmx4g 最大堆大小4g

    -XX:+UseParNewGC 设置年轻代为并行收集

    -XX:+UseConcmarkSweepGC 老年代使用CMS内存收集

    -XX:+HeapDumpOnOutOfMemoryError 出现堆内存溢出时,自动导出堆内存 dump 快照

  • 如何判断对象是否死亡

    无其他引用 可达性算法

  • 自定义线程池的最大线程数如何设定

  • 一个项目隔天上线,但前一晚出现bug,你会怎么做

  • 淘宝商城如何实现个性推送,谈谈你的理解

  • HashMap 底层了解吗

  • 为什么加载因子是 0.75

    过高 碰撞过多 过低 扩容过多

  • 有什么语言也能够实现跨平台

  • 全局变量的缺点,介绍一个小实例

    长期占用内存、难以定位修改、不利于后期的维护

  • 为什么要有包装类

    泛型、null值、序列化接口

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐