![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码
不开的唇
这个作者很懒,什么都没留下…
展开
-
使用 spring 的 IOC 解决程序耦合
工厂模式解耦在实际开发中我们可以把三层的对象都使用配置文件配置起来,当启动服务器应用加载的时候,让一个类中的方法通过读取配置文件,把这些对象创建出来并存起来。在接下来的使用的时候,直接拿过来用就好了。那么,这个读取配置文件,创建和获取三层对象的类就是工厂。简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于...转载 2019-05-19 17:19:43 · 139 阅读 · 0 评论 -
【鲁班学院】面试总结:Java高级篇(上):集合的类型以及重新认识HashMap
1.你用过哪些集合类?大公司最喜欢问的Java集合类面试题40个Java集合面试问题和答案java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection├List│├LinkedList│├ArrayList│└...转载 2019-05-28 15:54:15 · 482 阅读 · 0 评论 -
Java集合源码剖析:TreeMap源码剖析
▷▷▷前言本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析。▷▷▷红黑树简介TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序...转载 2019-05-23 20:14:35 · 83 阅读 · 0 评论 -
你了解Spring事物控制特性吗
一、事务特性原子性:强调事务的不可分割一致性:强调的是事务的执行的前后,数据的完整性要保持一致隔离性:一个事务的执行不应该受到其他事务的干扰持久性:事务一旦结束(提交/回滚)数据就持久保持到了数据库二、如果不考虑隔离性,会引发一些安全性问题 读问题脏读:一个事务读到另一个事务还没...转载 2019-05-23 17:02:58 · 76 阅读 · 0 评论 -
面试高频问题:HashMap实现原理
今天给同学们讲讲一个面试经常遇到的高频问题,HashMap实现原理,希望在金三银四的季节对同学们有帮助。HashMap结构图目录一、唠叨二、解析思路三、get方法四、put方法五、resize方法一、唠叨认真阅读了下HashMap的实现方式,也参考了网上别人的一些解析,个人觉得还是有些东西想说。网上有的文章名字为HashMap源码解析,实际上就是给它里面的...转载 2019-05-27 21:42:33 · 173 阅读 · 0 评论 -
【鲁班学院】设计模式—访问者(Visitor)模式
一、定义访问者模式是一种从操作的对象结构中分离算法的方式。 它可以在不改变数据结构的前提下定义作用与这些元素的新操作。它遵循开闭原则。Represent an operation to be performed on elements of an objectstructure. Visitor lets you define a new operation without changin...转载 2019-05-30 14:17:33 · 161 阅读 · 0 评论 -
分布式环境下实现分布式锁的关键技术
摘 要:在日常开发中,应用大多数是分布式部署的,经常会面临分布式环境下应用对数据操作的一致性问题。这时就需要找出一个在分布式环境下同一个应用多个实例之间能够访问的临界资源,并对该临界资源做互斥访问,从而保证数据一致性。本文结合笔者实际工作中的经验,对分布式环境下实现应用分布式锁的关键思路进行探讨。关键词: 分布式锁、互斥资源、数据一致性分布式环境下,分布式部署的应用很多时候需要对同一个资源数...转载 2019-05-27 15:46:37 · 135 阅读 · 0 评论 -
如何用JavaScript写一个区块链?
Part1实现一个基本的区块链1.区块链区块链是由一个个任何人都可以访问的区块构成的公共数据库。这好像没什么特别的,不过它们有一个有趣的属性:它们是不可变的。一旦一个区块被添加到区块链中,除非让剩余的其余区块失效,否则它是不会再被改变的。这就是为什么加密货币是基于区块链的原因。你肯定不希望人们在交易完成后再变更交易!2.创造一个区块区块链是由许许多多的区块链接在一起的(...转载 2019-05-22 21:57:41 · 279 阅读 · 0 评论 -
今日头条算法原理详解全集,值得收藏!
今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解。今日头条的推荐算法,从 2012 年 9 月第一版开发运行至今,已经经过四次大的调整和修改。今日头条委托资深算法架构师曹欢欢博士,公开今日头条的算法原理,以期推动整个行业问诊算法、建言算法;通过让算法透明,来消除各界对算法的误解,并逐步推动整个行业让算法更好的造福社会。以下为《...转载 2019-05-26 20:47:19 · 530 阅读 · 0 评论 -
MySQL索引原理及慢查询优化,了解一下?
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易...转载 2019-05-26 15:35:22 · 131 阅读 · 0 评论 -
ApplicationContext的四个实现类
1.ClassPathXmlApplicationContext2.FileSystemXmlApplicationContext3.XmlWebApplicationContext4.WebApplicationContext1.作用:Context的实现类有很多,但是 CI 是唯一做具体工作的,其他实现都是对 CI 做代理。CI 中有一些成员对象,先来看看这些对象的用处:1.mRe...转载 2019-05-22 14:00:11 · 2309 阅读 · 1 评论 -
分析工厂模式中的问题并改造
工厂模式基本与简单工厂模式差不多,上面也说了,每次添加一个产品子类都必须在工厂类中添加一个判断分支,这样违背了开放-封闭原则,因此,工厂模式就是为了解决这个问题而产生的。既然每次都要判断,那就把这些判断都生成一个工厂子类,这样,每次添加产品子类的时候,只需再添加一个工厂子类就可以了。这样就完美的遵循了开放-封闭原则。但这其实也有问题,如果产品数量足够多,要维护的量就会增加,好在一般工厂子类只用来...转载 2019-05-21 21:40:25 · 186 阅读 · 0 评论 -
编写工厂类和配置文件
为了满足“开闭原则”,大部分设计模式都引入了抽象层,如工厂方法模式、抽象工厂模式、适配器模式、桥接模式、命令模式、策略模式等等。客户端代码针对抽象层编程,而在程序运行的时候再指定其子类,根据“里氏代换原则”和面向对象的多态性,子类对象在运行时将覆盖父类对象。如果需要对系统进行扩展或修改,只需修改子类类名即可。在具体实现时,通过引入配置文件可以使得用户在不修改任何客户端代码的前提下增加或替换子类,其...转载 2019-05-21 14:08:08 · 276 阅读 · 0 评论 -
zookeeper: 分布式锁的实现
为什么要用分布式锁Martin Kleppmann是英国剑桥大学的分布式系统的研究员,之前和Redis之父Antirez进行过关于RedLock(红锁,后续有讲到)是否安全的激烈讨论。Martin认为一般我们使用分布式锁有两个场景:•效率:使用分布式锁可以避免不同节点重复相同的工作,这些工作会浪费资源。比如用户付了钱之后有可能不同节点会发出多封短信。 •正确性:加分布式锁同样可以避免破坏正确性...转载 2019-05-20 15:03:07 · 108 阅读 · 0 评论 -
一篇文章彻底搞懂Java虚拟机
概念:虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box,Java Virtual Machine(Java虚拟机,简称JVM)。Java虚拟机阵营:Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、Azul VM、Apache Harmony、Googl...转载 2019-05-19 21:45:37 · 125 阅读 · 0 评论 -
【鲁班学院】面试总结:Java高级篇(下),抽象类和接口的关系以及对内存和栈内存的区别等
22.关于抽象类和接口的关系简言之抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。从某种意义上说,接口是一种特殊形式的抽象类,在java语言中抽象类表示的是一种继承关系,一个类只能继承继承一个抽象类,而一个类却可以实现多个接口。在许多情况下,接口确实可以代替抽象类,如果你不需要刻意表达属性上的继承的话。23.堆内存和栈内存的区别寄存器:J...转载 2019-05-29 14:42:48 · 523 阅读 · 0 评论