用友Java面试(2017)
一、笔试部分
1.题目是这样的:老大 老二 老三 每个人有10颗豆 有一个图表示他们之间的喜爱关系,他们每次都是将自己的豆都平分给自己喜爱的人 问这个游戏什么时候能够结束?并用一门程序语言描述。(他们之间的喜爱关系有图像表示 这里描述一下 老大喜爱老二和老三, 老三喜欢老二 ,老二喜欢老大 )
解决方案:首先想的是什么时候结束?如何才能结束?老大老三老二形成了资源循环,老二和老大形成循环 正常按照这样那是不会结束的 就想到如何破坏其中一条路径 让这个循环终止 于是找到了脆弱的一环 让老三一直不给老二发豆,直至老大一直以/2的速度发完 此时游戏结束。感觉还涉及到一个问题:豆子平分不是整数的偏向问题
2.一道程序题 大概如下
package com.test;
class a{
static{
System.out.print("A");
}
public a() {
System.out.print("a");
}
}
public class test extends a{
static{
System.out.print("B");
}
public test() {
System.out.print("b");
}
public static void main(String[] args) {
a t=new test();
t=new test();
}
}
问:此程序输出的结果是?
3.有四个人甲乙丙丁要过桥 只有一个手电筒,天很黑 ,过桥都要手电筒,每次过桥可以最多两个人,甲乙丙丁单独过桥的时间分别是1,2,5,7 问过桥至少要几分钟??
此题分析一下便可以得出结果;
4.问 左连接,右连接,全连接的区别 以及自己用A、B表进行表示查询结果
5.1详细描述自己接触过得一个项目以及所涉及的框架技术等
5.2 举例一些jdk中常用的接口api等
二、面试
1.如何区分两个不同对象?
2.如何去除list的重复数据?
3.用过哪些集合对象
4.抽象类和接口的区别是什么
5.equals和==有什么区别
6.知道hashcode编码?
都是一些比较基础的问题,没有涉及什么多线程,高并发之类的
7.讲出在你工作过程中遇到的一次最大的困难,然后你是怎么去解决的?结果怎么样?
8.spring的一些特性
9.什么是事务?(面试官强调 事务是spring的核心部分 不是ioc和aop)
10.spring的作者是谁?看过spring的哪些书?为什么作者要写出spring
11.如何区分两个不同的物体,比如这把桌子和另外那个,用override(面试官一直强调override,override,表示没听懂。。。)
-------------------------------------------end----------------------------------------------------