用友和中尤文旅的面经

用友的面经

  • 简单介绍了一汽的项目,并说明在做的过程中遇到的难点或困难,通过什么方法解决的,最后得总结是什么,这一部分占的时间挺长的

  • 问了反射,还问了反射常用的方法,这里没说出来
    反射的概念和反射的实际应用和反射的入口。
    反射常用的方法:
    getSuperClass :获得父类
    Field相关的方法:
    getDeclaredFilelds():获得类本身的所有字段,包括公有,保护,私有的
    getDeclaredFilelds(String name):获取类本身的指定字段,包括公有、保护、私有
    getFilelds():获取类本身和所有父类的公有和保护字段。
    getField(String name):获取类本身和其所有父类指定的公有和保护字段
    Method:
    getDeclaredMethods();获取类本身的所有方法,包括公有、保护、私有
    getMethods();获取类本身和其所有父类的公有和保护方法
    通过class获取构造方法:
    getDeclaredConstructors();获取类本身的所有构造方法,包括公有、保护、私有
    getConstructors();获取类本身非私有构造方法

  • 数据库优化:(只答了两点)
    使用索引:尽量避免全表查询,通常在where,order by,group by 的列上建立索引
    优化sql语句:尽量不要返回不用的列,也就是select ;
    不在索引列上做运算和使用函数
    查询的时候应用limit来控制返回的记录数
    优化数据库的对象:对表进行拆分:分为垂直拆分和水平拆分。
    垂直拆分:把常用的列和主键放在一个表里,然后把主键和其它列放在另外一个表中
    水平拆分:根据一列或多列的值将一行或多行的记录放在两个表中。
    使用中间表提升提高查询速度:中间表结构和源结构一样,可在中间表进行统计,得到想要的数据。
    调整磁盘调度算法:选择合适的调度算法,可以减少磁盘的寻道时间。
    mysql自身的优化:主要是对配置文件my.cnf中的各项参数进行优化调整,(缓存区的大小,允许连接的最大进程数)
    硬件的优化:
    cpu的优化:选择多核cpu和主频高的cpu.
    内存的优化:使用更大的内存将尽可能多的内存给mysql作缓存。

  • 问了多线程,其中说了两种实现方式(继承thread和实现runnable接口)还说了(锁机制控制控制线程的并发)除了这个还有哪些控制线程并发的锁机制(没回答出来)

中尤文旅的面经

  • 数据结构中数组,链表,二叉树,堆的优缺点和在现实生活中的应用场景
    二叉树的优点:
    类似于双向链表,对任意插入的元素都会自动排序,红黑树和平衡二叉树尽量平衡,从而使查询时和二分法类似
    适用的场合:
    需要保证列表元素的有序排序
    需要频繁的增加和查询的操作
    属于双向迭代器,不能随机访问任意元素
    堆分为大根堆和小根堆:
    大根堆:根节点的关键字大于等于左子树的关键字值,又大于等于右子树的关键字值。
    最小堆:是一种经过排序的完全二叉树,任一非终端节点的数据值均不大于其左子树的节点和右子树的节点值。
    应用场景:
    可以抽象的有10000个数字,怎么才能高效的找到最大的十个数字:

    可以考虑用堆排序,先用十个数字建一个小根堆,然后插入新的数据,如果比堆顶的数据大,就堆顶的数字,进行堆排序,进行堆排序,否则就跳过,知道遍历一遍,对立面的数字就是10000个数据中最大的10个数字。

  • 在学习过程中遇到问题时怎么解决的,通常的使用的网站有哪些(csdn),是经过什么途径来学习新的知识和技术的(我说csdn,但他说我凭什么说上面的技术新呢,我的回答是因为我不会的上面都能解决)

  • springMvc更新的最新版本是几。

  • 我说了用过maven,maven中的install方法的作用或执行的步骤,有没有上maven的官网上了解过(我说apache我看过,他问我上去干嘛了我说下了个tomacat,他就嘲笑我)
    maven的install可以将项目本身编译并打包到本地仓库,这样其他项目引用本项目的jar包时不用去私服上下载jar包,直接从本地就可以拿到刚刚编译打包好的项目的jar包,很灵活,避免每次都需要重新往私服发布jar包的痛苦;
    compile 编译
    clean 清空target目录
    package 打包
    test 运行单元测试
    用友和中尤文旅的面经_第1张图片

  • 对字符串的处理:也就就是string,stringBuffer,StringBudiler的区别

  • 问了项目中的库存是怎么管理的,其中最根本的问题就是并发的问题是怎么解决的(我说用了单例的两次检查,他说能解决但是很是会存在一些问题)

  • 还具体的问了库存的更新的语句是怎么写的

你可能感兴趣的:(Java)