自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小黄人的博客

海纳百川,从菜鸟做起

  • 博客(39)
  • 收藏
  • 关注

原创 TCP三次握手和四次挥手.md

文章目录TCP三次握手和四次挥手1 三次握手1.1 基础知识1.2 三次握手过程1.3 现实场景2 四次挥手2.1 基础知识2.2 四次挥手过程2.3 现实场景TCP三次握手和四次挥手1 三次握手1.1 基础知识SYN(SYNchronization):同步序号,用来建立连接。SYN标志位和ACK标志位搭配使用,当SYN=1,ACK=0,表示连接请求;当SYN=1,ACK=1,表示连接...

2018-10-05 21:57:17 673

原创 浏览器输入URL全过程.md

文章目录浏览器输入URL全过程1 DNS域名解析2 建立TCP链接3 发送HTTP请求4 服务器处理请求5 返回响应结果6 关闭TCP连接7 浏览器解析渲染页面浏览器输入URL全过程1 DNS域名解析当我们在浏览器输入如同www.baidu.com的时候,其实这些网站的名字都是为了简化人们的记忆来命名的,计算机其实并不认识个东西,浏览器只认识IP地址,所以当输入域名地址时,浏览器首先去本地h...

2018-10-05 21:38:10 1309

原创 Java异常处理

文章目录异常处理1 异常处理的优势2 异常类型2.1 系统错误(Error)2.2 异常(Exception)2.3 运行时异常(RuntimeException)3 免检异常和必检异常异常处理1 异常处理的优势异常处理最根本的优势是将检测错误(由被调用的方法完成)从处理错误(由调用方法完成)中分离出来。2 异常类型Throwable类是所有异常类的根。所有的Java异常类都直接或间接地...

2018-10-04 22:37:55 252

原创 数组排序.md

