自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于IO、BIO、NIO的理解

IO、BIO、NIO理解简介BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。AIO(NIO.2):异步非阻塞式IO,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服

2020-07-21 15:10:11 1227

原创 Nginx代理服务器

Nginx 相关介绍(Nginx是什么?能干嘛?)Nginx的产生没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的

2020-07-20 20:41:11 106

原创 数据结构之排序算法三(Java版)

数据结构之排序算法一(Java版)数据结构之排序算法二(Java版)归并排序归并排序介绍:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。归并排序思想示意图1-基本思想:说明:可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。

2020-07-20 20:23:47 87

原创 数据结构之排序算法二(Java版)

数据结构之排序算法一(Java版)接下来接着说排序算法希尔排序简单插入排序存在的问题我们看简单的插入排序可能存在的问题.数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6}结论: 当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响.希尔排序法介绍希尔排序是希尔(Donald S

2020-07-20 20:15:25 84

原创 数据结构之排序算法一(Java版)

排序算法的介绍排序也称排序算法 (Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。常见的排序算法分类(见下图):冒泡排序基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象

2020-07-20 20:05:46 155

原创 数据结构+算法--八皇后问题(Java版)

递归-八皇后问题(回溯算法)八皇后问题介绍八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。这里我们给出一个可以玩这个游戏的网址,大家可以体验一下:八皇后小游戏下边我们给出这个游戏的思路分析:八皇后问题算法思路分析1)第一个皇后先放第一行第一列2)第二个皇后放在第二行第一列、然后判断是否OK, 如果不OK,

2020-07-10 21:01:03 275

原创 数据结构递归-迷宫问题(Java版)

迷宫问题红色区域代表墙,白色区域代表小球可以走的路径要求:从左上角第一个白格起步,一直到右下角的白格在讲到该题之前,我们先了解一下递归递归的概念简单的说: 递归就是方法**自己调用自己,**每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归能解决什么样的问题递归用于解决什么样的问题1)各种数学问题如: 8皇后问题 , 汉诺塔, 阶乘问题, 迷宫问题, 球和篮子的问题(google编程大赛)2)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治

2020-07-10 19:30:28 896

原创 数据结构之后缀表达式-逆波兰表达式(Java版)

在这里我们先介绍一下中缀表达式和后缀表达式,如果有同学对前缀表达式感兴趣,可以进行相关知识的学习,我这里就不做讲解中缀表达式中缀表达式就是常见的运算表达式,如(3+4)×5-6中缀表达式的求值是我们人最熟悉的,但是对计算机来说却不好操作(前面我们讲的案例就能看的这个问题),因此,在计算结果时,往往会将中缀表达式转成其它表达式来操作(一般转成后缀表达式.)后缀表达式后缀表达式又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后中举例说明: (3+4)×5-6 对应的后缀表达式就是 3 4

2020-07-09 19:34:28 279

原创 栈的学习以及用数组模拟栈(Java版)

栈的一个实际需求请输入一个表达式计算式:[722-5+1-5+3-3] 点击计算【如下图】请问: 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5, 但是计算机怎么理解这个算式的(对计算机而言,它接收到的就是一个字符串),我们讨论的是这个问题。-> 栈栈的介绍栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端

2020-07-07 21:25:33 373

原创 单向环形链表应用场景-约瑟夫环(Josepfu)问题(Java版)

Josephu(约瑟夫、约瑟夫环) 问题Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。提示:用一个不带头结点的循环链表来处理Josephu 问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个

2020-07-05 19:29:00 300

原创 数据结构之双向链表(java版)

为什么需要双向链表?单链表的结点都只有一个指向下一个结点,单链表的数据元素无法直接访问其前驱元素,所以逆序访问单链表中元素极其耗时;思想有点类似使用空间复杂度换时间复杂度。双向链表:在单链表的结点中增加一个指向其前驱的pre指针;该链表中第一个结点的前趋结点为NULL,最后一个结点的后继结点为NULL 。双向链表具有单链表的所有操作:添加元素、插入元素、删除元素、遍历元素;双向链表应用实例使用带head头的双向链表实现 –水浒英雄排行榜管理单向链表的缺点分析:单向链表,查找的方向只能是

2020-07-01 20:23:13 222

原创 java基础之IO操作

JAVA中针对文件的读写操作设置了一系列的流,FileInputStream,FileOutputStream,FileReader,FileWriter是四种最为常用的流FileInputStream该流用于从文件读取数据,它的对象可以用关键字 new 来创建。有多种构造方法可用来创建对象。可以使用字符串类型的文件名来创建一个输入流对象来读取文件:InputStream f = new FileInputStream("C:/java/hello");也可以使用一个文件对象来创建一个输入流对

2020-07-01 07:21:33 200

空空如也

空空如也

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

TA关注的人

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