自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (4)
  • 论坛 (2)
  • 收藏
  • 关注

原创 [设计模式] 行为型:解释器模式(Interpreter Pattern)

文章目录什么是解释器模式设计与实现规则设计代码实现什么是解释器模式解释器模式就是针对一个有规则的场景,设计一个解释器,根据定好的规则解释具体场景并得到结果的设计模式。设计一段代码,能够计算任意的加减乘除混合运算,那么这就是一个解释器。侧重业务系统架构与开发的码农,使用解释器模式的场景比较少,工作中几乎不会遇到,该模式可以不做了解,直接跳过不用再看了。解释器模式不同于以往的各种模式,不同之处不在于代码层面,而在思想层面。以前说的二十二种设计模式,侧重点都是围绕着很有代表性的业务场景,设计出高内聚低

2020-09-13 12:21:15 39

原创 [设计模式] 行为型:备忘录模式(Memento Pattern)

文章目录什么是备忘录模式设计与实现什么是备忘录模式备忘录模式特别好理解,就是记录下当前状态,然后在将来某个时刻,执行恢复操作,还原到当前状态。这是提前备份将来还原的思想,在生活中非常的常见。比如,操作系统装好以后,通常会备份个镜像文件,如果将来某一天系统出问题了,就拿镜像文件恢复系统。明白了要做什么,就要考虑怎么去做,针对不同业务场景,实现方案是多种多样的。所有方案的核心点就一个,备份!具体到代码层面,备份途径有很多选择,数据库、硬盘、甚至缓存、内存,都可以充当备份媒介。怎么方便怎么做,怎么简单

2020-09-06 22:32:28 38

原创 [设计模式] 行为型:访问者模式(Visitor Pattern)

什么是访问者模式访问者模式是个相对比较简单的模式,根据它的名字就可以判断,这个模式里面包含着两种角色:访问者、被访问者。访问者访问被访问者之后,会根据被访问者提供的信息进行自己的逻辑,我们暂且称这种行为叫做访问逻辑。访问逻辑在访问者内部定义,由被访问者提供需要的数据信息。通常来讲,在我们的常规意识里面,访问者是主动的,被访问者是被动的,访问逻辑由访问者主动发起执行。在访问者模式里面,这个常规意识恰好被颠倒过来。被访问者是主动的,访问者是被动的,访问逻辑由被访问者主动发起执行。这么说可能不太好理解,

2020-09-06 20:20:49 48

原创 [设计模式] 行为型:迭代器模式(Iterator Pattern)

文章目录什么是迭代器模式设计与实现什么是迭代器模式首先声明一个观点,迭代器模式已经没落了,很少再有人单独写迭代器,除非是偏底层的产品性质的开发。迭代器在各类应用框架中几乎都有涉及,现成的实现方案及应用都已经很完美了,没必要自己再去费心费力的造一个轮子。迭代器是为容器服务的,容器就是可以存放许多对象的数据结构,遍历容器中每一个对象元素,就是迭代器最主要的事情。JDK 1.2版本增加了java.util.Iterator接口,意味着 Java正式引入迭代器模式,并在此后,逐步将迭代器应用到各个容器类中

2020-09-05 15:37:58 70

原创 [设计模式] 行为型:中介者模式(Mediator Pattern)

文章目录什么是中介者模式设计与实现什么是中介者模式中介者模式也是顾名思义,我们需要完成某件事情,但是因为不够专业,或者不想亲自实践,就可以找个中介帮我们完成事情。中介者模式存在的意义和用途是什么呢?思考一个场景,房屋租赁,房东需要出租房子,租客需要承租房子。没有中介的情况下,房东和租客需要直接沟通洽谈,于是,一个房东需要面对很多租客,一个租客也要面对很多房东,这是个多对多的关系。现实中如果真这样,房东和租客都会比较累,需要照顾的方面太多。多对多的业务场景,映射到程序代码里面,就会导致模块或实体间

2020-08-30 11:59:16 60

原创 [设计模式] 行为型:观察者模式(Observer Pattern)

