总结
蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年1班,很有青春的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。
经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。
举个例子哈:
假设你想把一个 int 转换成 double,以便让包含 int 类型变量的表达式产生出浮点数值的结果。
如果用 C 风格的类型转换,你能这样写:
int a;
…
double b = (double)a;
如果用上述新的类型转换方法,你应该这样写:
double result = static_cast(a);
static_cast 就不多说了吧,前面提到了,功能呢,跟C风格的类型转换功能大体上是一样的。
不过呢,它也有功能上限制。例如,你不能用 static_cast 象用 C 风格的类型转换一样把 struct 转换成 int 类型或者把 double 类型转换成指针类型,另外,static_cast 不能从表达式中去除 const 属性,因为这是别的类型转换符(const_cast)的功能。
const_cast 用于且仅用于类型转换掉表达式的 const 或 volatileness 属性。
class father { … };
class son: public father { … };
void update(son* psw);
son sw; // sw 是一个非 const 对象。
const son& csw = sw; // csw 是 sw 的一个引用,它是一个 const 对象
update(&csw); // 错误!不能传递一个 const son* 变量给一个处理 son*类型变量的函数
update(const_cast<son*>(&csw)); // 正确,csw 的 const 被显示地转换掉
update((son*)&csw); // 同上,但用了一个更难识别的 C 风格的类型转换
father *pw = new son;
update(pw); // 错误!pw 的类型是 father*,但是 update 函数处理的是 son*类型
update(const_cast<son*>(pw));// 错误!const_cast 仅能被用在影响 constness or volatileness 的地方上。,
// 不能用在向继承子类进行类型转换。
dynamic_cast,它被用于安全地沿着类的继承关系向下进行类型转换。这就是说,你能用 dynamic_cast 把指向基类的指针或引用转换成指向其派生类或其兄弟类的指针或引用,而且你能知道转换是否成功。失败的转换将返回空指针(当对指针进行类型转换时)或者抛出异常(当对引用进行类型转换时):
father* pw;
…
update(dynamic_cast<son*>(pw)); // 正确,传递给 update 函数一个指针是指向变量类型为 son的 pw 的指针
void updateViaRef(son& rsw);
updateViaRef(dynamic_cast<son&>(*pw)); //正确。 传递给 updateViaRef 函数 SpecialWidget pw 指针,如果 pw
最后
现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。
所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。
厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**