自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weiker12的专栏

学无止境!所以无止境的学!

  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

原创 JSON Web Tokens的实现原理

JSON Web Tokens的实现原理最近在做一个python项目的改造,将python项目重构为java项目,过程中遇到了这个知识点,觉得这个蛮实用的,所以下班后回来趁热打铁写下这篇总结,希望后面的人能够有所借鉴,少走弯路。一、优势简介JSON Web Tokens简称jwt,是rest接口的一种安全策略。

2017-04-02 02:04:30 10617 1

原创 Zipkin分布式任务追踪

Zipkin分布式任务追踪zipkin简介Zipkin 是一款开源的分布式实时数据追踪系统,由基于 Google Dapper 的论文设计而来,由 Twitter 公司提供开源实现,主要功能是聚集来自各个异构系统的实时监控数据,和微服务架构下的接口直接的调用链路和系统延时问题。Zipkin 提供了自己的UI,应用将自己的监控数据报告给zipkin,由Zipkin 汇集并提供关联图展示,Zipkin可

2016-11-13 23:11:45 8189

原创 Spring batch批处理框架

spring batch框架的简介批处理任务是大多数IT项目的一个重要组成部分,批处理在业务系统中负责处理海量的数据,无须人工干预就能够自动高效的进行复杂的数据分析和处理。批处理会定期读入批量数据,经过相应的业务处理进行归档的业务操作,批处理的特征是自动执行,处理的数据量大,定时执行。将整个批处理的流程按逻辑划分可以分为读数据,处理数据和写数据。spring batch对批处理本身的特性进行了抽象,

2016-10-03 18:42:05 8780

原创 shell调用api store查询手机号码归属地

一、api store简介 api store是属于一个API聚合平台,可以向外提供各种的数据服务,比较有代表性的有dev store,百度api store和聚合数据等等,这类服务通过向外提供rest api接口来暴露给第三方的开发者。 api store提供了很多类型的数据服务,有生活常用,应用开发,金融理财,旅游票务等等api,但是有些接口是有收费的,同时也提供了很多免费的接口,这里

2016-09-24 15:54:56 4793 1

原创 java 8 新特性的概要

最近工作中用到了java 8的新版本,在使用的过程中体验到了java 8的一些新特性,网上关于这些有很多的博客介绍,我这里也不多细说,大概总结一下这些特性,然后在实战中体验这些特性带来的一些新的改变。

2016-09-11 21:17:21 441

原创 jsp页面传中文参数乱码问题

jsp页面传中文参数乱码问题

2015-06-05 19:12:29 673

转载 java日志log4j的处理

