招银三面

  1. 详细介绍一下你认为完成的还不错的项目。

  2. MySQL的创建索引的SQL代码,日期格式转换的SQL代码,创建表的代码

创建索引
CREATE INDEX index_name ON table_name (column_list);
CREATE UNIQUE INDEX index_name ON table_name (column_list)
修改索引
ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)

DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
 
  1. MySQL的默认的事务隔离级别,其他的几种隔离级别?
    事务拥有四个重要的特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),人们习惯称之为 ACID 特性。
  • READ UNCOMMITTED(读未提交)
    该隔离级别的事务会读到其它未提交事务的数据,此现象也称之为 脏读 。
  • READ COMMITTED(读提交)
    一个事务可以读取另一个已提交的事务,多次读取会造成不一样的结果,此现象称为不可重复读问题,Oracle 和 SQL Server 的默认隔离级别。
  • REPEATABLE READ(可重复读)
    该隔离级别是 MySQL 默认的隔离级别,在同一个事务里, select 的结果是事务开始时时间点的状态,因此,同样的 select 操作读到的结果会是一致的,但是,会有 幻读 现象。
  • SERIALIZABLE(序列化)
    在该隔离级别下事务都是串行顺序执行的,MySQL 数据库的 InnoDB 引擎会给读操作隐式加一把读共享锁,从而避免了脏读、不可重读复读和幻读问题
  1. MySQL中char 和 varchar 的区别?
  • char的上限为255字节,varchar的上限65535字节,text的上限为65535字节。
  • char在存储的时候会截断尾部的空格,varchar和text不会。
  • 同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的字节空间。char的实际长度没有达到n,用空格填充。
  1. mybatis 中#{} ${}的区别? 如何将表名作为一个参数传入
  • #{}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。KaTeX parse error: Expected 'EOF', got '#' at position 14: {} 只是单纯的变量替换。#̲{}方式能够很大程度防止sql…{}方式无法防止Sql注入
  • #{}和${}在预处理时候是不一样的。 #{}实现的是向prepareStatement中的预处理语句中设置参数值,sql语句中#{}表示一个占位符即?,在数据库真正执行查询语句的时候才会在数据库代入参数。
  1. string的常用方法,equals方法的具体实现?stringbuilder 和 stringbuffer的区别?
    length(),
    charAt()获取在某个位置上的字符。
    getchars()街区多个字符。getBytes()
    toCharArray();string 转换为char数组。
    equals()和equalsIgnoreCase() 比较两个字符串是否相等。
    startsWith()和endsWith() startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束
    indexOf()和lastIndexOf()indexOf() 查找字符或者子串第一次出现的地方。
    lastIndexOf() 查找字符或者子串是后一次出现的地方。
    trim() 去掉起始和结尾的空格
    valueOf() 转换为字符串
    toUpperCase() toLowerCase() 转换为大写/小写

string.equals的具体实现是:有string类里面是用一个final的char数组作为容器存储的,所以equals方法的具体实现就是将遍历这个数组比对数组里面的每个字符是否相等。

StringBuffer支持并发操作,线性安全的,适合多线程中使用。StringBuilder不支持并发操作,线性不安全的,不适合多线程中使用。新引入的StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高。

  1. spring的事务传播特性
  • PROPAGATION_REQUIRED ,默认的spring事务传播级别,使用该级别的特点是,如果上下文中已经存在事务,那么就加入到事务中执行,如果当前上下文中不存在事务,则新建事务执行。所以这个级别通常能满足处理大多数的业务场景。
  • PROPAGATION_SUPPORTS ,从字面意思就知道,supports,支持,该传播级别的特点是,如果上下文存在事务,则支持事务加入事务,如果没有事务,则使用非事务的方式执行。
  • PROPAGATION_MANDATORY , 该级别的事务要求上下文中必须要存在事务,否则就会抛出异常!如果有事务就加入到已有的事务当中。配置该方式的传播级别是有效的控制上下文调用代码遗漏添加事务控制的保证手段。
  • PROPAGATION_REQUIRES_NEW ,从字面即可知道,new,每次都要一个新事务,该传播级别的特点是,每次都会新建一个事务,并且同时将上下文中的事务挂起,执行当前新建事务完成以后,上下文事务恢复再执行。
  • PROPAGATION_NOT_SUPPORTED ,这个也可以从字面得知,not supported ,不支持,当前级别的特点就是上下文中存在事务,则挂起事务,执行当前逻辑,结束后恢复上下文的事务。
  • PROPAGATION_NEVER ,该事务更严格,上面一个事务传播级别只是不支持而已,有事务就挂起,而PROPAGATION_NEVER传播级别要求上下文中不能存在事务,一旦有事务,就抛出runtime异常,强制停止执行!
  • PROPAGATION_NESTED ,字面也可知道,nested,嵌套级别事务。该传播级别特征是,如果上下文中存在事务,则嵌套事务执行,如果不存在事务,则新建事务。
    嵌套是子事务套在父事务中执行,子事务是父事务的一部分,在进入子事务之前,父事务建立一个回滚点,叫save point,然后执行子事务,这个子事务的执行也算是父事务的一部分,然后子事务执行结束,父事务继续执行。重点就在于那个save point。
  1. spring 中有用到哪些设计模式?工厂模式的三种实现方法的区别?
  • spring都用到了哪些设计模式?
    工厂模式:如BeanFactory,ApplicationContext等创建bean对象 。
    代理模式:spring aop 功能的实现?
    单例模式: Spring 中bean默认都是单例的。
    观察者模式:Spring中的事件驱动模型。
  • 工厂模式的三种实现方法的区别?
    https://blog.csdn.net/zhao__zhen/article/details/102549088
  1. 说说对MVC三层模型的理解?
  2. 加载类的流程?
    类加载的生命周期:一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)七个阶段。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bCGlnTep-1595152778706)(https://raw.githubusercontent.com/zhaozhen197/my_markdown_img/master/20200703092558.png)]]
  3. 内存泄露和内存溢出的区别?
    内存溢出:简单地说内存溢出就是指程序运行过程中申请的内存大于系统能够提供的内存,导致无法申请到足够的内存,于是就发生了内存溢出。

内存泄漏:内存泄漏指程序运行过程中分配内存给临时变量,这些变量使用完持续占有内存或内存得不到及时释放用完之后却没有被GC回收,始终占用着内存,既不能被使用也不能分配给其他程序,于是就发生了内存泄漏。
12. 做管理如何保持自己的技术先进性?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值