今天去参加在上海总部的ips的面试,来的路上总怕迟到,因为离得远,我出门时又拖了一会,在地铁上总要不停地看时间,还好总算没迟到。天钥桥路上有个“皖人会”,我看到了这三个字,心里就觉得是好兆头,没一点紧张感,毕竟毕业一年了,当初找实习时的那份紧张只留在了记忆里。ips所在的环球实业大厦一楼门面是工商银行,环球实业大厦的名字取得有些不厚道,高度上完全没有显出上海地贵的特征,也看不出环球和大厦的风情,不过内部装潢毫不含糊,环境很不错。我一进楼就直奔电梯准备去五楼,哪知电梯搞得竟和我现在住的富人小区一样,要刷卡才能用,瞬间尴尬,只好乖乖走出电梯去前台搬救兵,这时才知道这座“大厦”估计不简单。
到了五楼,见到了前台大姐,我报了来由,她问了姓名,开始找我的求职信息,然后我就听到了她说高级开发工程师,呐,拿着这份个人信息和这份笔试题作答吧!随后找了个位置给我,这时给我的感觉又像是去年去frontcoding面试php一样。然而我也奇怪,我的求职申请明明没有标明高级啊!开始做题时我就发现这套题的质量还是不错的,我也不知道是在网上找的题拼凑的还是技术部自己出的题,总之题目有Java初学者的基础问题,也有高级软件工程师接触比较多的设计模式。我真是晕啊,我准备了三大框架的一些面试题过来面试的,虽然也稍稍看了些spring有关的设计模式,但是完全是半吊子。特别是最后一题编程题,考的是装饰模式,还要求画uml,并写出代码。我就感觉超出我能力了,我所接触的设计模式都是常见的反射,单例,工厂,代理,观察者和策略模式,其中观察者和策略模式还是只看过,没动过手。于是最后一题我鬼画符了。
“做完题”,我松一口气,交给前台大姐,然后就等着面试。他们也是比较忙,也没仔细看我答的如何,就直接过来面试,三面:纯技术面试、业务经理面试、hr面试;估计是看我在P2P行业做了一年的缘故才会从头走到尾吧!技术面试时,我其实有些心虚了,被一套题吓了,心想估计要黑,然后每一个提问我的脑袋都有点判断不清晰了,看来面试这件事真的不适合我。印象最深的是技术问的有关于spring的一个问题我没答上来,如何一次性将处于一个包下的JaveBean全部注入容器,而不是一个个的bean去配置。当时一听到处于一个包下,立马就想到了spring的正则匹配,但是JaveBean上注解除了@Autowired外,还有一个@Qualifier("id")我根本就没记得。回来上网找了资料,现在给出资料的地址:http://wenku.baidu.com/link?url=5cLL8K8YTAr7QSlsN-hQJ-7QrAlGzZt43T1drXuDZE4DK6tNd5X8Vf2S8Jwjuofo83ycFSaS4TRQorBKLgdlRNZKyh-zkCvC7gtfPEeAb_K;以便以后翻阅。另外就是那个装饰模式,晚上回来也查了资料,推荐这篇文章:http://chenhua-1984.iteye.com/blog/565629;我自己也按照回忆将题目重新做了一遍。
package com.ips;
/**
* 星巴克饮料
* @author qingzhukl
*
*/
public interface StarBakDrink {
String getDescription();
Double getCost();
}
package com.ips;
/**
* 星巴克饮料--咖啡
* @author qingzhukl
*
*/
public class Coffee implements StarBakDrink{
@Override
public String getDescription() {
System.out.println("我是星巴克的咖啡");
return "我是星巴克的咖啡";
}
@Override
public Double getCost() {
System.out.println("我要花费:" + 10 + " 块钱");
return 10D;
}
}
package com.ips;
/**
* 星巴克饮料--果汁
* @author qingzhukl
*
*/
public class FruitJuice implements StarBakDrink{
@Override
public String getDescription() {
System.out.println("我是星巴克的果汁");
return "我是星巴克的果汁";
}
@Override
public Double getCost() {
System.out.println("我要花费:" + 8 + " 块钱");
return 8D;
}
}
package com.ips;
/**
* 星巴克饮料--加牛奶
* @author qingzhukl
*
*/
public class AddMilk implements StarBakDrink{
private StarBakDrink starBakDrink;
public AddMilk(StarBakDrink starBakDrink) {
this.starBakDrink = starBakDrink;
}
@Override
public String getDescription() {
String des = starBakDrink.getDescription() + "---加上牛奶";
System.out.println(des);
return des;
}
@Override
public Double getCost() {
Double cost = starBakDrink.getCost() + 5D;
System.out.println("我要花费:" + cost + " 块钱");
return cost;
}
}
package com.ips;
/**
* 星巴克饮料--加摩卡
* @author qingzhukl
*
*/
public class AddMoka implements StarBakDrink{
private StarBakDrink starBakDrink;
public AddMoka(StarBakDrink starBakDrink) {
super();
this.starBakDrink = starBakDrink;
}
@Override
public String getDescription() {
String des = starBakDrink.getDescription() + "---加上摩卡";
System.out.println(des);
return des;
}
@Override
public Double getCost() {
Double cost = starBakDrink.getCost() + 8D;
System.out.println("我要花费:" + cost + " 块钱");
return cost;
}
}
package com.ips;
/**
* 测试装饰模式
* @author qingzhukl
*
*/
public class CustomerForDrink {
public static void main(String[] args) {
StarBakDrink sbd = new AddMilk(new Coffee());
System.out.println("***************" + sbd.getDescription());
System.out.println("***************" + sbd.getCost());
StarBakDrink sbd2 = new AddMoka(new Coffee());
System.out.println("***************" + sbd2.getDescription());
System.out.println("***************" + sbd2.getCost());
StarBakDrink sbd3 = new AddMoka(new FruitJuice());
System.out.println("***************" + sbd3.getDescription());
System.out.println("***************" + sbd3.getCost());
StarBakDrink sbd4 = new AddMilk(new FruitJuice());
System.out.println("***************" + sbd4.getDescription());
System.out.println("***************" + sbd4.getCost());
}
}
最后控制台结果输出:
我是星巴克的咖啡
我是星巴克的咖啡---加上牛奶
***************我是星巴克的咖啡---加上牛奶
我要花费:10 块钱
我要花费:15.0 块钱
***************15.0
我是星巴克的咖啡
我是星巴克的咖啡---加上摩卡
***************我是星巴克的咖啡---加上摩卡
我要花费:10 块钱
我要花费:18.0 块钱
***************18.0
我是星巴克的果汁
我是星巴克的果汁---加上摩卡
***************我是星巴克的果汁---加上摩卡
我要花费:8 块钱
我要花费:16.0 块钱
***************16.0
我是星巴克的果汁
我是星巴克的果汁---加上牛奶
***************我是星巴克的果汁---加上牛奶
我要花费:8 块钱
我要花费:13.0 块钱
***************13.0
Java的文件流也采用了装饰模式,不过我之前一直没有注意过。至于类图,大家自己可以找资料,cnblogs上有很多不错的博客,是我最喜欢的一个博客地,但CSDN是老地方,我又不想注册很多号,所以一直在这上面啰嗦。
技术之后的业务经理问的不多,因为技术在问的时候他就在旁边听着,业务上只问了关键性的一句(我认为的):资金池和托管的区别。对我来说太简单,因为这一年技术长进不大,业务倒是很熟。最后人事就进来和我聊薪资福利之类的了,不过业务经理也简单讲了一些,聊得更多是一些性格细节,hr还问我是不是这套题难度偏高,我当时就知道我答的不好已经遭受了检查了,有得有失,总也知道自己的技术还有哪些不足,好过浑浑噩噩 。最后临走hr还送我到电梯,我们愉快的挥了挥手。
总体来说,ips还是不错的一家公司,公司主要做的是B2B的支付业务,所以大众了解他们不多,今天问了下,公司去年盈利达到了7kw,应该算是比较有实力的。有能力的朋友不妨去试试,待遇也还可以。