文章目录什么是观察者模式设计与实现主动观察者模式被动观察者模式什么是观察者模式顾名思义,观察者就是要对目标进行观察,当目标行为有所变动时,自己及时作出反应。观察的具体方法有很多种,从编程的角度来理解,观察者要达到观察的目的,主要有两种策略:观察者主动观察目标状态,实时或半实时的对目标对象进行监听,属于面向过程的编程思想观察者被动接收消息,当目标状态发生改变时,目标对象主动通知观察者,属于面向对象的编程思想我将第一种策略称之为主动观察者模式,第二种策略称之为被动观察者模式,名字是我随便取的,读

2020-08-30 10:00:48 83

原创 [设计模式] 行为型:状态模式(State Pattern)

什么是状态模式状态模式是针对状态机模型的编程套路,首先要知道状态机是什么。状态机是一种数学模型,用于对事物状态的变化进行描述。不说那么学术的概念了,用具体的例子来解释会更容易理解。电梯应该都知道吧,电梯工作过程可以简化为几种状态:开门状态、关门状态、运行状态、停止状态。开门状态下可以关门关门状态下可以运行或者再次开门运行状态下可以停止停止状态下可以开门或者再次运行用状态图表示就是:在现实中,电梯停止后会自动开门,我这里的状态模型把“自动化”因素给剔除了,所以停止后的电梯还有可能进入运

2020-08-29 16:00:36 71

原创 [Spring] 实例化Bean的三种方法

文章标题方法一:构造器方法二:静态工厂方法方法三:对象工厂方法容器启动与应用Spring框架的核心是IOC容器,它是个管理对象的工厂,常说的两个专业名词“控制反转”和“依赖注入”,就是它最重要的两大特征:控制反转:创建对象的权利交给IOC容器,程序员负责声明要创建的对象依赖注入:对象之间的依赖关系由IOC容器负责实现,程序员负责声明这种依赖关系,依赖关系就是指对象内部有哪些属性Spring容器中的对象叫做Bean,本文要讲的实例化Bean方法,说的就是“控制反转”这个特性,程序员怎么声明Bean

2020-08-23 17:42:08 131

翻译 [数据库] SQL的各种JOIN连接

文章目录写在前面INNER JOINLEFT JOINRIGHT JOINOUTER JOINLEFT JOIN EXCLUDING INNER JOINRIGHT JOIN EXCLUDING INNER JOINOUTER JOIN EXCLUDING INNER JOIN总结写在前面翻出来一篇笔记,忘了啥时候整理的,好像是在一个外国网站上看到的。作者应该是个程序员,用图形方式清楚的描述出SQL之间的各种连接关系,非常的易懂。原文我已经找不到了,向原.

2020-07-23 23:28:56 2936

原创 [网络] 数字签名和数字证书的原理机制

文章标题数字签名数字证书数字证书的应用场景数字签名数字签名是拿来对数据做认证的,帮助接收者确认数据是否真实有效。就像你在合同上签名,合同生效后,内容就不能再改动了。两者作用是一样的,区别在于认证的原理和方式。数字签名的实现原理是哈希算法和非对称加密算法。哈希算法特点:给定哈希函数,无论数据多少,计算出的哈希值长度都是一样的。根据数据可以计算出哈希值,但是根据哈希值不能反推出数据。一个好的哈希算法,计算出来的哈希值,出现碰撞(相同)的概率极低。非对称加密算法特点:密钥有两个,成对存在

2020-07-23 07:06:39 178 1

原创 [设计模式] 行为型:责任链模式(Chain of Responsibility Pattern)

文章标题什么是责任链设计与实现什么是责任链责任链的思想是一种顺序流处理请求事件的机制,特别容易理解和实现。通常情况下,责任链的数据结构就像是一个链表,处理请求事件的时候,从链表中第一个元素开始,依次轮流接收并处理请求事件。如果当前节点能处理请求事件,就处理掉,返回结果消息,不再向后继续传递请求事件;如果当前节点不能处理请求事件,就把请求事件向后传递,直到有一个节点可以处理。责任链的变化非常多,比如说,一个请求事件的处理过程,可能分散在多个节点对象中,又比如说,数据结构可能不是单纯的链表结构,也可能

