自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LSGOZJ的博客

每天一个台阶,fighting!!!

  • 博客(117)
  • 资源 (2)
  • 论坛 (1)
  • 问答 (4)

转载 spring与springboot中,如何在static方法里用@Autowire或者@Resource注入的属性

问题:我原本想在5的位置用成员变量2,但是因为位置5所在的方法时static的,怎么办??第一步:在位置1写注解@Component 使当前类成为一个bean对象。(@Controller,@service都行)第二步:在位置3写个static的变量第三步:写个@PostConstruct注解注解注释的方法,在这个方法里,将位置2的值赋值给位置3.第四步:就可以在位置5处用位置2的变量了...

2019-03-27 17:47:51 1345

转载 MySQL中int(M)和tinyint(M)数值类型中M值的意义

在一开始接触MySQL数据库时,对于int(M)及tinyint(M)两者数值类型后面的M值理解是最多能够插入数据库中的值不能大于M;后来工作后,也是一边学习一边使用,之后的理解是其中的M的意思是插入数据库中的值的字符长度不能大于M,例如,int(4),想要插入1234,1234的字符长度是4,就正好可以插入数据库,12341就不行,因为是5个字符长度,这也都是道听途说,自己从来没有验证过;...

2018-09-13 00:51:01 113

转载 分布式自增id生成算法SnowFlake

分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种。概述SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图:1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。41位可以表示241−1个数字,如果只用来表示正整数(计算机中正数包含0)...

2018-06-03 21:29:39 349

转载 Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?

Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的/usr:系统级的目录,可以理解为 C:/Windows/,/usr/lib 理解为 C:/Windows/System32。 /usr/local:用户级的程序目录,可以理解为 C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。 /opt:用户级的程序目录,可以理解为 D:/Software,

2017-12-30 11:50:32 1225

转载 KMP算法学习分享

问题:文本串 S = “BBC ABCDAB ABCDABCDABDE”模式串 P = “ABCDABD”找出 P 在 S 中的位置。一、 暴力匹配算法:过程分析:1、 S[0]为B,P[0]为A,不匹配,则 i往后移动一位,j 回到开头,即 i = i – j + 1, j = 0。相当于模式串往右移动一位(i = 1,j = 0)2、 S[1]跟P[0]还是不匹配,则 i往后移动一位

2017-12-07 22:16:30 158

转载 C语言中柔性数组的学习

在日常的编程中,有时候需要在结构体中存放一个长度动态的字符串,一般的做法,是在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间,例如:typedef struct test { int a; double b; char *p; };p指向字符串。这种方法造成字符串与结构体是分离的,不利于操作。如果

2017-09-22 10:11:15 401

转载 单链表排序

前言:最近总结了一下针对只有头结点的单链表进行排序的几个简单的方法。交换节点:插入排序,冒泡排序,简单选择排序 交换数据:快速排序初始化:#include <stdio.h>#include <stdlib.h>#include <stdbool.h>//节点结构struct node{ int val; struct node * next;};typedef str

2017-09-03 20:38:22 35538 14

转载 尾递归的学习

