粉丝7437获赞4.9万

为什么 java 会有结果的概念?故事得从瞎家说起。假设有个野生动物类 a, 还有个奔跑动物类 b。 如果你想让你写的老虎类既拥有野生动物的特性,也拥有奔跑动物的特性, 那么在习家家中,你可以让这个子类同时继承 a 和 b, 这就叫习家家的多重继承。那么问题来了,如果 a 和 b 都有一个名字一样的方法 it, 那么这个子类究竟是继承了哪个副类的意思呢?这就产生了冲突和起义。 注意哈,为了解决这个问题,抓娃的解决方法是简单而粗暴的,只允许当继承。然而这也意味着多重继承的好处也失去了。所以啊,抓娃为了弥补, 便引入了接口的概念,一个类可以实现多个接口,从而获得不同的行为,同时还可以继承一个负类的特性。比如你可以让这个子类继承野生动物类 a, 同时实现奔跑接口类 b。 值得一提的是,习家家为了这个多重继承的特性,不得不引入一些比如 狙击类、控制规则等复杂的特性。所以你会看到多重继承实际在 ci 应用中很少被使用,而抓瓦的接口由于简单而被广泛使用。

扎瓦的性能优化呢,其实很简单,有的时候根本不需要那些高大上的中间键,今天给大家介绍几个方法,一听就会会了,马上就能用的那种。首先呢我们可以把一些阻塞的操作呢改为非阻塞的,大家比较容易理解呢,就是使用 nio 去代替 bio, 还有呢就是使用修车的模式,我们可以把那些耗时的操作呢都交给修车去执行,而代码中呢,不需要阻塞的人一直等,再把自己的活干完之后呢,再去找修车要结果就行了。 其次呢就是进行一步化的改造,比如说使用 aio 再去把 nio 给替代了。针对上面讲的 fu 车模式呢,我们其实可以把 fu 车提交给现成池去 e 部的执行, 有人说如果你要做很多的事,这些事之间呢又没有相互依赖的话呢,你就可以用现成池去一步的把它分别执行掉,这样呢就可以降低资源的消耗,提升你的想要速度。当然一步化其实也不只是现成池了,比如说像扎喇叭当中提出的病情流也是一步化的一种思想吗?还有就是大家比较容易的忽视的一个问题呢, 就是锁的优化的问题,比如说你代码中如果存在很多锁的话,那一定会存在锁的竞争的问题,这就会导致你有一些额外的资源的消耗,那么呢我们可以通过减少锁的时间,减少锁的力度,堵锁和解锁进行分离,然后再进行一些锁粗化,锁消除的动作来对我们的锁进行优化。
