# 交行软开

🧧 过程简述

交行软开一共有两面,面试难度一般,问的较多的是 JVM 方面和数据库 MySQL 问题。

交行软开据说不太加班(看组),然后第一年有单位分配公寓,待遇还不错,拿到 Offer 的同学中学历都较为不错。

  1. JVM 有了解吗?内存泄漏与内存溢出的区别

    • 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现 out of memory;

    • 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。


    内存泄漏的根本原因是长生命周期的对象持有短生命周期对象的引用,尽管短生命周期的对象已经不再需要,但由于长生命周期对象持有它的引用而导致不能被回收。

  2. 垃圾回收机制,算法

  3. 数据库的主键和索引的区别

  4. 了解哪些设计模式?一个计算器,有加减乘除的功能,去计算最终的值,要用到哪中设计模式合适?

    • 单例模式
    • 观察/订阅模式
    • 建造者模式
    • 适配器模式

    我认为可以使用到简单工厂模式。


    经过查找网上类容,发现是使用解释器模式。不得不说这个问的模式相对较冷门。

  5. 熟悉哪些 Linux 命令

    • ls:列举出当前工作目录的内容
    • mkdir:创建一个新的目录
    • pwd:显示当前工作目录
    • cd:切换文件路径
    • rm:删除给定的文件
    • cp:复制文件
    • mv:移动文件
    • cat:在标准输出上查看文件内容
    • find:在给定位置搜寻与条件匹配的文件
    • tar:创建、查看和提取tar格式的压缩文件
    • help:在终端列出所有可用的命令
    • exit:结束当前的终端会话
    • ping:通过发送数据报 ping 远程主机(服务器)
    • su:切换不同的用户
    • shutdown:用于关闭计算机
  6. JVM 的内存区域有哪些

  7. 堆是用来存储什么的

  8. 堆的大小如何改变