递归与尾递归总结  前言:今天上网看帖子的时候,看到关于尾递归的应用(http://bbs.csdn.net/topics/390215312),大脑中感觉这个词好像在哪里见过,但是又想不起来具体是怎么回事。如是乎,在网上搜了一下,顿时豁然开朗,知道尾递归是怎么回事了。下面就递归与尾递归进行总结,以方便日后在工作中使用。1、递归  关于递归的概念,我们都不陌生。简单的来说递归就是一个函数直接或间接地

2017-08-29 09:44:51 478

转载 单点登录SSO

一、什么是单点登录SSO(Single Sign-On)  SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录   一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。二、单点登录解决了什么问题  解决了用户只需要登录一次就可以访问所有相互信任的应用系统,而不用重复登录。三、单点登录的技术实现机制  如下图所示:

2017-08-05 21:57:42 542

原创 PHP手动实现数组转 JSON

问题:由于最近的一个项目中要给别的公司提供接口,给他们喂 GBK 编码的 json 数据,但是有一个问题是 PHP 中的 json_encode 加密函数只支持 utf-8 编码,这就比较尴尬了。我们的数据是 GBK 编码的,接收方要求的数据格式也是 GBK 编码的,一开始想的是先将数据转为 utf-8 编码再使用 json_encode 函数,结果是这导致我们的中文内容乱码了,所以,最后使用的是手

2017-07-19 12:55:26 572 1

转载 对象引用计数器

引用计数算法作为垃圾收集器最早的算法,有其优势,也有其劣势,虽然现在的JVM都不再采用引用计数算法进行垃圾回收【例如Sun的Java hotspot采用了火车算法进行垃圾回收】,但这种算法也并未被淘汰,在著名的单进程高并发缓存Redis中依然采用这种算法来进行内存回收【后绪会以Redis作为例子,说明该算法】什么是引用计数算法直白一点,就是对于创建的每一个对象都有一个与之关联的计数器,这个计数器记录

2017-06-25 20:10:29 1246

转载 http状态码301和302详解及区别

一直对http状态码301和302的理解比较模糊,在遇到实际的问题和翻阅各种资料了解后,算是有了一定的理解。这里记录下,希望能有新的认识。大家也共勉。官方的比较简洁的说明: 301 redirect: 301 代表永久性转移(Permanently Moved) 302 redirect: 302 代表暂时性转移(Temporarily Moved ) ps:这里也顺带记住了两

2017-05-04 22:02:40 3314 1

转载 vim 插件 -- cscope

前面我们学习了如何使 vim 像 IDE 一样管理项目代码(《 vim的项目管理工具:project插件》),但是 IDE 还有一个非常有用的特性就是能够很方便的找到某个函数或者变量的定义位置(应该是将鼠标移到函数名处 -> 右键 -> 跳到定义处),今天我们使用 vim 的 cscope 插件实现这个功能。一、下载安装:关于下载安装,就是一行命令的事,比如 centos :yum install

2017-04-29 20:18:41 735

转载 vim的项目管理工具:project插件

vim 是 inux 中经常用到的文本编辑工具,无论是在编写代码还是在阅读代码的时候都会经常用到。但是在进行项目代码管理的时候,vim 没有 IDE 集成开发工具方便(这也是很多人不习惯使用 vim 的原因吧)。本篇文章就是要解决这个问题:使用 vim 的插件 project,对项目代码进行简单的集中管理。 我们先来看看实现效果:一、下载安装1、 在 Vim 网站上下载最新版本 project.ta

2017-04-29 12:14:16 8080 2

转载 Linux传文件:本机传其他机器和其他机器传本机

1、功能说明scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下:scp 远程用户名@IP地址:文件的绝对路径 本地Linux系统路径 scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名scp使用第一种格式是将远程Linux系统上的某个文件或者目录拷

2017-04-27 09:49:54 2331

转载 修改mysql提示符

MySQL 客户端的默认提示符是 “mysql>”,基本上没什么实际作用。其实可以修改这个提示符,让它显示一些有用的信息,例如当前所在的数据库等。修改方法有四种,其中前两种只对当前连接有效,后两种则对所有连接有效。1、连接客户端时通过参数指定(当前链接)mysql --prompt="(\u@\h) [\d]> "这样提示符就会变成 (user@host) [database]>。其中常用的字符参数

2017-04-11 20:48:09 936

原创 单链表翻转

单链表的翻转也算是面试中常见的面试题目了,本文根据网上查阅的资料给大家总结了两种方法。准备:首先,我们先来看我们节点和函数的定义,以及客户端应用:#include <stdio.h>#include <stdlib.h> //提供malloc()//节点结构struct Node{ int val; struct Node * next;};typedef struct N

2017-03-21 22:30:24 329

转载 php 数组去重

1、使用array_unique方法进行去重对数组元素进行去重,我们一般会使用array_unique方法,使用这个方法可以把数组中的元素去重。<?php $arr = array(1,1,2,3,3,3,4,4,5,6,6,7,8,8,9,9,9); $arr = array_unique($arr); $arr = array_values($arr); prin

2016-12-28 19:50:59 678

原创 判断单链表是否有环

前言:其实这个题目是面试官给提的,由于当时在学习数据结构与算法的时候没有接触过这类问题,因此通过在网上查阅资料和自己的理解产生这篇博客,希望能帮得到大家。如下面的单链表:如何判断该链表中是否存在环。方法一:使用 p、q 两个指针,p 总是向前走,但 q 每次都从头开始走,对于每个节点,看 p 走的步数是否和 q 一样。如果对于每个节点,p、q 走过的步数都是一样的,则证明不存在环,反之,存在环。代码

2016-12-28 18:21:46 470

原创 (Ubuntu/Centos)apache多站点配置

前言:情景一:平时在我们开发的时候,一般项目都只存放在 localhost 指定的根目录下,当有好几个项目的时候,只能在根目录下以不同的文件夹区分,特别的不方便。情景二:平时在看教学视频的时候,总是看到那些老师在单机下使用不同的域名,访问的却是本地的项目代码,每当这时候我都会问,这个怎么实现的。情景三:在最近去实习面试的时候,面试官问我如何在 apache 服务器上搭建多站点。我只能回答我不会。为了

2016-12-22 11:20:37 5130 2

转载 一致性 Hash 算法学习(分布式或均衡算法)

简介:一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 场景引入:比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个

2016-12-15 20:17:54 6892 5

转载 PHP-redis中文文档

为了以后使用方便,这里转一波手册,方便以后查阅。转自 http://www.cnblogs.com/weafer/archive/2011/09/21/2184059.htmlphpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlient/phpredis(支

2016-12-14 22:15:03 560

原创 对 redis 主从同步初认识

前言:最近在学习 redis,然后看到了 redis 主从同步这块,正好手上有一个 Centos 服务器和一台 Ubuntu 笔记本,并且都被我装了 redis,那就试试呗。主从同步:主从同步可以防止主机(Master)坏掉导致网站不能正常工作,这种方法即把从机(Slave)设置为主机即可。redis 支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制,并且配置很

2016-12-14 20:19:26 623

原创 对 PHP SESSION 的深刻认识(四)---- 缓存(memcache和redis)存储session

本篇博客将带着大家实现使用缓存系统来存储 session 数据,其中会介绍两个缓存系统 :memcache 和 redis。一、使用 memcache:如果大家有看过我之前的这篇博客 《memcache 和 memcached 的区别分析》,就会发现,PHP两个扩展中的 memcached 工作的更好,因此这篇博客在使用 memcache 服务时我选择的是 memcached 扩展。1、使用 mem

2016-12-13 21:14:08 1927 1

原创 memcache 和 memcached 的区别分析

前言:其实之前 LZ 有简单和学习和使用过 memcache ,但是也仅仅限于简单层面。然后最近要使用到 memcache,所以重新温习了一遍,在这里简单总结一下关于 memcache 和 memcached 的区别,大神路过就别踩了。。。区别分析:其实我们这里所说的 memcache 和 memcached 说的是 PHP 的扩展,假如我们要在 PHP 中使用 memcache ,我们肯定是先在

2016-12-12 21:12:14 12263 1

原创 对 PHP SESSION 的深刻认识(三)---- 数据库存储session

前言:本篇博客是继承自我的前面的两篇博客 《对 PHP SESSION 的深刻认识(一)》、《对 PHP SESSION 的深刻认识(二)》 而来的,主要是解决前面的问题。为什么要使用数据库保存 session 数据?就 php 来说,语言本身支持的 session 是以文件的形式保存在磁盘文件中,保存在指定的文件夹中,保存的路径可以在配置文件 php.ini 中设置。但是按照默认的存储方法是有很大

2016-12-11 15:54:18 1082

原创 对 PHP SESSION 的深刻认识(二)

前言:本篇博客是以我之前的一篇博客 《对 PHP SESSION 的深刻认识(一)》 为基础的,如果你没有阅读该篇博客,建议你回头看看。在 《对 PHP SESSION 的深刻认识(一)》 的最后,我们提到在应用 session 时可能会遇到的问题:session 多服务器共享的问题,假如有多台 php 服务器进行负载均衡的时候,用户登录时访问的是第一台服务器,没准下一个页面访问的是第二台服务器,

2016-12-07 20:18:26 795 1

原创 对 PHP SESSION 的深刻认识(一)

前言:在不久之前,本人去参加了某公司的实习面试,其中 HR 问我关于 SESSION 实现的原理,当时我就懵逼了,因为在之前的开发中,我只知道 session 与 cookie 的区别在于:session 是保存在服务器端,cookie 保存在客户端。那 session 在服务端是怎么样保存的?session_id 又是什么?等等。我当时答不上来。回来后决定把这些搞懂。为什么要使用 SESSION?

2016-12-04 15:38:46 1923 1

原创 PHP实现排序算法----归并排序(Merging Sort)

基本思想:归并排序:就是利用归并(合并)的思想实现的排序方法。它的原理是假设初始序列含有 n 个元素,则可以看成是 n 个有序的子序列,每个子序列的长度为 1,然后两两归并,得到 ⌈ n / 2⌉ (⌈ x ⌉ 表示不小于 x 的最小整数)个长度为 2 或 1 的有序序列;再两两归并,······,如此重复,直至得到一个长度为 n 的有序序列为止,这种排序方法就成为 2 路归并排序。一、归并的过程:

2016-11-27 13:47:14 7817 1

原创 PHP实现排序算法----快速排序算法优化

本篇博客主要是谈谈对前面 《PHP实现排序算法—-快速排序(Quick Sort)、快排》的优化问题,如果大家之前没有看过该篇博客,那么必须回去看看,因为这篇博客就是以前一篇博客为基础的。优化一:优化选取枢轴:在前面的复杂度分析的过程中,我们看到最坏的情况无非就是当我们选中的枢轴是整个序列的边缘值。比如这么一个序列:9 1 5 8 3 7 4 6 2按照习惯我们选择数

2016-11-23 22:56:00 2951

原创 PHP实现排序算法----快速排序(Quick Sort)、快排

基本思想:快速排序(Quicksort)是对冒泡排序的一种改进。他的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行快速排序,整个排序过程可以递归进行,以达到整个序列有序的目的。基本算法步骤:举个栗子: 假如现在待排序记录是:6 2 7 3 8 9第一步、创建变量 $low 指向记录中的第一个记录

2016-11-23 21:56:35 8862

原创 PHP实现排序算法----基数排序(Radix Sort)

基数排序在《大话设计模式》中并未讲到,但是为了凑齐八大排序算法,我自己通过网络学习了这个排序算法,并给大家分享出来。基本思想:基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复

2016-11-23 20:29:14 1447

转载 C语言实现贪吃蛇(五)----图形界面版

在我的上一篇博客《 C语言实现贪吃蛇(四)—-游戏存档读档(文件操作)》中,我还说着要紧跟着原作者的脚步,继续捣鼓这个贪吃蛇游戏的,但当我看到代码的时候,我就感觉自己真的是啪啪打脸了。毕竟我从没接触过 win32 编程,因此那些代码对我来说就是天书!啥也别说了,在这里我给出原作者的地址,大家自个儿看去吧:《C语言实现贪吃蛇之图形界面篇 》

2016-11-18 20:12:23 4091

转载 C语言实现贪吃蛇(四)----游戏存档读档(文件操作)

前言:对于C语言的初学者来说,可能会觉得文件操作是一个比较陌生的领域,但实际上无论编写怎样的程序文件操作都是必需的。在操作系统中,所有的外围设备(包括键盘和显示器)都被看作是文件系统中的文件,因此所有的输入/输出都要通过读文件/写文件完成。启动一个C语言程序时,操作环境负责打开标准输入,标准输出,标准错误3个文件,并将这3个文件的指针提供给该程序。而我们熟知的 getchar 函数 putchar

2016-11-18 19:50:51 11421 4

转载 C语言实现贪吃蛇(三)----结构+链表实现

前言:本博客所讲到的知识跟前面我的两篇博客:《C语言实现贪吃蛇(一)—-数组实现》、《C语言实现贪吃蛇(二)—-局部刷新》 有很大的关系,建议大家前往看一下,尤其是第一篇,那篇博客是所有关于贪吃蛇游戏的基础。之前的两篇博客将运用的C语言知识限定在了一般的数组上,但如果已经完整地了解过C语言的话,运用结构和链表会让程序的结构更明了,逻辑更清晰。这篇博客就将介绍如何用结构和链表改善之前的程序。程序实现:

2016-11-17 22:42:20 8063 1

转载 C语言实现贪吃蛇(二)----局部刷新

前言:在上一篇博客《C语言实现贪吃蛇(一)—-数组实现》,我们使用数组来存储坐标,并且不断的通过全屏刷新的方式来实现蛇移动的动态效果。但是全屏刷新使得该游戏整个过程中的闪烁现象,究其原因,无非就是在于频繁的清空与打印。但是想想看,整个游戏过程中并不需要重复打印整个界面,比如围墙,比如未被吃掉的食物。要实现蛇的移动,我们只要打印出新的蛇头,清除原来的蛇尾就好了。食物只有在被吃掉时才需要重新打印,边界更

2016-11-17 21:16:28 4001

原创 C语言实现贪吃蛇(一)----数组实现

本人是一个C语言新手,在网上看到有的人用C实现了贪吃蛇的游戏,想着为了巩固一下自己的C语言,然后就学着写了一个,当然基本上是Copy别人的代码,然后加上自己的理解。在这里做一下记录,也希望能够帮助那些跟我差不多的同学。一、贪吃蛇实现原理:贪吃蛇游戏在理论上是可以无限的进行下去的(除了撞墙和咬到自己),那么游戏主体就一定是个循环。蛇是如何动起来的?在这里就是通过不断改变蛇的坐标,然后根据蛇的坐标不

2016-11-16 22:54:16 13319 5

原创 C语言读取指定文件夹下的所有文件(各种信息)

前言:由于在做老师布置的作业过程中需要用到读取文件夹下所有文件的功能,由于之前还没有用 C 语言试过,后面还是通过各种百度之后才解决掉。在这里做个记录,以后查阅方便。分析:1、头文件: 要实现我们浏览某文件夹下各种文件信息的功能,我们首先得引入对应的头文件:#include <io.h>该头文件包含用于存储文件信息的结构体和读取文件的各种操作。2、存储文件信息的结构体:这个存储文件信息的结构体的的

2016-11-09 14:12:24 21462

原创 PHP实现排序算法----堆排序(Heap Sort)

算法引进:在这里我直接引用《大话数据结构》里面的开头:在前面讲到 简单选择排序 ,它在待排序的 n 个记录中选择一个最小的记录需要比较 n - 1 次,本来这也可以理解,查找第一个数据需要比较这么多次是正常的,否则如何知道他是最小的记录。可惜的是,这样的操作并没有把每一趟的比较结果保存下来,在后一趟的比较重,有许多比较在前一趟已经做过了,但由于前一趟排序时未保存这些比较结果,所以后一趟排序时又重复执

2016-11-08 21:13:33 3992 1

原创 PHP实现排序算法----希尔排序(Shell Sort)

基本思想:希尔排序是指记录按下标的一定增量分组,对每一组使用 直接插入排序 ,随着增量逐渐减少,每组包含的关键字越来越多,当增量减少至 1 时,整个序列恰好被分成一组,算法便终止。操作步骤:先取一个小于 n(序列记录个数) 的整数 d1 作为第一个增量,把文件的全部记录分组。所有距离为 d1 的倍数的记录放在同一个组中。先在各组内进行 直接插入排序;然后,取第二个增量 d2 < d1 重复上述的分组

2016-11-08 19:04:51 2930

zxcvbnmwewrer

2017-01-05

hamster.swf

2017-01-05

堆是不是完全二叉树呀?

发表于 2016-09-28 最后回复 2016-09-29

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