自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rainlua的博客

记录学习历程

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

原创 SpringBoot整合RabbitMQ

1.RabbitMQ简介RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。本文参考:http://www.ityouknow.com/springboot/2016/11/30/spring-boot-rabbitMQ.htmlAMQP : Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协...

2020-02-07 11:40:25 167

原创 SpringBoot整合kafka

1.概念简介1).kafka简介Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用Scala 语言编写,目前是 Apache 的开源项目。2).关键知识介绍 Kafka将消息以topic为单位进行归纳; 将向Kafka topic发布消息的程序成为producers; 将预订topics并消费消息的程序成为c...

2020-02-06 15:54:56 144

原创 SpringBoot整合Redis

1.概念简介Redis是完全开源免费的,遵守 BSD 协议,用C语言开发的一个高性能键值对数据库,可用于数据缓存,主要用于处理大量数据的高访问负载。Redis 与其他 key - value 缓存产品有以下三个特点:(1)Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。(2)Redis 不仅仅支持简单的 key-value 类型的数...

2020-02-05 15:02:45 124

原创 整合springbootSecurity和JWT实现登录认证和权限管理

1.组件简介SpringSecuritySpringSecurity是一个强大的可高度定制的认证和授权框架,对于Spring应用来说它是一套Web安全标准。SpringSecurity注重于为Java应用提供认证和授权功能,像所有的Spring项目一样,它对自定义需求具有强大的扩展性。JWTJWT是JSON WEB TOKEN的缩写,它是基于 RFC 7519 标准定义的一种...

2020-01-31 15:39:07 857

原创 线程的实现方法

