浩浩 浩浩
4年前
面试官:给你了十分钟,讲出实现 Router 框架的原理
Android开发中,组件化,模块化是一个老生常谈的问题。随着项目复杂性的增长,模块化是一个必然的趋势。除非你能忍受改一下代码,就需要十几分钟的漫长阅读时间。模块化,组件化随之带来的另外一个问题是页面的跳转问题,由于代码的隔离,代码之间有时候会无法互相访问。于是,路由(Router)框架诞生了。目前用得比较多的有阿里的ARouter,美团的WM
Wesley13 Wesley13
3年前
java类的设计技巧
    大家好,我是白泽。这几天一直有空就开始了我的博客路。    今天我们来讲讲对象设计的技巧吧,之前自己也是一头雾水,这对象想怎么写就怎么写呗还设计个锤子啊?知道在上家公司工作,因为要求的规范比较严格,所以在类的设计上也是有点要求。之后看了本《java核心技术》,如果你是新手,那么我强烈推荐这本书而不是《java编程思想》,后者写的很好不过不适合新手
简
4年前
使用 IoC 容器来简化业务对象的管理
使用IoC容器来简化业务对象的管理有过复杂业务应用编写经验的开发人员都知道业务对象的创建是一件比较麻烦的事儿。这些应用中存在着大量的业务对象,它们之间有着复杂的依赖关系,导致模块之间很容易出现循环依赖。此外,有些对象还有单例要求,依赖之间还有顺序要求,这些更加重了问题的严重性。这种情况下就需要有一种手段来简化业务对象的管理,包括创建和获取,IoC(I
捉虫大师 捉虫大师
3年前
Sentinel-Go 源码系列(一)|开篇
大家好呀,打算写一个Go语言组件源码分析系列,一是为了能学习下Go语言,看下别人是怎么写Go的,二是也掌握一个组件。本次选择了SentinelGo,一是对Java版本的Sentinel算是有一些了解,也在生产上落地过,二是感觉他的代码应该不会太复杂(仅仅是感觉),三是在云原生越来越热的趋势下,用Go实现的限流降级容错应该是比较通用的
Wesley13 Wesley13
3年前
C++矩阵处理库
项目要进行比较多的矩阵操作,特别是二维矩阵。刚开始做实验时,使用了动态二维数组,于是写了一堆Matrix函数,作矩阵的乘除加减求逆求行列式。实验做完了,开始做代码优化,发现Matrix.h文件里适用性太低,而且动态二维数组的空间分配与释放也影响效率,于是寻找其他解决方案。首先考虑的是与Matlab混合编程,折腾了半天把Matlab环境与VS2010环境之
Wesley13 Wesley13
3年前
Java数据结构和算法(四)——栈
前面我们讲解了数组,数组更多的是用来进行数据的存储,纯粹用来存储数据的数据结构,我们期望的是插入、删除和查找性能都比较好。对于无序数组,插入快,但是删除和查找都很慢,为了解决这些问题,后面我们会讲解比如二叉树、哈希表的数据结构。  而本篇博客讲解的数据结构和算法更多是用作程序员的工具,它们作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生
Easter79 Easter79
3年前
ThreadLocal详解
ThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量。  这个玩意有什么用处,或者说为什么要有这么一个东东?先解释一下,在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的,并且我们也知道volatile这个关键字也是不能保证线程安全的。那么在有一种情况之下,我们需要满足这样一个条件:变量是
Wesley13 Wesley13
3年前
Java动态代理一览笔录
1、什么是代理?比较经典的含义如销售代理,签订合同的基础上,为委托人(厂商)销售某些特定产品或全部产品的代理商,对价格、条款及其他交易条件可全权处理。我们从销售代理那里购买产品,通常是不知道销售代理背后的委托人(厂商)是谁,也就是"委托人"对于我们来说是不可见的。代理,简单来说,也就是提供代理人,并有代理人全权处理委托人的事务。
Stella981 Stella981
3年前
Centos7下安装和卸载Mongodb数据库的方法
导读MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据