记录一下面试问到的内容

93 阅读2分钟

记录一下问到的相关问题

  • redis 的数据类型

String list set zset hash

  • spring controller 的单例 如何验证 其单例是不安全的,有什么解决办法

controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。 正因为单例所以不是线程安全的. 非要使用 非静态变量时,需要在 class 上面使用 @scope(prototype),将其设置为多例模式。 解决方案: 1、不要在controller中定义成员变量。2、万一必须要定义一个非静态成员变量时候,则通过注解@Scope(“prototype”),将其设置为多例模式。3、在Controller中使用ThreadLocal变量

  • mysql 的引擎
  • Integer 比较相等是用 equals 或 == ?涉及到 128 或 IntegerCache 只要是引用对象比较,我们都使用 Object.equals() 比较即可. 当然了,对于上面的问题,如果 Integer 的值在 -128~127 范围内时,可以使用 ==,其余范围使用 equals
  • String[] 转 list
// String[]转List<String>
String[] arr = new String[]{"s1","s2","s3"};
List<String> list = Arrays.asList(arr); 

// List<String>转String[]
List<String> list = new ArrayList<String>();
list.add("s1");
list.add("s2");
list.add("s3");
String[] arr = list.toArray(new String[list.size()]);
  • List<String> list1List<String> list2 去除重复元素
public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("a");
        list1.add("1");
        list1.add("b");
        list1.add("e");
        list1.add("x");

        List<String> list2 = new ArrayList<>();
        list2.add("a");
        list2.add("1");


        List<String> list3 = new ArrayList<>();
        list3.addAll(list1);
//        list3.removeAll(list2); //list3 中去除掉重复元素后剩余的元素集合 //[b, e, x]
        list3.retainAll(list2); // list3 中 输出重复的元素 //[a, 1]
        System.out.println(list3);
    }
  • OSI 7层网络模型 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
  • sql 优化
  • mybaits 中 #{} 和 ${} 的区别
  • spring ioc 源码
  • mysql 表数据很大,需要根据sex分组,在sex上做索引合适吗?

在InnoDB中每一个表都会有聚集索引,如果表定义了主键,则主键就是聚集索引。一个表只有一个聚集索引,其余为普通索引.在使用普通索引查询时,会先加载普通索引,通过普通索引查询到实际行的主键。再使用主键通过聚集索引查询相应的行。以此循环查询所有的行。 若直接全量搜索聚集索引,则不需要在普通索引和聚集索引中来回切换.性别字段为什么不适合加索引.可以看到相同的sql,加索引之后比不加索引慢许多.参考(blog.csdn.net/zxcc1314/ar…)

  • maven jar 包冲突怎么解决?

<exclusions>来排除掉冲突的jar包

  • sql中定义了索引,但是查询时没有用到索引?