自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 JVM —— 类加载器子系统

类加载的过程 加载 通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法去运行时的数据结构 在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的访问入口; 链接 验证 目的在于确保 Cla...

2020-06-21 11:27:36 38 0

原创 运输层:帮你理解TCP、UDP的相关知识
原力计划

运输层位于网络层之上、应用层之下,向它上面的应用层提供通信服务;属于面向通信部分的最高层,也是用户功能中的最底层。 从网络层来说,通信的两端是主机;IP数据报的搜捕明确标志了两个主机的IP地址,但是这种说法还不够清楚。通常一个主机中会同时有多个应用程序,数据发送给主机之后又将要发送给哪个应用程...

2020-05-29 10:52:46 155 0

原创 一篇文章帮你理解网络层功能
原力计划

文章目录虚电路服务和数据报服务数据报服务虚电路服务网际协议IPIP地址的分类IP地址与硬件地址地址解析协议ARPIP数据报的格式IP层的转发分组 网络层位于数据链路层之上,运输层之下;也就是说网络层是基于数据链路层的服务为运输层提供服务的。 虚电路服务和数据报服务 虚电路服务和数据报是网络层所...

2020-05-28 09:09:30 317 0

原创 一篇文章帮你搞清楚数据链路层在网络中的作用
原力计划