文章目录1 排序相关1.1 冒泡排序1.1.1 传统冒泡1.1.2 升级版(设置判断标志位)1.2 选择排序1.3 插入排序1.3.1 直接插入排序1.3.2 希尔排序1.4 快速排序1 排序相关稳定性:通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。1.1 冒泡排序1.1.1 传统冒泡 /** * 冒泡排序算法(从小到大...

2018-10-04 15:27:58 673

原创 数据库学习-事务

1 事务1.1 什么是事务事务可以理解为一个独立的工作单元, 在这个独立的工作单元中, 有一组操作,放在事务(独立工作单元)中的多个操作, 要么全部执行成功, 要么全部执行失败。事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。1.2 ACID(事务四大特性)1.2.1 原子性(Atomicity)事务被视为不可...

2018-09-24 15:22:35 300 1

原创 银行家算法(战争举例、便于理解)

1 银行家算法操作系统的进程可以动态地申请资源,但系统在进行资源分配之前,应先计算此次资源分配的安全性。(若此次分配为安全的,操作系统则将资源分配给进程,否则令进程等待)避免死锁的实质在于:系统在进行资源分配时,如何使系统不进入不安全状态。1.1 举例理解战争举例:大将军(操作系统)有一个部队(代分配的资源),当然部队中有各种兵种(弓箭手、骑兵等,每个兵种就能完成特定的战争)人有若干(人...

2018-09-22 11:52:19 1518

原创 数据库学习-范式.md

1 数据库的范式范式:符合是一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。通俗点讲就是一张数据表的表结构所符合的某种设计标准的级别。目前数据库的范式共有6中,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF)。第二范式是在第一范式的基础上,第三范式是在第二范式的基础上,依次递推。1.1...

2018-09-21 19:57:05 405

原创 抽象类和接口

1 抽象类和接口1.1 抽象类1.1.1 抽象方法首先说到抽象类那么我们来说说抽象方法,抽象方法是一种特殊的方法,它只有声明,没有具体的实现:abstract void fun();抽象方法必须用abstract字进行声明;如果有一个类有抽象方法,那么这个类就是抽象类。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。(不能new)抽象类中也可以不声明一个抽象方法。1....

2018-09-21 11:47:08 174

原创 内部类知识.md

1 内部类内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。所以内部类的成员变量/方法名可以和外部类的相同。1.1 成员内部类成员内部类是外部类的成员,可以直接使用外部类的成员和方法,即使是private。外部类要访问内部类的所有成员...

2018-09-21 10:43:45 199

原创 判断素数.md

1 判断素数素数就是一个数被除数除了1和它本身就没有其他被除数了(1除外,1不是素数)1.1 常规判断素数的方法 /** * 常规判断素数的方法 * 从2遍历如果到这个数之前都不可被整除,则该数为素数 * @param num * @return */ public boolean isPrimeNum(int num) { if(num <=1) { ...

2018-09-20 18:43:00 358

原创 拓扑排序.md

1 拓扑排序1.1 什么是拓扑排序在图论中,拓扑排序是一个有向无环图(必须条件)的所有顶点的进行排序的线性序列。而且序列必须满足两个条件:每个顶点只出现一次;若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。如图就可以进行拓扑排序:1.2 进行排序排序序列:1 ,2, 4, 3, 5;排序规则每次循环都是找到入度为0的点,对这个点进行...

2018-09-20 15:01:53 335

原创 Map的遍历方法.md

1 Map的遍历方法Map的遍历方法总是写了忘,忘了再记,在这再总结一波。1.1 使用entries来遍历(推荐) /** * 使用Map的内部类来遍历map */ public void mapErgodicByEntries(Map<String, String> map) { for(Map.Entry<String,...

2018-09-20 10:38:32 243

原创 Http的Get请求和Post请求的区别.md

1 Http的Get请求和Post请求的区别get是从服务器获取数据,post是发送数据到服务器。get参数通过URL传递,post参数放在Request body中。所以:get比post更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。所以:get的url可以存为书签,post的url不可以存为书签。GET请求在URL中传送的参数是有长度限制的,而POST没...

2018-09-19 19:12:38 506

原创 设计模式学习笔记3-代理模式.md

1 设计模式学习笔记3-代理模式代理的作用就是让我们关注自己的正事,其他的事情由代理商来帮我们办。举个栗子:我们要去买火车票,但是一般买火车票都需要去火车站去购买,这样大大加大了我们购票的难度,也给我们增加了很多的负担,所以这时就有代理这个概念出现了,就是我们买火车票不需要去车站了而是找一个就近的代理商,在代理商这里直接购买火车票,其余的杂事(如怎么去火车站,排队等)都交给代理来帮我们完成,这...

2018-09-19 16:35:19 187

原创 Spring的IOC和AOP的理解.md

1 Spring IOC和AOP理解1.1 Spring IOC理解(反射实现)控制反转/依赖注入IOC是遵循了软件设计理念的依赖倒转原则以及接口隔离原则,面向对象的设计就是为了而实现软件的更好的复用性和扩展性。1.1.1 接口隔离原则(面向接口编程)如果A要使用B的实例那么不要直接在A中对B进行初始化,而是在A中定义一个接口(Interface),让B去实现这个接口(Interface...

2018-09-19 11:36:35 269

原创 设计模式学习笔记2-单例模式

1 单例模式1.1 懒汉式(线程不安全)public class Singleton { private static Singleton instance; private Sinleton() { } public static Singleton getInstance() { if(instance == null) {...

2018-09-17 16:05:14 169

原创 Hibernate缓存机制

1 Hibernate缓存机制1.1 why(为什么用Hibernate缓存)首先为什么要用缓存,我们都知道Hibernate是一个持久层框架,我们利用Hibernate来访问数据库,每次访问数据都会花费时间,这时为了降低访问的次数,我们就利用了缓存来提高应用程序的运行性能。缓存中的是数据是对数据源中的数据的一个复制,应用程序访问数据时先读缓存,如果缓存中没有得到想要的的数据,再从...

2018-09-15 19:13:02 160

原创 JVM学习笔记5-虚拟机类加载机制

摘自《深入理解Java虚拟机》第二版虚拟机类加载机制Java从代码到最终执行,一般需要两个过程:编译运行编译:把Java文件通过javac命令变异成字节码,也就是.class文件。运行:把编译好的.class文件交给JVM运行。这里说的类加载过程指的是JVM把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。1 类加载过程类...

2018-09-07 22:00:01 211

原创 Java 二叉树的遍历方式(前序、中序、后序的递归与非递归,广度遍历)

示例树(下面的所有代码都基于此树型结构) 先序遍历所谓的先序遍历指的就是先遍历根节点再遍历左节点最后遍历右节点。 用先序遍历遍历示例树过程 1.ABC 2.ABDC 3.ABDCE...

2018-09-06 17:16:00 216

原创 JVM学习笔记4-垃圾回收之垃圾回收算法

摘自《深入理解Java虚拟机》第二版1 垃圾回收算法1.1 标记-清除算法算法分为两个阶段,标记和清除,首先标记出所有需要回收的对象,在标记完成后统一收回所有被标记的对象。该算法主要有连个不足:第一就是标记和清除的效率都不高;第二就是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不...

2018-09-04 15:00:04 235

原创 JVM学习笔记3-垃圾回收之对象的死活

摘自《深入理解Java虚拟机》第二版1 对象的死活1.1 引用计数算法引用计数法算:给对象添加一个引用计数器,每当一个地方引用它是,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。但在主流的Java虚拟机中并没有选择引用计数算法来管理内存,其中最主要的原因是它很难解决对象间相互循环引用的问题,比如:在对象A和对象B中都有字段ins...

2018-09-03 10:55:42 147

原创 JVM学习笔记2-HotSpot对象探秘

摘自《深入理解Java虚拟机》第二版1 HotSpot虚拟机对象探秘1.1 对象的创建1.1.1 类加载检查虚拟机遇到一条new指令时,首相去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否被加载、解析和初始化过。如果没有则必须先进行相应类的类加载过程。1.1.2 新生对象分配内存(分配方法:指针碰撞、空闲列表)​ 在类...

2018-09-02 17:19:45 195

原创 JVM学习笔记1-运行时数据区域

本文摘自《深入理解Java虚拟机》第二版1 运行时数据区域​ Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。​ 如:方法区、虚拟机栈、本地方法栈、堆、程序计数器。1.1 程序计数器(线程私有)​ 程序计数器可以看做当前线程所执行字节码的行号指示器。在虚拟机的概念模型中,字节码指示器就是通过改变这个计数器的值来选取下一条...

2018-08-28 17:06:05 148

原创 Comparable以及Comparator总结,代码示例

1. 相同点2. 区别3. Comparable代码实例4. Comparator代码实例

2018-04-27 15:50:31 225

原创 设计模式学习笔记(一)-简单工厂模式

概述简单工厂模式属于创建型模式,简单工厂模式不属于23中GOF(gang of four)设计模式之一

2018-04-20 21:48:51 158

原创 利用Eclipse画类图(AmaterasUML 插件)

1 下载插件插件地址:http://jaist.dl.sourceforge.jp/amateras/56447/AmaterasUML_1.3.4.zip 2 将解压了的文件(全部文件)放于eclipse\plugins目录下3 重启Eclipse4 使用方法File -> new -> other -> 搜索class diagram -> 点击next -> 打开创建了的文件 -> 将各个类拖

2018-04-13 15:54:41 7479

转载 java中重载与重写的区别以及与多态的关系

java中重载与重写的区别以及与动态的关系

2018-04-05 10:44:27 1887

原创 设计模式学习笔记-面向对象设计原则

面向对象设计原则

2018-03-20 17:19:51 230

转载 java中静态方法为什么不能调用非静态方法或者变量

静态方法只能调用静态方法(或者变量),非静态方法可以调用静态方法(或者变量)类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问(类名.方法|类名.变量);非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类

2018-03-13 16:36:13 8020

原创 java多线程学习笔记

线程简介多线程编程继承Thread类实现多线程线程简介线程是指在进程基础上的进一步划分,想成是比进程更小的单位。线程启动的所占用的资源更少,进程比线程慢。java是一个多线程的语言,其指向的性能更快。多线程编程如果要实现多线程的主类,有两类途径: 1.继承一个Thread类; 2.【推荐】实现Runable、Callable接口。继承Thread类实现多线程

2018-03-12 20:55:29 213

原创 Kubernetes学习笔记

Kubernetes介绍 Kubernetes是容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。  Kubernetes可以在物理或虚拟机的Kubernetes集群上运行容器化应用,Kubernetes能提供一个以“容器为中心的基础架构”容器的优势 容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容...

2018-03-06 16:09:04 284

原创 java堆和栈学习笔记

在java中栈是用来存储函数的主体和变量名的,java的代码是在函数体中执行的,函数主体会放在栈内存中。栈运行是先进后出的,如栈最底层的函数是main,其上是自己编写的一系列函数,运行时是先运行自己编写的函数再运行main函数(入栈出栈的顺序)...

2018-03-04 10:48:17 210

原创 Http报文学习笔记

Http报文报文向下游流动报文的组成部分Http报文Http是因特网的信使,报文则是信使用来装信的包裹。报文向下游流动所有的报文(请求报文、响应报文)都会向下游流动。所有的报文发送者都在接受者的上游。报文的组成部分...

2018-03-01 20:12:49 238

原创 Linux(知识点、常见指令、文件传输、JDK下载及安装)

知识点常见指令文件传输JDK下载及安装

2018-02-28 10:59:37 282

原创 利用优先队列PriorityQueue实现Prim算法

1.Prim算法介绍1.Prim算法是贪婪技术的一种。 2.贪婪技术:     在每一步中,都‘贪婪’地选择最佳的操作,并希望通过一些列局部最优选择,能够产生一个整个问题(全局)的最优解。 3.Prim算法的用处:     通俗的讲就是求解最小生成树问题。 4.Prim算法思想(贪婪的体现):     Prim算法将顶点分为2个集合vt和v-vt,并总是找出边(a,b)使得a

2017-12-10 20:45:59 2787 2

原创 struts2登录拦截(拦截Action,拦截url)

struts2登录拦截(拦截Action,拦截url)

2017-09-22 10:47:56 3156

原创 两个数字交换的方法

方法一:(利用一个新的变量)方法二:(巧用+-运算符)( 数字过大可能会溢出)方法三:(利用异或运算)( 原理:一个数异或另一个数两次还等与这个数)附加(异或运算)

2017-08-23 20:34:31 798

原创 JS对数组某个元素的删除操作,delete与splice的异同

delete与splice的异同

2017-08-23 15:45:46 934

原创 JS调用函数时,加括号与不加括号的区别

JS调用函数时,加括号与不加括号的区别

2017-08-23 10:44:11 606

空空如也

空空如也

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

TA关注的人

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