自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(242)
  • 收藏
  • 关注

原创 HashMap源码分析(JDK1.8)

一、HashMap简介基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许key和value为null(但是只能有一个key为null,且key不能重复,value可以重复)。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基...

2018-11-16 11:41:16 722

原创 适配器模式(Adapter)

1.简述适配器模式就是将一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。下面这个例子很好的说明了适配器的作用2.角色 目标角色(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 源角色(Adaptee)也就是被适配的类:需要适配的类或适配者类。 适配器角色(Adapter):通过包装一个需要适配...

2018-10-30 13:25:51 368

原创 策略模式(Strategy)

1.简述策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。2.角色Context(应用场景):需要使用ConcreteStrategy提供的算法。内部维护一个Strategy的实例。负责动态设置运行时Strategy具体的实现算法。负责跟Strategy之间的交互和数据传递。 Strategy(抽象策略类):定义...

2018-10-29 15:38:14 396

原创 Object类clone方法深度解析

首先我们来看下clone方法的源码protected native Object clone() throws CloneNotSupportedException;通过源代码可以发现几点:clone方法是native方法,native方法的效率远高于非native方法,因此还是使用clone方法去做对象的拷贝而不是使用new的方法,copy。 此方法被protected修饰。这...

2018-10-28 17:07:23 874

原创 桥接模式(Bridge)

1.简述桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。将抽象部分与他的实现部分分离这句话不是很好理解,其实这并不是将抽象类与他的派生类分离,而是抽象类和它的派生类用来实现自己的对象。这样还是不能理解的话。我们就先来认清什么是抽象化,什么是实现化,什么是脱耦。抽象化:从众多...

2018-10-28 12:36:01 365

原创 模板方法模式(Template)

1.简述模板模式:定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。2.角色角色1:抽象模板(Abstract Template)角色有如下责任定义了一个或多个抽象操作,以便让子类实现。这些抽象操作叫做基本操作,它们是一个顶级逻辑的组成步骤。 定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一...

2018-10-28 10:52:26 355

原创 抽象工厂模式(Abstract Factory)

抽象工厂模式:1.简介    抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不...

2018-10-26 16:55:58 366

原创 单例模式(Singleton)

单例模式: 1、简介: 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。 2、...

2018-10-23 17:18:09 437

原创 工厂方法模式(Factory Method Pattern)

工厂方法简介:工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。工厂方法模式是简单工厂模式的衍生(简单工厂模式请见连接:https://bl...

2018-10-22 18:42:09 301

原创 归并排序

归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。基本思路:        先递归的把数组划分为两个子数组,一直递归到数组中只有一个元素,然后再调用函数把两个子数组排好序。再依...

2018-10-20 13:15:12 346

原创 Shell(希尔)排序

shell排序算法描述:我们简单处理增量序列:增量序列d = {n/2 ,n/4, n/8 …..1} n为要排序数的个数 ,即:先将要排序的一组记录按某个增量d(n/2,n为要排序数的个数)分成若干组子序列,每组中记录的下标相差d。对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。继续不断缩小增量直至为1,最后使用直接插入排序完成排序...

2018-10-18 17:08:54 388

原创 图解快速排序

快速排序是冒泡排序的改进版,也是最好的一种内排序,在很多面试题中都会出现,也是作为程序员必须掌握的一种排序方法。算法思想:1.在待排序的元素任取一个元素作为基准(通常选第一个元素)称为基准元素;2.将待排序的元素进行分区,比基准元素大的元素放在它的右边,比其小的放在它的左边; 3.对于基准元素左边的元素进行上述步骤的递归调用进行排序,基准元素右边的元素也是如此。你可以把快速排序...

2018-10-18 14:38:43 568 1

原创 字节跳动校招内推

字节跳动内推

2022-07-14 20:36:01 1313 3

原创 LeetCode146. LRU缓存机制

题目来源:https://leetcode-cn.com/problems/lru-cache/submissions/题目描述:代码如下:方式一:LRU实现手段就是哈希表+链表,而LinkedHashMap正好存在该特性。因此利用LinkedHashMap即可实现该功能。import java.util.LinkedHashMap;import java.util.M...

2019-09-20 12:20:26 457

原创 剑指Offer(牛客网)-替换空格

题目来源:https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-08-06 17:30:05 363

原创 剑指Offer(牛客网)-矩阵中的路径

题目来源:https://www.nowcoder.com/practice/c61c6999eecb4b8f88a98f66b273a3cc?tpId=13&tqId=11218&tPage=4&rp=4&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-08-05 15:04:01 337

原创 剑指Offer(牛客网)-滑动窗口的最大值

题目来源:https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788?tpId=13&tqId=11217&tPage=4&rp=4&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-08-05 15:03:52 303

原创 剑指Offer(牛客网)-树的子结构

题目来源:https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&tqId=11170&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-08-03 22:39:23 279

原创 剑指Offer(牛客网)-机器人的运动范围

题目来源:https://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8?tpId=13&tqId=11219&tPage=4&rp=4&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-08-03 22:39:08 195

原创 剑指Offer(牛客网)-数据流中的中位数

题目来源:https://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1?tpId=13&tqId=11216&tPage=4&rp=4&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-08-03 22:38:15 226 1

原创 剑指Offer(牛客网)-二叉搜索树的第k个结点

题目来源:https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a?tpId=13&tqId=11215&tPage=4&rp=4&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-08-01 22:09:20 188

原创 剑指Offer(牛客网)-扑克牌顺子

题目来源:https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4?tpId=13&tqId=11198&tPage=3&rp=2&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-08-01 22:09:16 217

原创 剑指Offer(牛客网)-翻转单词顺序列

题目来源:https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3?tpId=13&tqId=11197&tPage=3&rp=2&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-08-01 22:09:14 186

原创 JVM的Client端和Server端的区别

JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。JVM工作在Server模式下可以大大提高性能,Server模式下应用的启动速度会比client模式慢大概10%,但运行速度比Client VM要快至少有10倍。当不指定运行模式参数时,虚拟机启动检测主机是否为服务器,如果是,则以Server模式启动,...

2019-07-31 16:02:02 2382

原创 剑指Offer(牛客网)-序列化二叉树

题目来源:https://www.nowcoder.com/practice/cf7e25aa97c04cc1a68c8f040e71fb84?tpId=13&tqId=11214&tPage=4&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-31 15:25:41 183

原创 剑指Offer(牛客网)-把二叉树打印成多行

题目来源:https://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288?tpId=13&tqId=11213&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-07-31 15:25:29 159

原创 剑指Offer(牛客网)-按之字行顺序打印二叉树

题目来源:https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0?tpId=13&tqId=11212&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-07-31 15:25:15 172

原创 剑指Offer(牛客网)-二叉树的下一个结点

题目来源:https://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e?tpId=13&tqId=11210&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-27 15:27:29 145

原创 剑指Offer(牛客网)-删除链表中重复的结点

题目来源:https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef?tpId=13&tqId=11209&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-24 00:18:55 186

原创 剑指Offer(牛客网)-链表中环的入口结点

题目来源:https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4?tpId=13&tqId=11208&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-07-24 00:03:31 212

原创 剑指Offer(牛客网)-字符流中第一个不重复的字符

题目来源:https://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720?tpId=13&tqId=11207&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-07-23 23:41:49 144

原创 剑指Offer(牛客网)-对称的二叉树

题目来源:https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb?tpId=13&tqId=11211&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-23 00:38:08 156

原创 剑指Offer(牛客网)-构建乘积数组

题目来源:https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46?tpId=13&tqId=11204&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-23 00:22:42 127

原创 剑指Offer(牛客网)-数组中重复的数字

题目来源:https://www.nowcoder.com/practice/623a5ac0ea5b4e5f95552655361ae0a8?tpId=13&tqId=11203&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-22 23:51:34 178

原创 剑指Offer(牛客网)-把字符串转换成整数

题目来源:https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&tqId=11202&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-22 23:10:55 257

原创 剑指Offer(牛客网)-不用加减乘除做加法

题目来源:https://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215?tpId=13&tqId=11201&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-22 22:33:45 139

原创 剑指Offer(牛客网)-求1+2+3+...+n

题目来源:https://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1?tpId=13&tqId=11200&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-22 22:00:10 136

原创 剑指Offer(牛客网)-孩子们的游戏(约瑟夫环问题)

题目来源:https://www.nowcoder.com/practice/f78a359491e64a50bce2d89cff857eb6?tpId=13&tqId=11199&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:...

2019-07-22 21:36:55 255

原创 剑指Offer(牛客网)-左旋转字符串

题目来源:https://www.nowcoder.com/practice/12d959b108cb42b1ab72cef4d36af5ec?tpId=13&tqId=11196&tPage=3&rp=2&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-22 00:26:54 154

原创 剑指Offer(牛客网)-和为S的两个数字

题目来源:https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b?tpId=13&tqId=11195&tPage=3&rp=2&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rank...

2019-07-22 00:11:48 145

空空如也

空空如也

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

TA关注的人

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