文章目录封装成帧透明传输字符计数法字符填充法零比特填充法违规编码法差错控制循环冗余检验CRC海明码(汉明码)流量控制停止等待协议滑动窗口协议可靠传输传输数据使用的链路使用点对点信道(PPP协议)使用广播信道(CSDA/CD协议) 计算机网络是很重要的一部分知识,之前也认为很难,因为要分那么多层(...

2020-05-27 08:13:27 116 0

原创 理解摩尔投票法

算法题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字(数组非空,一定存在这个数字)。 摩尔投票法算法的本质思想就是:抵消,抵消,抵消,到不能再抵消为止。 首先,我们先来了解一下是如何抵消的,抵消就是让数组中任意两个不同的元素进行抵消,一直抵消到最后剩下的就是出现次数唱过数组...

2020-05-25 09:25:11 68 0

原创 数据链路层功能总结【轻松理解数据链路层】

计算机网络是很重要的一部分知识,之前也认为很难,因为要分那么多层(五层或七层),而且每一层还有自己的功能和协议,一大堆的东西很不好学;但是后来发现了一个很好的学习方法,就是先熟悉每一层的作用,然后再顺着思考他为了实现这个功能要怎么办?要使用哪些协议?这样不仅能帮助很好的理解,也能很高效的去学习。 ...

2020-05-22 17:51:22 142 0

原创 通过前、中、后序遍历序列中的任意两个构造二叉树【Java实现】

二叉树的前序、中序和后序遍历是二叉树学习中的一个重点,也是二叉树中很基础的一部分,需要我们熟练的运用;通常已知二叉树,很多同学都能很轻松的得到其前序、中序和后序遍历的队列,甚至层序遍历也不在话下,如果是反过来呢?如果是理解不够的同学就会觉得头疼,有点不知道怎么下手,这里我将分享一下我的汇总,可能方...

2020-05-20 13:56:13 69 0

原创 HTTP和HTTPS的区别【面试常考】

这个是根据查阅别人的博客,并结合自己的思想总结的,发出来是对自己的检验也希望可以帮到大家;如有错误欢迎指出 HTTP和HTTPS是计算机网络中很重要的知识点,面试的时候很容易被问他们的区别,可能每个人都会有自己理解; HTTP是明文传输的,传输过程中容易被拦截、修改或者伪造请求;HTTPS则...

2020-05-19 23:53:05 234 0

原创 循环队列的相关条件和公式

已知图个循环队列,队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度;则: 队空条件:rear==front 队满条件:(rear+1)%QueueSize==front 计算队列长度:(rear-front+QueueSize)%QueueSize 入队:(...

2020-05-12 21:21:09 27 0

原创 不使用乘除和任何判断、循环计算1+2+...+n【逻辑符短路】

题目来自于《剑指offer(第2版)》,原题是: 求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 首先,如果我们只是求1+2+...+n的话,正常情况下会有三种方法:公式计算、迭代、递归 //方...

2020-05-10 10:22:40 35 0

原创 数据结构查找算法

查找算法 查找表是由同一类型的数据元素构成的集合。 静态查找表和动态查找表: 静态查找表:在查找表中只做查找操作,而不改动表中的数据元素 动态查找表:在查找表中做查找操作的同时还进行插入数据和删除数据的操作 平均查找长度(SAL):查找成功时,查找的关键字和查找表中的数据元素中进行...

2020-05-10 09:35:44 72 0

原创 数据结构之B-树、B+树

1、B-树 一颗 m 阶的 B-树,或者本身是空树,否则必须满足以下特性: 树中每个结点至多有 m 棵子树; 若根结点不是叶子结点,则至少有两棵子树; 除根之外的所有非终端结点至少有棵子树; 所有的非终端结点中包含下列信息数据:(n,A0,K1,A1,K2,A2,…,Kn,An);...

2020-05-10 09:35:09 97 0

原创 数据结构查找算法之红黑树

基本概念 红黑树,本身是一棵二叉查找树,在其基础上附加了两个要求: 树中的每个结点增加了一个用于存储颜色的标志域; 树中没有一条路径比其他任何路径(指的是从任何一个结点开始,一直到其子孙的叶子结点的长度)长出两倍,整棵树要接近于“平衡”的状态。 红黑树对于结点的颜色设置不是任意的,需...

2020-05-09 16:10:16 35 0

原创 数据结构查找算法之平衡二叉树【附Java代码实现,图解】

平衡二叉树,又称为 AVL 树。实际上就是遵循以下两个特点的二叉树: 每棵子树中的左子树和右子树的深度差不能超过 1; 二叉树中每棵子树都要求是平衡二叉树; 平衡因子:每个结点都有其各自的平衡因子,表示的就是其左子树深度同右子树深度的差。平衡二叉树中各结点平衡因子的取值只可能是:0、1...

2020-05-09 10:36:03 70 0

原创 数据结构查找算法之二叉查找树(二叉排序树)【附Java代码实现,图解】

基本思想:二叉查找树是先对待查找的数据进行生成树,确保树的左分支的值小于右分支的值,然后在就行和每个节点的父节点比较大小,查找最适合的范围。 这个算法的查找效率很高,但是如果使用这种查找方法要首先创建树。 二叉查找树或者是空树,或者是具有以下特征: 若任意节点的左子树不空,则左子树上所有结点的...

2020-05-08 22:13:23 66 0

原创 数组地址计算

1、一维数组 设数组为A = a1,a2,a3,a4…ai…an; 每个数据元素占d个存储单位,则元素a[i]的存储地址为 Loc(A[i])=Loc(A[1])+(i−1)∗dLoc(A[i])=Loc(A[1])+(i−1)∗d Loc(A[i]) = Loc(A[1]) + (i-1)*dL...

2020-05-07 10:17:36 108 0

原创 图解设计模式+代码(六):行为型模式

访问者模式 1、定义与特点 定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。 优点: 扩展性好。能够...

2020-05-06 08:44:23 27 0

原创 通过位运算实现加法(不使用加减乘除实现加法)

能否不使用加减乘除而实现两数的相加呢? 当然可以,接下来将以最简单的方式理解用位运算实现两数相加。 首先,十进制的加法大家都非常熟悉,下面我们将十进制的加法进行解析,可分为下面这三步: 将数字的各位分别相加,先不管进位的问题 计算产生进位的数字 把上面两步的结果进行相加 例如: ...

2020-05-05 21:52:57 100 0

原创 图解设计模式+代码(五):行为型模式

状态模式 1、定义与特点 定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 优点: 状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。 减少对象间的相互依赖。将不同的状...

2020-05-05 16:25:48 35 0

原创 图解设计模式+代码(四):行为型模式

模板方法模式 1、定义与特点 定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式 优点: 它封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实现,而把可变部分算法由子类继承...

2020-05-05 16:18:53 88 0

原创 图解设计模式+代码(三):结构型模式

外观模式 迪米特法则的典型应用 1、定义与特点 定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 优点: 降低了子系...

2020-05-03 20:40:06 87 0

原创 图解设计模式+代码(二):结构型模式

代理模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 1、定义与特...

2020-05-02 08:46:26 56 0

原创 图解设计模式+代码(一):创建型模式
原力计划

单例设计模式 指一个类只有一个实例,且该类能自行创建这个实例的一种模式 Java中Runtime的源码就是使用单例模式实现的,初次之外还有Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、数据库的连接池、网站的计数器...

2020-05-01 09:31:58 118 0

原创 简单理解类之间的关系、UML图

1、依赖 依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。依赖关系使用带箭头的虚线来表示 只要是在类中用到了对方,那么他...

2020-04-30 15:56:57 31 0

原创 设计模式分类

1、根据目的来分 a、创建型模式 用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离” 单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。 b、结构型模式 用于描述如何将类或对象按照某种布局组成更大的结构 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、...

2020-04-30 15:47:49 28 0

原创 设计模式的七大原则

设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么这样设计的依据) 1、单一职责原则 基本介绍: 对类来说的,即一个类应该只负责一项原则。如果类A负责两个不同的职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类...

2020-04-30 09:07:47 51 0

原创 类加载机制

1、阶段划分 JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。 a、加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一...

2020-04-29 20:14:54 26 0

原创 Java IO/NIO

1、阻塞IO模型 最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内 核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用 户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才...

2020-04-29 20:11:31 37 0

原创 GC垃圾回收器

Java 堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法; 年老代主要使用标记-整理垃圾回收算法,因此 java 虚拟中针对新生代和年老代分别提供了多种不 同的垃圾收集器,JDK1.6 中 Sun HotSpot 虚拟机的垃圾收集器如图 1、Serial 垃圾收...

2020-04-29 09:37:49 31 0

原创 Java四种引用类型

1、强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即 使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之 一。 2、...

2020-04-26 14:46:35 27 0

原创 Java虚拟机垃圾回收与算法

1、如何确定垃圾 引用计数法:在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。 ...

2020-04-26 14:43:01 21 0

原创 Java虚拟机运行时内存

1、新生代 是用来存放新生的对象。一般占据堆的 1/3 空间。由于频繁创建对象,所以新生代会频繁触发 MinorGC 进行垃圾回收。新生代又分为 Eden 区、ServivorFrom、ServivorTo 三个区 Eden区 Java 新对象的出生地(如果新创建的对象占用内存很大,则...

2020-04-26 10:11:01 50 0

原创 Java虚拟机的内存区域

1、程序计数器(线程私有) 一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的 程序计数器,这类内存也称为“线程私有”的内存。 正在执行 java 方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果还是 Native 方法,则为空。 这个...

2020-04-26 10:06:35 43 0

原创 详细的十大经典排序算法总结

欢迎大家在语雀进行学习交流

2020-03-23 10:31:11 29 0

转载 码云的初次使用

文章目录 下载Git 码云官网注册 初始化 第一次上传代码到git 通过这篇博客成功使用了码云:https://blog.csdn.net/ai1362425349/article/details/82119889 现在整理一下,方便以后复习。 下载Git 可以去官网下载,但是我...

2019-07-15 09:09:58 90 0

原创 在eclipse里面配置Tomcat和web项目文件

Fibonacci数列

2019-07-10 09:50:08 31 0

原创 蓝桥杯--十进制转十六进制--Java代码

问题描述   十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进...

2019-07-08 15:02:23 39 0

原创 蓝桥杯--十六进制转十进制--Java代码

问题描述   从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。   注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535 首先,先讲一下公式(该公式适合运用于任何进制转十进制):...

2019-07-08 10:56:28 43 0

原创 蓝桥杯--数列排序--Java代码

问题描述   给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式   第一行为一个整数n。   第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式   输出一行,按从小到大的顺序输出排序后的数列。样例输入 5 8 3 6 ...

2019-07-07 21:44:56 81 0

原创 蓝桥杯--Fibonacci数列--Java代码

问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10...

2019-07-07 21:22:07 42 0

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