2020-07-20 23:19:46 72

原创 [网络] SSL/TLS协议的原理机制
原力计划

文章目录概述SSL/TLS的历史加解密的两种方法保护数据内容的两个方面数据解密内容是否正确对称密钥协商过程中间总结对称密钥协商过程(进阶)最后总结概述我们每天都在使用互联网,所有数据都要通过计算机网络进行传输,网络本身只具备传输数据的能力,并不能保证数据的安全性。数据在公共网络中移动的时候,很容易被第三方截获、篡改,造成信息泄漏、中间人攻击等各种网络安全性问题。这就是计算机网络的真实情况,也是SSL/TLS协议诞生的背景!要解决的问题:能够在不安全的网络环境中,安全的传输数据。安全性体现在两个方

2020-07-19 10:58:21 1551

原创 [设计模式] 行为型:命令模式(Command Pattern)

文章目录什么是命令模式设计与实现写在最后什么是命令模式军人以服从命令为天职!在军队里面,下级接收并执行上级的命令,就是命令模式的体现。命令,通常都是非常简明的描述,几个字,一句话,一个手势,或者一个文件,都是些很简单的信息。但是,执行命令的过程,可能很简单,也可能非常有难度。比如,命令“稍息”执行起来就很简单,命令“攻占美国”执行起来就很有挑战。在命令模式中,核心角色有三个:命令、发起者、执行者。命令是发起者和执行者之间唯一的联系,发起者将命令下达给执行者,执行者收到命令后去执行。发起者不关心命

2020-07-05 22:01:32 87

原创 [设计模式] 行为型:策略模式(Strategy Pattern)
原力计划

文章标题什么是策略模式设计与实现总结什么是策略模式策略,就是解决问题的具体方法。针对同一个问题的不同条件,可以有多种不同的解决方法。比如,外出旅行,可选的出行方式有:汽车(省内旅行)、火车(国内旅行)、飞机(国际旅行)。每一种出行方式都是一种具体的策略,各自都有对应的选择条件。如果把这个场景用代码表示出来,最容易想到的应该就是用if...else...来实现。但是,这在编程老鸟眼里是有问题的,后期扩展性不佳。简单解释下为什么扩展性不佳,随着场景的丰富,策略选择条件可能会更复杂,也可能会增加新的策略

2020-07-05 12:37:28 112

原创 [设计模式] 行为型:模版方法模式(Template Method Pattern)

文章标题什么是模版方法模式设计与实现什么是模版方法模式现实生活中,模版到处都是,比如,小学生优秀作文模版,购房合同模版,还有生产各种甜品蛋糕的模具。模版就是一套约定好的规则,套用模版就可以生产出符合规则的具体事物。具体到编程领域的设计模式,模版就是抽象类的抽象方法。因为抽象方法只有声明,没有实现,非常适合规则的描述,所以前人就利用抽象类的特性,摸索出了模版方法模式。设计与实现模版方法模式是一种非常容易掌握的模式,重点就是抽象类的抽象方法,用抽象方法描述规则逻辑,用抽象类的子类将规则具体化。好

2020-06-22 22:29:41 114

原创 [设计模式] 结构型:组合模式(Composite Pattern)
原力计划

文章目录什么是组合模式设计与实现组合模式的注意事项什么是组合模式组合模式也叫合成模式,是将含有父子关系的一组单个对象,组合成用树结构表示的对象,也就是组合对象,可以表达出局部与整体的层次关系。组合对象具有树结构的特性,所以,针对单个对象和组合对象的操作,就能抽象出统一的过程。说白了,这也是树的自身特性,整体是树结构,局部也是树结构,能对树进行的操作,既适用于整体数据,也适用于局部数据。通俗理解,组合模式就是实现对树结构的操作,要点有两个:将具有父子关系的对象合成树结构,就是组合对象用抽象、封

2020-06-21 22:01:59 93

原创 [设计模式] 结构型:享元模式(Flyweight Pattern)