首先,在项目中的classes 中新建立一个log4j.properties文件即可; 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。(这里只说明prop

2015-03-29 16:49:47 588

原创 oracle增加表空间

alter tablespace vgsm    add datafile 'c:\oracle\product\10.2.0\oradata\vgsm\vgsm_01.dbf'    size 1024M autoextend on next 50M maxsize unlimited;

2015-02-27 09:27:01 466

原创 oracle 表空间

--1、查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespac

2015-02-27 09:25:45 609

原创 oracle 自循环

SELECT TO_CHAR((TO_DATE('2012-01', 'yyyy-mm') + (ROWNUM - 1)),                   'YYYYMMDD') S_DATE      FROM DUAL    CONNECT BY ROWNUM                TO_DATE('2012-01', 'yyyy-mm') + 1;

2015-02-27 09:23:57 548

原创 冒泡排序法

冒泡排序是非常容易理解和实现,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。代码如下:#includeusing namespace std;

2013-10-21 14:17:35 861

转载 堆排序

堆排序的时间复杂度是O(nlgN),与快速排序达到相同的时间复杂度。但是在实际应用中,我们往往采用快速排序而不是堆排序。这是因为快速排序的一个好的实现,往往比堆排序具有更好的表现。堆排序的主要用途,是在形成和处理优先级队列方面。另外,如果计算要求是类优先级队列(比如,只要返回最大或者最小元素,只有有限的插入要求等),堆同样是很适合的数据结构。   1、堆排序定义

2013-10-21 11:15:36 649

转载 希尔排序

希尔排序(Shell Sort)又称为缩小增量排序,输入插入排序算法,是对直接排序算法的一种改进。本文介绍希尔排序算法。    对于插入排序算法来说,如果原来的数据就是有序的,那么数据就不需要移动,而插入排序算法的效率主要消耗在数据的移动中。因此可知:如果数据的本身就是有序的或者本身基本有序,那么效率就会得到提高。希尔排序动画演示    希尔排序的基本思想是:将需要排序

2013-10-21 09:30:26 735

转载 递归和非递归实现汉诺塔问题

汉诺塔(又称河内塔)问题其实是印度的一个古老的传说。开天辟地的神勃拉玛(和中国的盘古差不多的神吧)在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一 个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上 面。计算结果非常恐怖(移动圆片的次数)18446744

2013-10-19 01:20:39 988

原创 简单选择排序

简单选择排序算法只需要一个辅助空间用于交换记录,所以,简单选择排序算法是一种稳定的排序方法。【例】关键码序列为(42,20,17,27,13,8,17,48),用简单选择排序算法进行排序。排序过程如图所示。选择排序的基本思想是每一趟在n-i+1(i=1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列的第i个记录。我们这里先介绍的是简单选择排序法。

2013-10-19 00:29:15 1636

转载 归并排序法

合并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个 N/2 个长度为2或1的有序子序列,再两两合并,如此重复,值得得到一个长度为N的有序数据序列为止,这种排序方法称为2—路

2013-10-18 22:24:16 661

转载 桶排序

【1】桶排序桶排序(也称箱排序),据坊间演绎,其实现方式有很多。在此我们仅仅阐述一下本文的实现思想,以便于更好的理解下面的内容,同时加深对桶排序的认识。首先,说明一点,我们是使用数组模拟桶(最好应该是使用链表模拟)。所谓数组模拟桶实现排序的过程到底是怎么进行的呢?呵呵!其实还真有点抽象。实现步骤如下:(1)定义映射函数 求得欲排数据序列中的最

2013-10-18 20:45:22 659

转载 基数排序法

【1】基数排序以前研究的各种排序算法,都是通过比较数据大小的方法对欲排数据序列进行排序整理过程。而基数排序却不再相同,那么,基数排序是采用怎样的策略进行排序的呢?简略概述:基数排序是通过“分配”和“收集”过程来实现排序。而这个思想该如何理解呢?请看以下例子。(1)假设有欲排数据序列如下所示:73  22  93  43  55  14  28  65  39

2013-10-18 20:02:09 802

转载 快速排序法

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快

2013-10-18 11:55:16 566

转载 C#核心概念--装箱和拆箱(什么是装箱和拆箱)

装箱(boxing)和拆箱(unboxing)是C#类型系统的核心概念.是不同于C与C++的新概念!,通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换,装箱和拆箱能够统一考察系统,任何类型的值最终都可以按照对象进行处理.   C#语言中的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte,

2013-10-15 11:53:08 643

转载 正则表达式语法与应用

基本含义by Jim Hollenhorst  译 寒带鱼  你是否曾经想过正则表达式是什么,怎样能够快速得到对它的一个基本的认识?我的目的就是在30分钟内带你入门并且对正则表达式有一个基本的理解。事实是正则表达式并没有它看起来那么复杂。学习它最好的办法就是开始写正则表达式并且不断实践。在最初的30分钟之后,你就应该知道一些基本的结构并且有能力在你的程序或者web页面中设计和使用正

2013-09-14 01:06:57 691

转载 MFC类的组织结构

目前的MFC版本中包含了100多个类,不同的类实现不同的功能,类之间既有区别又有联系。MFC同时还是一个应用程序框架,它帮助定义应用程序的结构以及为应用程序处理许多杂务,事实上,MFC封装了一个程序操作的每一个方面。在MFC程序中,程序员很少需要直接调用Windows API函数,而是通过定义MFC类的对象并通过调用对象成员函数来实现相应的功能。        MFC类库中类是以层次结构的方式

2013-09-08 17:13:35 1099

原创 数据结构的判空操作

1.顺序表的判空:bool ListEmpty(SqList *L) //判线性表是否为空表{ return(L -> length == 0); //长度为0即为空表}2.单链表的判空:bool ListEmpty(LinkList *L) //判线性表是否为空表{ return(L->next == NULL); //链表的指针指向下一个为空为空表} 3.

2013-08-07 00:20:30 4577

原创 数据结构的求长操作

1.顺序表的求长:int ListLength(SqList *L) //求线性表的长度{ return(L -> length);}2.单链表的求长:int ListLength(LinkList *L) //求线性表的长度{ LinkList *p = L;int i = 0; while (p -> next != NULL) { i++; p = p -

2013-08-06 23:52:52 1653

原创 数据结构的销毁操作

1.顺序表的销毁:void DestroyList(SqList *L) //销毁线性表{ free(L); //直接释放顺序表}2.单链表的销毁:void DestroyList(LinkList *&L) //销毁线性表{ LinkList *p = L, *q = p -> next; while (q != NULL) { free(p);

2013-08-06 23:29:02 5706 2

原创 数据结构的输出操作

1.顺序表的输出:void DispList(SqList *L) //输出顺序表{ int i; if (ListEmpty(L)) return; //为空值,直接返回 for (i = 0; i length; i++) //遍历顺序表的所有元素 printf("%c ", L -> data[i]); //用指针指向这些元素输出 printf("\n"

2013-08-06 23:14:23 3391

原创 数据结构的求元素值操作

1.顺序表的求元素值:bool GetElem(SqList *L, int i, ElemType &e) //求线性表中某个数据元素值{ if (i L -> length) return false; //参数错误时返回false e = L -> data[i - 1]; //取元素值 return true; //成功找到元素时返回true}2

2013-08-06 13:44:26 1218

原创 数据结构的删除操作

1.顺序表的删除:bool ListDelete(SqList *&L,int i,ElemType &e) //删除数据元素{int j;if (i L -> length)//参数错误时返回falsereturn false;i--; //将顺序表逻辑序号转化为物理序号e = L -> data[i];for (j = i;j length

2013-08-06 13:16:21 3622

原创 数据结构的查找操作

1.顺序表的查找:int LocateElem(SqList *L, ElemType e) //按元素值查找{ int i = 0; while (i length && L -> data[i] != e) i++; //遍历查找元素e if (i >= L ->length) //未找到时返回0 return 0; else return i+1;

2013-08-06 09:06:54 1540

原创 数据结构的插入操作

1.顺序表的插入:bool ListInsert(SqList *&L, int i, ElemType e) //插入数据元素{int j;if (i L -> length + 1)return false; //参数错误时返回falsei--; //将顺序表逻辑序号转化为物理序号for (j = L -> length; j > i; j--)

2013-08-05 15:27:59 4931

原创 数据结构的初始化操作汇总

数据结构的初始化操作1.顺序表的初始化:void InitList(SqList *&L) //初始化线性表{ L = (SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间 L -> length = 0;      //置空线性表长度为0} 2.单链表的初始化:void InitList(LinkList *&L)  /

2013-08-04 21:16:01 3019

原创 数据结构之结构定义

数据结构读书笔记1.顺序表的结构定义:#define MaxSize 50   //定义最大长度typedef char ElemType;    //字符类型别名typedef struct          //结构体类型{ ElemType data[MaxSize];     //顺序表的容量    int length;          //顺序表的存放

2013-08-04 20:49:11 2322

原创 《大话设计模式》读书笔记

1.面向对象简介:利用面向对象编程,要达到可维护,可扩展,可复用和灵活性好的目的。通过面向对象的封装、继承、多态让程序能够尽量保持高内聚,低耦合的状态,使程序更加的灵活,容易修改,并且易于复用。界面逻辑和业务逻辑应该分离,分别封装,利用继承的特性把子类的功能分别继承父类,这样要增加新功能,就可以直接利用继承来添加,而不用修改原先定义好的类。2.计算器设计---简单工厂模式:用单独的类来创造做这

2013-08-02 01:33:29 1153

转载 C++面向对象的问题解答

简答题1.         什么是类?什么是对象?对象与类的关系是什么?答:类就是相同的数据和相同的一组对象的集合,即类是对具有相同数据结构和相同操作的一类对象的描述;对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体,对象可以认为是:数据+操作;类和对象之间的关系是抽象和具体的关系。2.         构造函数和析构函数的主要作用是

2013-07-30 17:34:27 787

转载 C++面向对象的三大特性

面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需

2013-07-30 17:22:46 2602

转载 C++基本语法

1.       C++主要特点:封装性(Encapsulation):把数据与操作数据的函数组织在一起,使程序结构更加紧凑,提高类内部数据的安全性。继承性(Inheritance):增加了软件的可扩充性及代码重用性;多态性(Polymorphism):使设计人员在设计程序时可以对问题进行更好的抽象,有利于代码的维护和可重用2.       C++中几个特性的实现技

2013-07-30 17:14:01 559

转载 new、delete 与指针

在C++中,操作符new 用于申请内存,操作符delete 用于释放内存。在C 语言中,函数malloc 用于申请内存,函数free 用于释放内 存。由于C++兼容C 语言,所以new、delete、malloc、free 都有可能一起使用。new 能比malloc 干更多的事,它可以申请对象的内存,而malloc 不能。C++和C 语言中的指针威猛无比,用错了会带来灾难。对于一个指针p,如果是用

2013-07-30 16:10:06 548

转载 Windows 编程的运行原理及编写流程

窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用规范的比较,初学者常犯错误及注意事项。1.       Windows API与Win32 SDK操作系统提供了各种方便开发Windows应用程序的编程接口,所的函数都在Windows。h头文件中声明。Win32 SDK(Software

2013-07-30 14:58:06 728

原创 C++结构体总结:

C++中记录的使用需要进行两个步骤:1,定义一个新的结构体类型;2,定义新类型的变量结构体的定义:格式:struct  结构体类型名{ 字段声明;}; 结构体成员的的类型可以是任意的类型,可以是整型,实型,也可以是数组,也可以是其他的结构体类型结构体类型的变量的定义:struct 结构体类型名 {字段声明;}   结构体变量;  或 struct  {字段声明;}  结构体变量;结构体

2013-07-25 14:03:53 724

原创 C++指针总结

指针定义和基本操作:指针是内存的一个地址。定义格式,类型名 *指针变量名 ,其中指针变量名指的是内存地址,加*是表示指向这一内存地址所存储的内容,如果要取地址的话就要用&来处理,比如& 指针变量名 或 &* 指针变量名,如果指针暂时不用的时候,可以赋给一个空指针 NULL。 统配指针类型void:void *指针变量名  指针与常量限定符const:                    

2013-07-25 07:39:37 656

C++特殊计算器

有理数计算,复数计算,集合计算,矩阵计算都有,C++实现,VS2012编译通过,功能强大,值得参考,特别适合做课程设计,运行完全正确!

2013-06-26

电脑知识汇总

电脑知识汇总里面的文档放在压缩包里,适合初学者用,具有相当的实用性,里面有很多的电脑硬件维修的一些常识和经验。

2012-10-09

空空如也

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

TA关注的人

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