Maxchen精心推荐

1丶英伟达人工智能科技宣传片

海量的可用数据、深度学习算法的发明和 GPU 计算的高性能,三种力量的融合推动了 AI 时代的到来。

新型互联网服务(如 Google Assistant)已学会了语音对话。自动驾驶汽车利用深度学习识别其占据的空间和需要避开的障碍物。就医疗健康领域而言,以数百万医学影像训练的神经网络可在 MRI 影像中捕捉到病因的蛛丝马迹,而人类目前只能凭借侵入性活检才能识别病因。

AI 将会大大促进社会蓬勃发展,这是之前任何一次工业革命都无法比拟的。

2丶什么是Java?Java语言的特点是什么?

抽象:抽象并非java语言独有。一句话:忽略无关细节,对事物的行为和属性做抽象,反映为类中的域和方法。

封装:隐藏内部细节,只提供与外界通信的接口。这个特征与迪米特法则有些联系,迪米特法则要求实体间发生作用要尽量少,使得各个类相互独立,放大来说,各个系统能相互独立,干自己的事,同时兼容的向外提供服务,笔者觉得封装这个词用来形容小服务,微服务也挺适合。

继承:一个类派生出子类,称为继承,派生类继承基类的方法和实例变量,并可以覆盖或增加新的方法。这里就产生了子类父类的概念。我们结合第一个特征抽象,可以看到依赖倒置的原则就是这么来的,抽象不能依赖于具体,而是让具体依赖于抽象。如果将继承的概念广泛化,那么实现接口也会产生子类和父类,开闭原则要求内部对扩展开放,对修改关闭,与继承有很大的联系。里氏替换原则更简单的理解是,子类能出现的地方,父类一定也能出现并代替,在编程中其实很多地方都体现了,最常见的:

Map<xxx,xxx> map = new HashMap<>(); List<> list = new ArrayList<>();

并非说一定要这样写,笔者开始用的时候其实也不太理解为啥要这么写,直到后来看到书中作者的描述合成和聚合原则,其实更好的词是组合和聚合,现在很多概念的界限其实都不是那么标准或严格了,我们将继承和持有,一般是持有有限,持有就是持有一个实例。总之,一个继承诞生了无数的情形,开发者从中得到了很多经验的做法和原则,这个只能在设计和编码中慢慢体会。

多态:父类的方法在子类中表现出不同的行为。有多态,那就有继承,有重写,有父类引用指向子类对象。多态例子太多了,做web开发的见得不要太多。但是,但是,利用多态衍生出的设计模式才是精髓,整个23种设计模式到处都有体现,多态的光芒,无处不在,我们的里氏替换原则就是直接的体现。java面向对象的基本特征其实没啥说的,难的是从中衍生的各种应用,譬如继承关系的类的加载顺序,设计模式,以及我们的数据库表设计(抽象和封装能力)。