文章目录什么是享元模式设计与实现Integer应用享元模式什么是享元模式“享”的意思是“共享”,“元”的意思是“对象”,所以,“享元”的意思就是“共享对象”。很简单吧~~可以认为,单例对象就是享元模式的一种特例,系统中某个特定对象只存在一个,无论外界何时调用,都是这一个对象提供服务。池化概念也是享元模式的一种体现,比如常量池、线程池、连接池等,都是利用复用对象的途径,达到提高系统整体性能的目的。“对象共享”是件好事儿,系统资源得到了充分利用,而且修改对象立刻就能全局生效。但是问题也很明显,那就

2020-06-14 22:52:26 92

原创 [设计模式] 结构型:外观模式(Facade Pattern)

文章目录什么是外观模式设计与实现简单总结什么是外观模式外观模式是一种非常简单的模式,即使没有了解过,对于面向对象编程的人来说,也很容易自发的写出来。接触过web编程的人应该都知道MVC架构模式,从设计模式的角度看,其中的控制器C就可以看作是外观模式的体现。来自客户端的请求无需知道控制器背后的实现逻辑,只需要知道控制器能做什么事情就可以了。通常,控制器能够完成某项任务,但是自身并不具备实际的业务处理能力,而是根据请求数据,与其它组件或系统进行简单或复杂的交互,这些过程对于客户端来讲,是透明无感知的。

2020-06-14 21:44:50 91

原创 [设计模式] 结构型:装饰器模式(Decorator Pattern)
原力计划

什么是装饰器模式房子装饰的再好看,它也还是个房子,只是住着比不装修的房子更舒服。女人打扮的花枝招展,她也还是个女人,但她比素颜女人对男人更加有吸引力。装饰器模式的概念就是这样,通过对具体对象进行不断的装饰,使其具备更强大的能力,但究其本身,依旧还是那个对象类的概念。父子类继承关系,可以从类的层面上扩展对象功能,但是继承本身又让类之间有了耦合联系。装饰器模式可以看作是继承的替代方案之一,它是基于对象层面去扩展新功能。在Java里面,I/O标准库的设计就很好的展示了装饰器模式的魅力,如果有兴趣可以去看

2020-06-13 18:57:01 94

原创 MacOS文件夹名称实现本地化方法

写在前面本人的苹果笔记本是macOS Catalina系统,版本10.15.4。想在~目录新建一个名为Projects的目录,通过Finder访问时显示中文名称“项目”,通过Terminal访问时显示英文。网上有很多教程,实践后发现都不行,应该是和苹果系统及版本有关系。针对本人系统,经过实践后,发现有如下方法可以达到想要的效果。方法步骤关闭SIP打开终端,输入csrutil status命令,查看SIP是否打开。如果显示:System Integrity Protection status:

2020-06-11 00:00:11 393

原创 [Linux应用] 文件类型与文件权限
原力计划

文章标题查看文件类型与权限文件类型文件权限权限对于普通文件的意义权限对于目录的意义数字类型改变权限符号类型改变权限查看文件类型与权限执行ls -al命令就可以查看当前目录下的文件类型与权限:[root@iz2ze42begxd9o6kpi6lu8z ~]# ls -al总用量 18404dr-xr-x---. 12 root root 4096 10月 16 21:29 .dr-xr-xr-x. 18 root root 4096 8月 15 08:21 ..-rw---

2020-05-20 21:58:06 139

原创 [设计模式] 结构型:桥接模式(Bridge Pattern)
原力计划

文章标题什么是桥接模式设计与实现总结什么是桥接模式从字面意思看,“桥接”就是用桥去连接的意思,桥建好后,桥两边的世界就可以相互来往了。岁月更迭,桥本身不会有变化,但是桥两边的世界有无穷的变化,而且,两边的变化彼此独立,互不影响。就像“灯、电线、开关”这样的实际生活场景,电线就是桥,灯和开关就是桥两边的世界,通过电线把灯和开关连接起来工作,这就是桥接模式。灯坏了换灯,开关坏了换开关,而且,想换什么样的就换什么样的,换灯的时候不用考虑开关,换开关的时候不用考虑灯,操作起来能这么方便,全都是电线的功劳。

