2021交通银行面试问题总结

交通银行面试问题总结

为什么来交通银行?

交行自1908年(梁士诒)创办以来,已经有一百多年的历史,拥有深厚的文化底蕴和人文情怀,对员工培养也是不遗余力,具备完善的员工培养机制,在金融科技方面,交行的董事长任德奇先生也曾说过,金融科技战略由落子布局到精耕细作,并且从近几年的交行的发展情况来看,交行一直在蓬勃发展,20年交行入选全球品牌价值500强,因此我相信交行在金融科技上的发展是十分有潜力的,能让我得到更好更快的成长。

有什么问题需要提问?

由于没有现在还没有进入到交行工作,所以想了解下对于新入职的新员工,有没有统一的培训项目,我能不能参加,项目是单独针对金融科技岗位的吗?交行的员工晋升机制是怎么样的呢?

交通银行面试问题总结:

1.Array和ArrayList的区别

ArrayList 内部是由一个array 实现的。ArrayList 是Java集合框架类的一员,可以称它为一个动态数组。array 是静态的,所以一个数据一旦创建就无法更改他的大小。如果需要一个数组可以重新定义他的大小,你应该使用 ArrayList, 这是array 和ArrayList的基本的不同。

不同点

Array ArrayList
Implementation(实现) 本地的程序设计组件或者数据结构 来自Java集合类的类,一个接口 (Application programming interface)
Performance(性能) 内存的使用和CPU 耗时较大 内存的使用和CPU 耗时相对小
Type Safety(类型安全) 不支持泛型,类型不安全 支持泛型,类型安全
Flexibility(灵活性) 动态数组,灵活的 静态数组
Primitives(基本类型) 支持对象和基本数据类型 基本数据类型
Generics(泛型) 不支持泛型 支持泛型
Iteration(迭代) for、foreach 支持Iteration
Supported Operations(支持的操作) 不支持添加删除操作 支持添加删除操作
Size() vs length(大小 vs 长度) 长度不可变更 初始长度为10,向右移一位,扩容1.5倍
Dimension(维度) 支持多维数组 不支持多维数组

相同点

  1. Data Structure(数据结构 ):两者都允许存放对象,并且所有的都是基于index的数据结构,提供O(1)的复杂度来获取一个元素,但是如果通过二分查找来查询某个元素依旧需要log(N)的复杂度。
  2. Order(顺序):array 和ArrayList在添加元素时都维持着元素的顺序。
  3. Search(查找 ):可以通过index来查找一个元素;
  4. Null values(空值 ) :array 和 ArrayList都允许存储null值。
  5. Duplicates(重复 ) :array和Arraylis都允许存储重复的值。
  6. Zero-based Index(从零开始索引):array和ArrayList都从零开始的索引,即第一个元素从零的开始索引。

2.String和StringBuffer的区别

String:

  1. 是对象不是基本数据类型(原始类型)。
  2. 为不可变对象,一旦被创建,就不能修改它的值。
  3. 对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。
  4. String是final类,即不能被继承。

StringBuffer:

  1. 是一个可变对象,当对它进行修改的时候不会像String那样重新建立对象。
  2. 它只能通过构造函数来建立,StringBuffer subffer=new StringBuffer();
  3. 对象被建立以后,在内存中就会分配内存空间,并初始保存一个null,通过它的append方法向其赋值 subffer.append(“hello word”);
  4. 字符串连接操作中StringBuffer的效率要明显比String高;
  5. String对象是不可变对象,每次操作String都会建立新的对象来保存新的值;
  6. StringBuffer对象实例化后,只对这一个对象操作;

3.wait和sleep的区别

wait sleep
同步 只能在同步上下文中调用wait方法,否则或抛出IllegalMonitorStateException异常 不需要在同步方法或同步块中调用
作用对象 wait方法定义在Object类中,作用于对象本身 sleep方法定义在java.lang.Thread中,作用于当前线程
释放锁资源
唤醒条件 其他线程调用对象的notify()或者notifyAll()方法 超时或者调用interrupt()方法体
方法属性 wait是实例方法 sleep是静态方法

4.MySQL中索引的使用

索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。

优点

  1. 所有的MySql列类型(字段类型)都可以被索引,也就是可以给任意字段设置索引;
  2. 大大加快数据的查询速度;

缺点

  1. 创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加;
  2. 索引也需要占空间,我们知道数据表中的数据也会有最大上线设置的,如果我们有大量的索引,索引文件可能会比数据文件更快达到上线值;
  3. 当对表中的数据进行增加、删除、修改时,索引也需要动态的维护,降低了数据的维护速度;

使用原则

  1. 并不是每个字段度设置索引就好,也不是索引越多越好,而是需要自己合理的使用。

  2. 对经常更新的表就避免对其进行过多的索引,对经常用于查询的字段应该创建索引,

  3. 数据量小的表最好不要使用索引,因为由于数据较少,可能查询全部数据花费的时间比遍历索引的时间还要短,索引就可能不会产生优化效果。

  4. 在一同值少的列上(字段上)不要建立索引,比如在学生表的"性别"字段上只有男,女两个不同值。相反的,在一个字段上不同值较多可是建立索引。

    注意:索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引

  • MyISAM和InnoDB存储引擎只支持BTREE索引, 也就是说默认使用BTREE,不能够更换。
  • MEMORY/HEAP存储引擎:支持HASH和BTREE索引

索引分为四类:单列索引(普通索引,唯一索引,主键索引)、组合索引、全文索引、空间索引、

  1. 单列索引:一个索引只包含单个列,但一个表中可以有多个单列索引;
  2. 普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点;
  3. 唯一索引:索引列中的值必须是唯一的,但是允许为空值
  4. 主键索引:是一种特殊的唯一索引,不允许有空值
  5. 组合索引:在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合;
  6. 全文索引:只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引,介绍了要求,说说什么是全文索引,就是在一堆文字中,通过其中的某个关键字等,就能找到该字段所属的记录行;
  7. 空间索引:空间索引是对空间数据类型的字段建立的索引,MySQL中的空间数据类型有四种,GEOMETRY、POINT、LINESTRING、POLYGON。在创建空间索引时,使用SPATIAL关键字。要求,引擎为MyISAM,创建空间索引的列,必须将其声明为NOT NULL;

6.引用数据类型和基础数据类型的区别

基本数据类型:只有8种,可按照如下分类

①整数类型:long、int、short、byte

②浮点类型:float、double

③字符类型:char

④布尔类型:boolean

引用数据类型:非常多,大致包括:类、 接口类型、 数组类型、 枚举类型、 注解类型、 String

1、存储位置

  • 基本变量类型:在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的
  • 引用变量类型:只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址(ps:通过变量地址可以找到变量的具体内容,就如同通过房间号可以找到房间一般)

2、传递方式

  • 基本变量类型:在方法中定义的非全局基本数据类型变量,调用方法时作为参数是按数值传递的;
  • 引用变量类型:引用数据类型变量,调用方法时作为参数是按引用传递的,传递的是引用的副本

7.值传递和引用传递的区别:

值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

猜你喜欢

转载自blog.csdn.net/Royalic/article/details/120526022