前言 dubbo是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力.作为spring cloud alibaba体系中重要的一部分,随着spring cloud alibaba在国内活跃起来,dubbo也越来越深受各大公司的青睐.本文就来对dubbo的spi机制源码进行剖析,看一看dubbo的spi到底有哪些特性和功能. 一.什么是spi机制? SPI (Service Provider Interface),主要用于扩展的作用.举个例子来说,假如有一个框架有一个接口,他有…
冒泡,快排,二分查找,都是面试常问的几个算法题目,虽然简单,但是一段时间不用的话就很容易忘记,这里我用PHP实现了一下,温故而知新. 排序 冒泡排序 每一次冒出一个最大的值 function bubbleSort($arr) { $count = count($arr); if ($count == 0) return false; for ($i = 0; $i < $count - 1; $i++) { for ($k = 0; $k < $count - 1 - $i; $k++) {…
目录 python相对其他语言有什么特点? python内存管理机制,gc机制的了解,gc回收三种算法. lambda函数 高级函数 map.reduce.filter.sorted等. 简述六种基本数据类型(number.string.list.tuple.dict.set). python中深拷贝与浅拷贝. python中is和==的区别. python中if __ name ==' main __'有什么含义? python命令和python -m命令在执行脚本时的区别? python中多…
本人是做java开发的,这是我参加58,搜狐,搜狗,新浪微博,百度,腾讯文学,网易以及其他一些小的创业型公司的面试常被问的问题,当然有重复,弄清楚这些,相信面试会轻松许多. 1. junit用法,before,beforeClass,after, afterClass的执行顺序2. 分布式锁3. nginx的请求转发算法,如何配置根据权重转发4. 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap)5. 线程的状态5. 线程的阻塞的方式6. sleep…
并发.JVM.分布式.TCP/IP协议 1)Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap这一类的.以下简单模拟一个数据结构的连环炮. 比如,面试官先问你HashMap是不是有序的? 你肯定回答说,不是有序的.那面试官就会继续问你,有没有有顺序的Map实现类? 你如果这个时候说不知道的话,那这个问题就到此结束了.如果你说有TreeMap和LinkedHashMap. 那么面试官接下来就可能会问你,TreeMap和LinkedHas…
广义的 IOC IoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”. 两种实现: 依赖查找(DL)和依赖注入(DI). IOC 和 DI .DL 的关系(这个 DL,Avalon 和 EJB 就是使用的这种方式实现的 IoC): DL 已经被抛弃,因为他需要用户自己去是使用 API 进行查找资源和组装对象.即有侵入性. DI 是 Spring 使用的方式,容器负责组件的装配. 注意:Java 使用 DI 方式实现 IoC 的不止 Spring,包括…
前言 虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式. Mybatis至少遇到了以下的设计模式的使用: 1.Builder模式 例如SqlSessionFactoryBuilder.XMLConfigBuilder.XMLMapperBuilder.XMLStatementBuilder.CacheBuilder: 2.工厂模式 例如SqlSessionFactor…
开放封闭原则(OCP原则The Open-Closed Principle)是面向对象的核心设计所在.它是说,软件开发实体(类.模块.函数等)应该可以扩展,但是不能修改. 这个原则有两个特征,一个是说“对于扩展是开放的”,另一个是说“对于更改是封闭的”. 我们在编写任何app时,不要寄希望于需求是固定的.不变化的,这是不现实也是不科学的想法,既然需求一定会有变化,那么如何应对这种变化?也就是说.我们所设计的代码可以相对容易的修改,不至于新的需求一来,就将整个程序推倒重写?怎么样的设计才能面对需求…
概述 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试官经常问的问题,供大家参考学习. 类继承 有如下的一段代码: class A(object): def show(self): print 'base show' class B(A): def show(self): print 'derived show' obj = B() obj.show() 如何调用类A的show方法了. 方法如下: o…
一:java基础1.简述string对象,StringBuffer.StringBuilder区分string是final的,内部用一个final类型的char数组存储数据,它的拼接效率比较低,实际上是通过建立一个StringBuffer,让后台调用append(),最后再将StringBuffer toSting(),每次操作Sting 都会重新建立新的对象来保存新的值.这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.StringBuffer也是final,线程安全的,中采用一个c…