2020-05-20 13:14:09 178 2

原创 [设计模式] 结构型:适配器模式(Adapter Pattern)

文章目录什么是适配器模式适配器模式设计与实现类适配器对象适配器总结什么是适配器模式想理解适配器模式,就要先知道什么是适配器。手机充电器能够将家用220V电压转换成5V电压,给手机充电,充电器就是个适配器,电压适配器。手机能够感知到适配器提供的5V电压,但却无法感知到适配器背后的220V电压。“适配”就意味着信息转换,将现有信息状态转换成另一种信息状态。做转换工作的就是适配器,目的是为了重用现有的东西。具体到代码设计层面,就是要重复利用现有代码,属于重复利用代码的一种设计模式。适配器模式有一个比

2020-05-18 15:52:17 70

原创 [设计模式] 结构型:代理模式,静态代理、动态代理(Proxy Pattern)
原力计划

文章标题什么是代理模式模式设计与实现静态代理动态代理总结什么是代理模式在公司上班,每月都要缴纳社保,你从来没有自己去社保中心缴纳过,都是由公司人力部门代你缴纳,人力小姐姐就是你的代理人,帮你做了这件事情。火车票由铁路局印售,全国各地都有火车票代售点,你去最近的代售点就能买到你想要的车票,不用跑去铁路局,代售点就是铁路局的代理人,负责代理售卖火车票。我具备做一件事情的能力,但是我又不想亲自做,就招个代理帮我做事情,这就是代理模式。代理模式有两个角色:代理者、被代理者。代理者帮被代理者做事情,被代理者

2020-05-15 18:10:46 83

原创 [数字规律、加减法] 罗马数字转整数

题目描述罗马数字包含以下七种字符:I,V,X,L,C,D和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 ...

2020-05-15 14:02:30 949

原创 [数学、栈] 整数反转

题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为。请根据这个假设,如果反转后整数溢出那么就返回 0。数据样例输入: 123 输出: 321输入: -123 输出: -321输入: 120 输出: 21算法分析如果是一个字符串,怎么反转?使用栈思想,字符顺序入栈再出栈,就能得到反转的字符串。数字也是同理的,使用栈思想,但是多一步溢出的考虑。每一位的数字入栈...

2020-05-14 17:38:07 421

原创 [位运算、异或] 只出现一次的数字

题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。分析常规方法很容易,但是最巧妙最高效的方法应该是位运算,异或操作。异或操作满足三个特性: 任何数和 0做异或运算,结果都是原来的数。 任何数和自身做异或运算,结果都是 0 异或运算满足数学等式上的交换律和结合律 算法代码public int singleNumber(int[] nums) { int num = nums[0]; f.

2020-05-14 16:12:18 853

原创 [设计模式] 创建型:建造者模式(Builder Pattern)

文章标题什么是建造者模式模式设计与实现什么是建造者模式玩过橡皮泥没?玩过乐高积木没?橡皮泥、乐高积木,这两个东西就能充分体现建造者模式的含义。相同的材料,不同的组装思路,能够得到花样的产品模型,这就是建造者模式最核心的思想。建造者模式跟工厂模式很像,因为都是生产对象的模式,所以容易混淆在一起。它们的区别在于:工厂模式侧重于用不同材料生产不同产品,关注材料多样性,不关注组装灵活性建造者模式侧重于用相同材料组装成不同产品,关注组装灵活性,不关注材料多样性模式设计与实现通常情况下,使用建造者模

2020-05-14 14:29:02 86

原创 [设计模式] 创建型:工厂方法模式、简单工厂模式、抽象工厂模式(Factory Pattern)
原力计划

文章目录什么是工厂模式工厂方法模式简单工厂模式抽象工厂模式总结什么是工厂模式富士康生产电子设备,它是个工厂,电子设备是产品。一汽集团生产汽车,它是个工厂,汽车是产品。大连造船厂生产航母,它是个工厂,航母是产品。我翻阅了很多书籍,也浏览了很多博客,总结一下,工厂模式大致可以细分为三种:工厂方法模式简单工厂模式抽象工厂模式这么多年,一直有个问题萦绕在我心里,从未得到过能让我信服的答案:简单工厂模式、抽象工厂模式,这两者到底有什么区别?最近,我又系统的复习了一遍设计模式,没有局限于设计模

2020-05-13 21:33:09 254

原创 [JDK8] HashMap源码解析
原力计划

文章标题写在前面底层存储结构构造HashMaptableSizeFor(int cap)HashMap添加/更新hash(key)putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict)treeifyBin(Node<K,V>[] tab, int hash)resize()HashMap删除HashMap查找线程安全写在前面HashMap的实现思想太有含金量了,方方面面都有值得细细品鉴的,想用一篇文章分析透彻

