Java教程

面试题day20

本文主要是介绍面试题day20,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

泰隆银行

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

  • TCP三次握手的过程

    seq x

    ack x+1 seq y

    ack y+1

  • 拥塞避免的方法

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

  • 数据库创建索引的语法

    CREATE INDEX indexName ON table_name (column_name)

  • 什么是平衡二叉树

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

  • 怎么判断循环链表

    hashset、快慢指针

  • Linux语言基础

    • chmod 授权
    • ps -ef | grep 查看进程
    • kill -9 杀死进程
    • tail -f 实时读取日志
    • netstat -anp | grep 查看端口号
    • ping 测试地址
    • mkdir 创建文件夹
    • rmdir 删除文件夹
    • touch 创建文件
    • rm 删除文件
    • mv 移除文件
    • cp 复制文件
    • cat 查看文件
  • 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双删不一致情况。

    • 先删除缓存再更新数据库
      • a删除缓存;b读db写入缓存;a更新db;a再删除缓存
    • 先更新数据库再删除缓存
      • 缓存失效,a读取db;b更新db删除缓存;写入缓存
  • 说一说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值、序列化接口

这篇关于面试题day20的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!