1.继承Thread类,重写run()方法/** * 继承Thread 类 */class MyThread extends Thread{ public void run(){ System.out.println("Thread Body"); }}public class Test{ public static void ...

2020-01-23 15:09:57 117

原创 单例模式的5种实现

1.懒汉模式所谓懒汉模式,就是在类装载的时候就对象就已经被实例化实例化要素:A: getInstance ->获取实例方法;B:instance 实例对象C: private 构造函数 (在其他class无法new出来)实现代码:public class singleton { /** * 饿汉式:指全局的类实例在类装载时构建,类无法做到延...

2020-01-23 11:20:53 104

原创 python sqlite学习

# -*- coding: UTF-8 -*-#!/usr/bin/pythonimport sqlite3import time conn = sqlite3.connect('test.db')c = conn.cursor()c.execute('''CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL,

2017-12-28 14:48:35 253 1

原创 树莓派安装wordpress

前述已经安装好了apache和php支持模块Install MySQLMySQL(发音为My Sequel或My S-Q-L)是一个流行的数据库引擎。和PHP一样,它在Web服务器上的占有率也越来越高。 这就是为什么像WordPress这样的项目使用它,为什么这些项目如此受欢迎。通过在终端中输入以下命令来安装MySQL服务器和PHP-MySQL包:sudo ap

2017-11-26 22:44:11 1163

原创 树莓派web server搭建

1.web服务器选择可以在树莓Pi上使用web服务器来托管一个完整的网站(在您的网络上本地或在internet上),或者仅仅使用它来显示您希望在您的网络上共享的某些信息。有各种各样的web服务器,它们的使用优势各不相同:1.Apache2.NGINX我这里选用apache

2017-11-26 22:24:08 1821

原创 linux 基本文件操作

linux下的find文件查找命令与grep文件内容查找命令linux下的find文件查找命令与grep文件内容查找命令  在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。  区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。                (2)

2017-11-21 12:56:50 249

原创 C++ struct

struct一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如array、struct、union等)的数据单元。结构体的概念在C++中的得到了扩展,可以加入成员函数,可以说与c的不同之处在于访问权限的不同对于结构体,编译器会自动进行成员变量的对齐,以提高运算效率。缺省情况下,编译器为结构体的每个成员按其自然对界(n

2017-10-20 10:27:03 241

转载 sizeof和strlen的区别

char str[20]="0123456789"; int   a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int   b=sizeof(str); /*b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存储的内容影响==================================

2017-10-03 10:16:06 281

原创 C++ STL(一)STACK &&queue

1.c++stl栈stack介绍C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。c++ stl栈stack的头文件为: #include  c++ stl栈stack的成员函数介绍操作 比较和分配堆栈empty()堆栈为空则返回真pop()移除栈顶元素push

2017-10-02 22:41:16 231

转载 C/C++中volatile关键字详解

1. 为什么用volatile?    C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler that

2017-09-26 22:20:17 150

转载 linux进程间通信

Linux进程间通信总结1. 管道管道是Linux支持的最初Unix IPC形式之一,具有以下特点:(1)管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;(2)只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);(3)单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独

2017-09-23 20:11:46 280

转载 大端和小端

或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反复复,让你十分困扰。如果你和以前的笔者一样,有过这种不快的经历,那么这篇文章希望能帮你彻底解决这个苦

2017-09-23 19:32:26 456

原创 设计模式

1.设计模式的类型根据设计模式的参考书 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 中所提到的,总共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行

2017-09-21 12:28:24 193

原创 mysql 复习

最近面试和笔试遇到了很多数据库方面的知识,所以先复习一下;1.什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓

2017-09-19 21:16:50 296

原创 C++多态的复习

1.继承访问控制和继承派生类可以访问基类中所有的非私有成员。因此基类成员如果不想被派生类的成员函数访问,则应在基类中声明为 private。我们可以根据访问权限总结出不同的访问类型,如下所示:访问publicprotectedprivate同一个类yesyesyes派生类yesyesno外部

2017-09-13 11:46:11 173

原创 vector的使用

1.C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++ 标准模板库的核心包括以下三个组件:组件描述容器(Containers)容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vect

2017-09-13 11:16:25 229

转载 互联网协议入门(二)

作者: 阮一峰日期: 2012年6月11日上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想。这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。==============================================================互联网协议入门(二)作者:阮一峰(

2017-09-06 20:41:49 227

转载 互联网协议入门(一)

作者: 阮一峰日期: 2012年5月31日我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网

2017-09-06 20:40:21 185

原创 最近的一点感想

1.近来家里出了事情,母亲不幸 罹患癌症,一直在医院陪着,深感化疗的艰辛,程序员也需要一个健康的身躯,所以加强锻炼刚知道这件事的时候我刚从美的实习回来,当着妈妈的面我忍住没哭,可是当大姨他们走了。我一个人在楼下哭了好久。想我独自一人在外求学,一年也没有几次见父母的机会,以后有时候还是珍惜眼前人,

2017-09-06 19:58:05 204

转载 豆瓣上对操作系统OSC的书评

一位阿宅罗嗦的OSC书评 坏人C评论 Operating System Concepts, Seventh Edition2009-09-21 06:27:45 本科上操作系统这门课的时候第一次看这本书,当时看的是郑扣根先生翻译的中文版。其实我本科学校用的是清华的那本很薄的书做教材,但是当时身边一牛人推荐我看这本传说中操作系统3大牛书之一的恐龙书(因其英文版封面是真恐龙而得名)。因

2017-08-14 10:24:22 764

转载 动态规划算法

一. 动态规划设sum[i]为以第i个元素结尾且和最大的连续子数组。假设对于元素i,所有以它前面的元素结尾的子数组的长度都已经求得,那么以第i个元素结尾且和最大的连续子数组实际上,要么是以第i-1个元素结尾且和最大的连续子数组加上这个元素,要么是只包含第i个元素,即sum[i] = max(sum[i-1] + a[i], a[i])。可以通过判断sum[i-1] + a[i]是否大于a[i]

2017-08-10 16:23:35 161

原创 算法复习--排序

排序中主要有插入排序、冒泡排序、归并排序、快速排序等主要从空间消耗、时间复杂度、最差时间复杂度等方面考虑算法的好处;1.插入排序插入排序是一种简单直观的排序算法。它的工作原理非常类似于我们抓扑克牌         对于未排序数据(右手抓到的牌),在已排序序列(左手已经排好序的手牌)中从后向前扫描,找到相应位置并插入。  插入排序在实现上,通常采用in-place排序(即

2017-08-04 17:20:00 189

原创 数据结构与算法(三)--二叉树

一:树(理论学习)  我们思维中的”树“就是一种枝繁叶茂的形象,那么数据结构中的”树“该是怎么样呢?对的,他是一种现实中倒立的树。 1:术语     其实树中有很多术语的,这个是我们学习树形结构必须掌握的。       父节点,子节点,兄弟节点                  这个就比较简单了,B和C的父节点就是A,反过来说就是B和C是A的子节点。B和C就是兄

2017-08-03 17:54:29 229

转载 数据结构与算法(二)--哈希函数

1.哈希表的理解a:C++的stl模板STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展

2017-08-01 14:01:22 302

原创 算法基础学习(一)--基础复习

1.数组最简单的数据存储结构,连续内存,需要预先分配空间先来了解一下时间效率:算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的

2017-07-25 20:23:34 326

转载 linux基本操作

前言:在linux下,开发工具被切割成一个个独立的小工具。各自处理不同的问题。例如:编辑器(emacs, vim) 用来进行编辑程序的调试器(gdb) 用来调试程序编译器(GCC) 用来编译和链接程序的性能分析工具(gcov, gprof) 用来优化程序的文档生成器(doxygen) 用来生成文档的1.gcc基本操作GCC不仅是通常意义上的C或C++的编译器,它还可

2017-07-24 21:03:07 216

原创 C++复习--链表数组

1.动态数组的创建//动态数组的创建int cloum, row;//申请空间int **a = new int*[cloum];for (int i = 0; i < cloum; i++){ a[i]=new int* [row];}

2017-07-20 11:06:26 972

原创 android 入门操作

1.gradle 下载,传送门http://services.gradle.org/distributions/下载对应版本的gradle,一般路径:C:\Users\Administrator.PC-20160807IWSY\.gradle\wrapper\dists

2017-07-14 19:56:20 146

原创 qt 学习

一、Qt基本数据类型转换1.字符串和数组 的基本操作1.1 int、double和string转换QString::number(f)//将f转换成"f"1.2 向数组里添加元素list.append(f);//在list尾插入fISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF。亦称为Latin1string.tolatin1//转换成byte2.qt d...

2017-07-14 15:41:23 353

原创 git远程协作

1.在GitHub上的仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库把本地推送到github仓库git remote add origin https://github.com/rainluacgq/HelloWorld.gitgit push -u origin master远程库的名

2017-07-03 19:17:04 311

原创 linux驱动开发

1.驱动定义:驱动硬件是操作系统最基本的功能,操作系统通过各种驱动程序驾驭硬件设备树莓派输入指令可以清晰的看到:加载了uart,bluetooth等驱动2.实例:第一个驱动程序HelloWorld

2017-07-02 10:21:38 1024

转载 socket 套接字理解

socket我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程。能够唯一标示

2017-06-29 20:01:23 372

原创 多线程

1.线程和进程最直观的就是一个个pid(linux系统可以很清晰的看到),官方的说法就:进程是程序在计算机上的一次执行活动。而线程就是threading 一个main 函数可以创建多个 线程,但是会影响程序的运行速度;线程我觉得就像是ucos里面的任务,最高级的start 任务就是进程,创建多个任务 task1...taskn2.java 线程创建方法1)利用Runnable

2017-06-29 16:49:26 168

原创 java 事件与委托

首先理解一下java GUI的实现过程:用户在界面上用鼠标或者键盘操作时,就会产生例如click事件,然后程序根据事件作出相应的动作(method)例如:在button上点击,将产生一个actionEvent类型的事件,一般实例化一个actionEvent e,利用对象e的诸多属性可执行相应的动作。ex:java button监听器模型(android 第一个入门程序)public c

2017-06-29 15:35:37 620

原创 java char 和string

1.java中char 是'a ',string "a"2.动态数组的创建和遍历ArrayList book =new ArrayList();//指定arraylist 元素为 string public Book(String name) { this.BookName=name; book.add(name); for(String tep:mybook.book )

2017-06-29 09:51:33 260

原创 java父类和子类的相互访问

首先新建一个course父类:public class course { private String courseName; private int courseNum; private int CourseNameS; public void SetcourseName(String name) { this.courseName=name; } public

2017-06-28 11:23:27 523

空空如也

空空如也

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

TA关注的人

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