2020-05-12 16:37:21 153

原创 [设计模式] 创建型:原型模式(Prototype Pattern)
原力计划

文章目录什么是原型模式原型模式的实现思路clone()序列化原型模式的实现代码浅克隆深克隆原型模式的优缺点优点缺点什么是原型模式听说过克隆技术吧?再通俗点,就是复制。原型模式就是代码里面的克隆技术,把一个已经实例化的对象当作原型,克隆出一个跟它相同的对象。可以采用new方式构造一个新对象,再把原型对象的内部状态拷贝过来,达到复制原型对象的目的,但是这就涉及关心到了原型内部,没有克隆模式来的简单直接。原型模式的实现思路从是否具备克隆能力的角度看,有两种实现思路:原型自身具备克隆能力,就像孙悟空

2020-05-09 15:35:57 76

原创 [计算机原理] 字符编码的发展历史
原力计划

文章目录什么是字符编码ASCII扩展字符集计算机来到中国以后Unicode 全球化进程UTF-X 家族写在后面什么是字符编码计算机的最小存储单元是二进制位,叫做bit,可以表示0和1两种状态,8个连续的二进制位组合出一个字节,叫做byte,可以表示出256种状态,二进制是00000000到11111111,十进制是0 ~ 255。明确两个概念:字节是计算机存储数据的基本单位!字符是人类文明创造的符号,汉字、英文字母、标点符号、特殊符号都是字符。字符编码就是在字节和字符之间建立一个映射关系!使

2020-05-08 01:02:43 273

原创 [设计模式] 创建型:单例模式(Singleton Pattern)

文章目录什么是单例模式单例模式的实现饿汉模式懒汉模式线程不安全线程安全什么是单例模式单例就是单个对象的意思,指在系统运行期间,一个类最多只能创建一个对象,且该类能自行创建这个对象的一种编码设计模式。单例模式有两个特点:在系统的整个生命周期内,单例对象最多只能有一个单例对象必须由单例类自行创建,并对外提供访问入口一个类可以创建多个对象,这是面向对象的语言特性,想要实现单例模式,就要屏蔽这个特性,防止系统可以随意创建类的对象。要做到这一点,通常做法就是利用private关键字将类的构造方法私有

2020-05-06 10:25:50 227

原创 [JDK8] ArrayList源码解析
原力计划

源码分析目录类图结构存储结构ArrayList初始化新增对象与数组扩容删除对象查找对象线程安全性VectorSynchronizedListCopyOnWriteArrayList类图结构ArrayList是对List列表数据结构的一种具体实现,先放一张源码类图结构,有个直观的印象,该图是Java集合Collection类图的一个子集:存储结构transient Object[] elementData;ArrayList实例本身只是一个普通的Java对象,它的内部封装了一个数组,添加到Arr

2020-04-29 16:20:33 165

原创 [排序算法] 各类经典排序算法(动态图,Java实现)
原力计划

常见排序算法基于比较的排序算法冒泡排序1. 算法描述2. 动图演示3. 代码实现选择排序1. 算法描述2. 动图演示3. 代码实现插入排序1. 算法描述2. 动图演示3. 代码实现归并排序 (非递归实现)1. 算法描述2. 动图演示3. 代码实现快速排序 (递归实现)1. 算法描述2. 动图演示3. 代码实现不基于比较的排序算法:计数排序1. 算法描述2. 动图演示3. 代码实现桶排序1. 算法描...

