- 博客(34)
- 资源 (1)
- 收藏
- 关注
原创 wsl2 安装ubuntu 或者debian启动失败,显示远程主机关闭了一个现有的连接
官方github描述该bug未修复有人提出可以通过修改host文件(主要是最后一行的),可以解决该问题,亲测有效127.0.0.1 localhost127.0.0.1 localhost.localdomain127.0.0.1 local255.255.255.255 broadcasthost::1 localhost::1 ip6-localhost::1 ip6-loop...
2019-11-05 10:16:27
1961
1
原创 c++ std::to_string doube或float去除小数点尾部的0
标准库std::to_string(double) 可以将一个float或者double转换成字符串,但是会直接变为.000000的格式(如果尾部为0).这里使用正则匹配的方式去除尾部的0.(当然也可以使用boost的boost::lexical_caststd::string精确方式,但是会出现.99999999999999999999)因此static std::string doub...
2019-01-02 14:29:21
13097
2
原创 c++创建型设计模式--工厂模式--抽象工厂(多个产品的构建--系列)
在基类CarBase基础上进行构建基类#pragma once#include <iostream>/** * 基类指针 *Date :[10/12/2018 ] *Author :[RS] */ class CarBase {public: virtual ~CarBase() { std::cout << "析构 carBase" <&...
2018-10-12 10:49:58
369
原创 c++创建型设计模式--工厂模式--工厂方法(单个产品的构建--对简单工厂的改善)
主要是修改了简单工厂不符合开闭原则的限制基类和子类与简单工厂一致工厂方法类#pragma once#include "CarBaseExtens.hpp"#include <memory>class CarFacotryMethod {public: template<class T> static std::shared_ptr<CarBase&g...
2018-10-12 09:37:30
138
原创 c++创建型设计模式--工厂模式--简单工厂(单个产品的构建)
思想主要是对于单个简单的产品进行构建基类#pragma once#include &lt;iostream&gt;/** * 基类指针 *Date :[10/12/2018 ] *Author :[RS] */ class CarBase {public: virtual ~CarBase() { std::cout &lt;&lt; "析构 carBase" &
2018-10-12 09:24:00
303
原创 c++ 单例模式--双重校验+锁--懒汉式[4]**推荐
基本类#include <memory>#include <mutex>using namespace std;template<typename T>class SingletonPtr {private: class Delete { public: void operator()(T *p) { delete p; } };...
2018-10-09 13:12:08
1179
原创 c++饿汉式模板单例[4]
模板类#pragma oncetemplate<typename T>class EargerSingleton {public: static T& getInstance() { return instance; }protected: EargerSingleton() = default; ~EargerSingleton() = default;...
2018-10-09 11:05:41
431
原创 c++单例模式[3]--模板设计和使用(饿汉式不推荐,因此使用懒汉式做模板)
##基本模板类#pragma once#include &lt;iostream&gt;#include &lt;thread&gt;using namespace std;/***Meyers 方案(利用语言级别的静态成员属性来实现)* 1优化了 判断消耗,* 2优化了释放实例,不会导致内存泄露* 3多线程下保证一个实例(但是并不是真正意义的线程安全实现--vs2010以上可以...
2018-10-09 10:51:13
367
原创 c++单例模式[2]--Meyers方式--多线程单例--vs2010以上推荐(可以保证类成员属性的初始化完成)
[1]单例模式中最大的缺陷就是线程安全与判断的开销#pragma once#include &lt;iostream&gt;#include &lt;thread&gt;using namespace std;/** *Meyers 方案(利用语言级别的静态成员属性来实现) * 1优化了 判断消耗, * 2优化了释放实例,不会导致内存泄露 * 3多线程下保证一个实例(但是并不是...
2018-10-09 09:28:29
354
原创 c++单例模式[1]--懒汉式基础版
单例模式基本版–单线程#pragma once#include <iostream>#include <thread>/** *单例模式标准实现 5步走(懒汉式) 1静态私有实例指针 2拷贝赋值私有化 3构造析构私有化 4全局访问与释放 5静态内部实例指针全局实例 *Date :[10/9/2018 ] *Author :[RS] */usin...
2018-10-09 08:58:56
123
原创 std future使用(简单)
#include <iostream>#include <vector>#include <thread>#include <functional>#include <atomic>#include <mutex>#include <future>/** *std future作用 1取回另一个线
2018-10-08 11:04:44
2150
翻译 std call_once使用
##callonce使用#include <iostream>#include <vector>#include <thread>#include <functional>#include <atomic>#include <mutex>/** *多线程达到同步效果 1原子操作顺序 2互斥量+锁 3条件变...
2018-10-08 10:38:29
205
原创 docker mysql 远程登录--搭建Gogs(compose编排)
compose文件# mysql servicemydb: image: mysql:latest ports: - "13306:3306" environment: MYSQL_ROOT_PASSWORD: riversky volumes: - /opt/mydata2/:/var/lib/mysql - ./my.cnf:/etc/my....
2018-09-25 16:10:54
509
原创 boost bimap中对象的反向查询(需要override>方法)
核心点:override >直接上demo 工具类Logger可以直接用cout进行代替,这里使用的是封装后的的spdlog库#include <boost/bimap.hpp>struct User { User() {} User(std::string name,uint32_t ids,std::string psw):username(...
2018-09-06 10:50:01
247
原创 剑指offer笔记--2基础知识--数据结构(链表)
链表的结构比较简单,它由指针把若干个节点连接成链状结构。链表的创建。插入删除比较简单。 题目:输入一个链表的头结点,从尾到头反向打印出每个节点。java代码package cn.riversky.demo5;import java.util.Stack;/** * 输入一个链表的头结点,从尾到头反向打印出每个节点。 * @author riversky E-mai...
2018-03-11 21:24:12
161
原创 剑指offer笔记--2基础知识--数据结构(字符串)
字符串是由若干个字符组成的序列。并且字符串一旦构造后不可改变。 题目请实现一个函数,把字符串中的每个空格替换成%20,例如输入"we are happy." ,则输出为"we%20are%20happy"。(这样输入的原因主要是在网络编程中会将空格替换成这样的字符串,替换原则是将特殊符号转换成%+ascii)package cn.riversky.demo4;/** * @...
2018-03-11 21:08:32
124
原创 剑指offer笔记--2基础知识--数据结构(数组)
数组是占用一块连续的内存,并且按照顺序的方式进行存储,占用大小为=len(类型)*长度。并且在初始化的的时候就需要指定容量的大小。在知道数组长度的前提下,这种方式是最优的读写型数据结构(非移动)。 题目需求在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序进行排序。求判断,该数组中是否含有某个数。数据1 2 8 92 4 ...
2018-03-11 19:45:58
110
原创 剑指offer笔记--1--基本要求
1基础知识主要包含编程语言,数据结构和算法2高质量代码保证代码的正确性、完整性的基础上,书写鲁棒的高质量的代码。 比如输入的判断,异常和边界的处理,不仅仅的测试用例的部分通过。3清晰的思路主要是面对复杂性的问题,能够有条理的进行思路的分析,比如图解等方式4优化效率的能力主要是时间和空间两方面的优化,比如斐波那契数列,如果递归那么算法的时间复杂度是指数级别的...
2018-03-11 18:59:28
194
原创 设计模式--2创建型设计模式--简单工厂
package cn.riversky.create.simplefactory;/** * 简单工厂模式:定义一个工厂类,根据传入的参数构造生成不同的实例。一般通过静态方法的方式进行构建。 * 因此也称为静态工厂方法模式 * 这里设计学生抽象类,和两个实现类(班长类,助教类),和工厂类(简单工厂) * @author riversky E-mail:riversky@126.com...
2018-03-09 11:11:16
155
原创 设计模式--1--原则
设计模式7原则package cn.riversky;/** * * 面向对象设计原则 * 1单一职责原则:一个类只负责一个功能领域中的相应职责 * 2开闭原则:软件实体应对扩展开放,而对修改关闭 * 3 里氏替换原则:所有引用基类对应的地方能够透明地使用其子类的对象。 * 4 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象 * 5 接口隔离:使用多个专门的接口,而...
2018-03-09 10:47:13
109
原创 Unhandled Rejection (Error): Loading chunk 9 failed. HTMLScriptElement.onScriptComplete
解决方案 roadhog 下 .webpackrc 或者 .webpackrc.js、.roadhogrc 或者 .roadhogrc.js 配置{ "publicPath": "/"}
2018-01-30 20:57:21
15114
3
原创 Shrio-6-session 会话方案和详解----sessionDAO,缓存,验证
会话方案Shiro的会话方案一共三种基本环境web环境servlet容器session方案web环境自定义session方案 会话监听器项目源码 如果使用会话的监听,共有两种方式可以监听会话,分别为实现会话监听器接口或者会话适配器中特定的方法覆盖。 为了方便会话监听测试,shiro中的session方案。进行两个监听器的设计package cn
2018-01-27 18:29:15
3440
原创 Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.SetUtils
报错:解决方案dependency> groupId>commons-collectionsgroupId> artifactId>commons-collectionsartifactId> version>3.2.1version>dependency>
2018-01-27 17:48:55
3451
原创 Shrio-5-(web环境)过滤器使用和详解
基本部署这里进行一个简要的项目基本部署 项目源码 其中核心部分 web.xml,web容器中注册(主要是通过适配器模式和责任链链模式实现)监听器,然后将IniWebEnvironment设置为EnvironmentLoaderListener的环境类。 web-app xmlns="http://java.sun.com/xml/ns/javaee"
2018-01-27 11:32:28
244
原创 [ERROR] urls[0] = file:/Failed to execute goal org.eclipse.jetty:jetty-maven-plugin:9.3.7.v20160115:
[ERROR] Failed to execute goal org.eclipse.jetty:jetty-maven-plugin:9.4.8.v20171121:run-war (default-cli) on project web: Execution default-cli of goal org.eclipse.jetty:jetty-maven-plugin:9.4.8.v2017
2018-01-27 09:06:22
3202
原创 Shrio-4-基本使用解析
shiro容器思想使用过spring容器的都知道IOC/DI的思想,经过对容器概念的理解,再对ini配置的内容就可以方便的映射到容器中SecurityManager的组件过程,并且用户通过SecurityUtils进行使用,因此可以通过工厂模式中获取ini的SecurityManager的对象,进而通过SecurityUtils.set()的方式设置该SecurityManager接口的具体实
2018-01-25 16:00:36
265
原创 Shrio-3-授权解析
关于授权授权模块一般包含两块:角色和资源 先简单看下配置文件jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealmdataSource=com.alibaba.druid.pool.DruidDataSourcedataSource.driverClassName=com.mysql.jdbc.DriverdataSource.url=j
2018-01-24 11:51:23
310
原创 Shrio-2-认证解析
Realm存在的意义关于验证一般采用数据库或者其他的文件进行验证数据的存放,Shrio采取的存放方式有多种,抽象的来说就是Shrio中的Realm。通过Realm提供认证的一些实现。其具体结构如下 通过类图可以看出核心部分在于关键在于SecurityManager的配置文件,通过指定自定义的两个数据验证类进行验证,分析自定一的Realm可以知道,数据会从shiro.ini中获取验证的数据
2018-01-23 11:37:45
309
原创 Shiro-1-源码分析一设计模式(简单工厂)
这里先看看使用的源码 可以认为是数据库的shiro.ini数据 格式:账户=密码[users] zhang=123 wang=123 主要代码/** * @author riversky E-mail:riversky@126.com * @version 创建时间 : 2018/1/22. */public class TestChar2 { @
2018-01-22 13:18:54
1205
原创 前后端分离方案token工具类
JWT是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准,可实现无状态、分布式的Web应用授权。另外还有一种轻量级的方案(减轻网络压力)随机数token方案(在redis中做映射,该值与userid做成字典),这种方式也可达到无状态分布式服务器的情况关于jwt–官网:https://jwt.io/ 基于token的鉴权机制类似于http协议也是无状态的,它不需要
2018-01-22 10:49:46
7883
1
原创 监听器(网站在线统计实验)与过滤器(request解码response编码实验)使用
过滤器Java web开发中的过滤器(filter)是从Servlet2.3规范开始增加的功能,并在2.4中得到增强。
2017-08-29 09:20:49
444
原创 Java类中子类和基类的构造代码块,静态代码块、子类构造函数,基类构造函数的执行顺序
类加载过程这主要涉及到类加载的过程,类加载的过程主要分为三个大的过程加载、连接(验证、准备、解析)和初始化。 对类中的值进行操作的过程主要是连接阶段的准备过程和初始化。连接准备阶段连接准备阶段准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配。这个阶段中有两个容易混淆的概念需要强调一下。首先这时候进行内存分配的仅包括类变量(被static修饰的变量)
2017-08-26 15:29:36
340
原创 ExtJs学习笔记一
Ext js API文档地址 :http://extjs-doc-cn.github.io/ext4api/一框架概览 1.Ext Js作为一个框架,不仅提供了,UI部件,还提供了许多其他的特性。这些内容可以分为六大部分Ext JS核心 :主要是基础功能,包括Ajax通信,Dom操作和事件管理功能,框架里的其他东西都依赖于这个核心。https://www.sencha.c
2016-03-06 09:42:23
341
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人