2020-04-27 19:33:09 206

原创 [JDK8] Java单线程框架实现原理

文章标题Java单线程有三种实现方法Java的单线程框架第一种方法:继承Thread类第二种方法:实现Runnable接口第三种方法:实现Callable接口Java单线程有三种实现方法继承Thread类,重写run(),无返回值实现Runnable接口,重写run(),无返回值实现Callable<V>接口,重写call()方法,有返回值Java的单线程框架这三种实现方式都是套用的一个线程框架,以下是简化的Thread类源码:// 线程任务定义接口public interf

2020-04-22 14:48:46 77

原创 [JDK8] Java线程的几种使用方法
原力计划

文章目录单线程的使用方式java.lang.Runnablejava.lang.Threadjava.util.concurrent.FutureTask线程池的使用方式创建线程池提交线程任务关闭线程池单线程的使用方式java.lang.Runnable代码实现方式:构造线程任务类MyRunnable,实现Runnable接口以MyRunnable对象为参数,构造线程Thread实例public class MyRunnable implements Runnable { @Overrid

2020-04-19 19:18:06 503

原创 为什么重写equals()就必须重写hashcode()

JVM是从内存角度看对象的,内存一样的对象才算是相等的,所以,内存的唯一性决定了对象只能是“自己和自己才是相等的”。Java的“==”规则是个内存判断,默认的equals()也使用了“==”规则:/** * 该方法应该满足五个条件: * 1、自反性:任意对象x,x.equals(x)==true * 2、对称性:任意对象x、y,如果x.equals(y)==true,那么,y.eq...

2020-04-12 21:10:30 65

原创 字符串首字母变大写(Java版)

无意中在网上看到这个算法,经测试,确实比一般算法更为高效 public static String toUpperFristChar(String string) { char[] charArray = string.toCharArray(); charArray[0] -= 32; return String.valueOf(charArray); }巧用ASCII编码进行

2015-09-14 17:17:16 8152 4

原创 [c3p0] 第二篇:使用c3p0

前言译文是根据c3p0-0.9.5.1版本的官方文档,加上自己的理解,整理翻译而成。能力有限,译文内容如果有误或是理解有偏差,还请大家纠正!使用c3p0从用户的角度看,c3p0只是简单的为用户提供符合jdbc标准的DataSource对象。当创建这些DataSource对象的时候,用户可以控制与其相关的各种属性。一旦DataSource创建完成,DataSour

2015-08-30 13:40:50 3490

ATM控制台程序(C++)

1、C++语言,使用VC++ 6.0编写的控制台程序,已调试通过,可以正常运行; 2、实现了“登录”“注册”“存款”“取款”“查询余额”“转账”“修改密码”“退出”八项功能; 3、密码明文,没有实现隐藏输入功能; 4、以下源码仅供大家参考!

2013-09-15

C++编写ATM控制台程序

C++语言,使用VC++ 6.0编写的控制台程序,已调试通过,可以正常运行; 实现了“登录”“注册”“存款”“取款”“查询余额”“转账”“修改密码”“退出”八项功能; 密码明文,没有实现隐藏输入功能; 仅供大家参考!

2013-09-12

C-C++使用技巧1001例

有关于C和C++的一些编程小技巧,平日里没事的时候可以打开看看,用心揣摩揣摩,时间长了自然会有收获,适合于初学者。

2013-08-06

图片验证码项目demo(kaptcha)

Java语言,Spring Boot项目,Vue页面,Maven管理,用kaptcha做的图片验证码demo,下载后解压,只要本地环境正常,就可直接运行:mvn spring-boot:run 访问地址:http://localhost:8080/

2020-05-07

Eclipse中html标签提示是大写的,怎么改成小写的?

发表于 2014-04-25 最后回复 2015-07-10

Dos下编译运行java,怎样快速打开Dos窗口?

发表于 2013-07-30 最后回复 2013-08-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除