自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小梦_人生如戏的博客

博主日常的学习和总结

  • 博客(40)
  • 资源 (5)
  • 收藏
  • 关注

原创 Git项目创建与项目迁移

工作中一直在用Git作为项目管理工具,最近发生了几次项目创建和项目迁移的作业,特在此总结一下,方便以后查看。目录一、项目创建1、远程服务器2、本地主机二、项目迁移1、在远程服务器创建项目2、项目迁移一、项目创建需求:在远程的Git服务器上创建新的项目,供项目组成使用。条件:Git远程服务器:[email protected]、远程服务器方便起见,直接在用户的home目录下创建在用户目录下创建目录git-test.gitmkdir git-test.g

2020-11-18 09:33:18 235

原创 Ubuntu 18.04 LTS设置固定ip

最近新装的Ubuntu 18.04 LTS搞起来还是略不习惯啊,相比之前的SUSE和CentOS差别还是比较大的。这不,想要配置个固定IP还搞了大半天。。。下面介绍一下在18.04上使用netplan命令配置静态IP。网卡信息配置在/etc/netplan/01-network-manager-all.yaml文件,需做如下配置:# Let NetworkManager manage all devices on this systemnetwork: version: 2 # rend

2020-10-17 17:11:35 1149 4

原创 C++ 容器适配器常用函数总结

C++标准库定义了三个顺序容器适配器:stack、queue和priority_queue。适配器是标准库中的一个通用的概念。容器、迭代器和函数都有适配器。 本质上,适配器是一种机制,能使某物的行为看起来像另外一种事物一样。一个容器适配器接受一种已有的容器类型,使其行为看起来像另外一种事物。例如:stack适配器接受一个顺序容器(array、forward_list除外),使其...

2020-04-08 16:55:35 261

原创 C++11 基础之多线程二

四、future和promise C++11创建了线程之后,我们不能直接从thread.joid()获取结果,C++11提供了future来获取异步操作的结果。这个结果是不能立即获取的,会在未来的某个时间内进行获取。而future和和promise的作用就是在线程之间传递数据。#include <future>void test_pro(promise<str...

2020-04-06 11:02:45 302

原创 C++ 11 基础之多线程一

C++11 增加了对多线程的支持,是多线程编程变得简单、易用。一、线程的创建#include <string>#include <thread>//用于时间延时 获取时间#include <chrono>#include <iostream>using namespace std;void test_create...

2020-04-04 17:43:21 122

原创 C++ 基础之string

一、string概述 string是一个字符串的类,它集成的操作函数足以完成大多数情况下的需要。我们甚至可以把它当作C++的基本数据类型。 头文件:#include <string> 注意:string.h和cstring都不是string类的头文件。这两个头文件主要定义C风格字符串操作的一些方法,如strcpy() 、strlen()等。string.h...

2020-04-02 11:43:23 345

原创 C++容器基础之vector

一、vector概述 vector是线性容器,元素按照线性顺序排序,容器中元素存储在一块连续的内存中,类似与数组,不过vector可以自动增长或缩小存储空间。 与数组相比:在自动处理容量的大小时会消耗更多的内存,当时vector可以提供和数组一样的性能,并且可以很好的调整存储空间的大小。 和其他标准的顺序容器相比:vector可以更有效的访问容器内元素,和在末尾添加、删...

2020-04-01 16:09:05 309

原创 C++容器基础之map详解

一、概述1、是什么 map是一类关联式容器,关联的本质在于元素值与某个特定的键相关联。增删节点对迭代器影响很小,对于迭代器而言,不可修改键,只能修改其对应的值。map内部自建一棵红黑树,对内部元素有自动排序的功能。 红黑树:一种二叉查找树,此外在每个节点上增加一个存储位表示节点的颜色,可以是red,也可以是black。通过对一条从根到叶子节点的路径上各个节点着色方式的限制,...

2020-03-31 11:15:55 317

原创 C++面试系列之 set详解

容器之set详解一、set概述

2020-03-30 21:08:02 1345

原创 leetcode problem1---Two Sum

1、题目 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。2、思路 程序中定义了一个map,存储key-value,key是vector中的元素值,value是该元素值对应的index索引值。对vector中元素...

2019-08-10 16:09:43 102

转载 C++ 中static关键字总结

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1#inclu...

2019-08-02 15:47:30 174

原创 C++ lambda表达式

lambda简介 一个lambda表达式表示一个可调用的代码单元。我们可以将其理解为一个无名的内联函数。lambda表达式形式如下: [捕获列表] (参数列表)-> 返回值类型 {函数体} 捕获列表是一个lambda所在函数中定义的局部变量的列表(通常为空),与普通函数不同,lambda必须使用尾置返回来指定返回类型。参数列表和返回类型可以省略,但是必须包含捕获...

2019-08-01 16:22:22 186

原创 Base64前世今生

一、背景 早期的一些传输协议,例如传输邮件的SMTP协议,只能传输可打印的ASCII字符(ASCII码的范围是0~127)。导致原本8Bit字节码(范围是0~255)超出了可用范围。 例如:当邮件传输图片资源的时候,某一个Byte是10111100B,对应的十进制数是188,不在ASCII码的范围内,因此无法被传输。此时,Base64编码应运而生,它利用6bit字符...

2019-06-08 14:48:04 315

原创 slf4j和Log4j

作为一个程序员,我想大家应该知道日志对于一个程序的重要性。很多情况下,日志是我们了解程序如何执行的唯一方式。对于强大的Java语言来讲,在日志方面有很多成熟的开源框架可以被直接使用,如:JDK自带的原生日志框架java.util.logging、Log4j、LogBack、Log4j2。而我们在使用日志框架的时候,建立使用日志门面的方式。那么问题来了,日志门面是什么?实际上,SLF...

2019-04-11 12:03:05 125

原创 socket通讯,长度+数据

需求:socket通讯,传输的数据格式为长度(4个字节)+数据,其中此长度不包含本身的长度服务端: ServerSocket ss = new ServerSocket(12345); Socket s = ss.accept(); InputStream is = s.getInputStream(); DataInputS...

2019-03-18 10:17:16 2163

转载 Java 字节读取流的read方法返回int的原因

为什么InputStream.read()读取一个byte确返回一个int呢?java 字节读取流的read方法一次读一个byte但返回int的原因读取二进制数据按字节读取,每次读一个字节(byte)。read()的底层是由C++实现的,返回的是unsigned byte,取值范围为[0~255],在java中没有对应的类型,所以只能用int类型接收,由Java接收得到的就是int[0...

2019-03-11 20:54:35 2083

转载 在java中String类为什么要设计成final?

转载地址:在java中String类为什么要设计成final?String很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝继承,防止世界被熊孩子破坏,维护世界和平!1. 什么是不可变?String不可变很简单,如下图,给一个已有字符串"abcd"第二次赋值成"abcedl",不是在原内存地址上修改数据,而是重新指向一个新对象,新地址。...

2019-03-06 16:00:36 123

原创 java中i=i++

1、i++和++i自增的两种形式:i++表示先赋值后加1,++i表示先加1后赋值2、i=i++,看如下代码:public class Test { public static void main(String[] args) { int i = 0; i = i++; System.out.println("i=" + i);...

2019-02-20 15:33:32 2108

原创 HashMap实现原理及源码分析

一、什么是哈希表       哈希表和数组、链表、二叉树一样,是一种数据结构。和其他数据结构相比,哈希表在进行添加、查找、删除等操作时具有十分好的性能,在不考虑哈希冲突的情况下,只需要一次定位即可完成操作,时间复杂度为O(1)。       计算机底层的物理存储结构分为两种:顺序存储和链式存储。我们一般意义上说的栈、队列等结构是逻辑结构。数组中查找元素是根据index查找,一次定位即可实现...

2018-11-22 21:40:27 131

原创 netty心跳检测,定时任务

刚接触Netty,写的不好敬请谅解。最近有一个需求,需要从客户端客户端定时的向服务器发送数据,通知服务器自己的一些状态信息,比如本地的cup使用率,内存使用率等信息,大体实现如下: 是用到了java提供的线程池,              newScheduledThreadPool:定长线程池,支持定时及周期性任务执行。TestTask.java:public clas...

2018-10-20 10:07:17 3148

原创 netty拆包粘包

 一、TCP拆包粘包       TCP是个“流”协议,所谓流,就是没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的包进行发送,这就是所谓的TCP拆包粘包的问题。二、问题的解决策略:1、消息定长,例如每个报文的大小是固定长度200字...

2018-09-21 22:19:28 226

原创 单例与多线程

单例的两种实现:1、立即加载(饿汉模式)public class Singleton { private static Singleton singleton = new Singleton(); private Singleton(){ } public static Singleton getInstance(){ return s...

2018-09-18 21:25:11 85

原创 java线程,interruped()和isInterrupted()

 首先看一下中文解释及API实现:1) interrupted():测试当前线程是否已中断。public static boolean interrupted() { return currentThread().isInterrupted(true);}是静态方法,属于类。2)isInterrupted():测试线程是否已中断public boolean i...

2018-09-18 14:44:45 320

原创 jsch实现sftp秘钥登录,传输文件

需求:实现文件的上传和下载,对安全性有较高的要求。在ftp与sftp中选择sftp,SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议,可以为文件提供一种安全的加密方法。跟ftp的语法功能几乎一模一样。sftp传输方式采用了加密/解密技术,故效率要比ftp低很多,当对安全性要求更高的时候,代替ftp使用使用秘钥方式建立连接,秘钥配置如下:假设服...

2018-08-07 15:00:49 8076 3

原创 Java 对象与垃圾回收

    当程序创建对象、数组等引用型实体的时候,系统会在堆内存中分配一块内存区,对象保存在这块内存区中,当该内存不再被任何引用变量引用时,这块内存就变成了垃圾,等待垃圾回收机制进行回收。垃圾回收机制的特征:1、只负责回收堆内存中的对象,不会回收任何的物理资源(数据库连接、网络IO等资源)。2、程序无法精确控制垃圾回收的进行,垃圾回收会在合适的时候进行当对象永久性失去引用后,系统会在合适...

2018-08-06 15:41:00 510

转载 Java的native关键字

今天研究Java基础类库,Object类的时候,发现了一个关键字:native咦?这是个什么东东?它认识我,我可不认识它!嘿嘿,没关系,baidu一下。 java native关键字 一. 什么是Native Method   简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现...

2018-07-20 15:20:34 96

原创 使用jsch中ChannelShell,使用readline方法读取执行结果时,被阻塞

最近使用jsch中的ChannelShell,使用BufferedReader的readLine()方法读取返回结果,代码如下:while ((line = dataIn.readLine()) != null){ stdout.add(line);}执行的时候,代码一直在while循环中,无法跳出该循环。原因:        在代码中,使用的是ChannelShell...

2018-07-17 16:31:34 9217 3

原创 Linux下,mysql重置密码以及转储、导入sql文件

一、mysql重置密码root用户登录Linux1、修改/etc/my.cnf文件    #vi /etc/my.cnf    在[mysqld]后添加  skip-grant-tables2、重启mysql服务    如果是mysql:/etc/init.d/mysqld restart    如果是mariadb:systemctl restart mariadb3、登录数据库    mysq...

2018-06-09 10:05:43 577

原创 后台运行Linux服务器程序

Problem:    用XShell远程连接Linux服务器,使用命令开启服务器程序,但是当我把XShell关掉的时候,服务器程序也跟着关掉了,如何让Linux服务器上的程序一直执行呢?Solution:    在Linux命令中,有一个nohup命令,可以让程序后台执行,就算你把XShell关掉,程序依然执行,现在讲解一下,nohup命令的用法。    nohup    命令    用途:不挂...

2018-05-17 10:06:20 774

原创 Zookeep启动异常:Error contacting service. It is probably not running

我的zk集群有三台机器,其中一台机器突然就挂了,zk启动的时候没有报错,但是查看zk状态的时候报错Error contacting service. It is probably not running从网上搜索这个异常的解决方法,尝试了一些方案,但是问题仍然未解决。         之后想起来查看zk的日志,日志如下:           从日志来看,应该是配置文件出

2018-05-09 15:49:57 374

转载 设计模式之策略模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述策略(Strategy)模式的:  策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构  策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系...

2018-04-30 10:39:09 82

转载 并发模型:Future模式

 多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future、Master-Worker、Guard Susperionsion、不变、生产者-消费者 模式;jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池;    锁(分为内部锁、重入锁、读写锁)、ThreadLocal、信号量等在并发控制中发挥着巨大的作用。这里重点介绍第一种并发——Future模型。一、什么...

2018-04-28 16:35:50 151

原创 java获取本地真实ip

一、问题在获取本地ip这个问题上遇见了问题。1、InetAddress.getLocalHost()得到的是VMnet8的ip地址,而并非本地真实ip。2、InetAddress.getLocalHost().getHostAddress()获取到的是127.0.0.1二、解决方法接下来上正确代码:StringBuilder sb = new StringBuilder(); tr...

2018-04-28 11:31:24 6547 2

原创 log4j自动加载

在项目中,log4j的jar导入之后,会自动加载配置文件。看源代码:    快捷键,进入org.apache.log4j.Logger中的getLogger()方法:    继续,进入LogManager类中,查看该类的静态代码块:    到这里我们可以看到,加载该类的时候,会进行判断,找不到配置的话,log的配置的话,会优先找log4j.xml文件,然后再去找log4j.properties文件...

2018-04-27 11:10:37 483

转载 ZooKeeper原理及使用

ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。Z...

2018-04-19 11:03:55 159

原创 zookeeper状态和事件类型以及znode类型

事件类型(znode节点相关):①EventType.NodeCreated:节点创建②EventType.NodeDataChanged:节点数据变更③EventType.NodeChildrenChanged:子节点变更④EventType.NodeDeleted:节点删除状态类型(客户端实例相关):①KeeperState.Disconnected:未连接②KeeperState.SyncC...

2018-04-18 10:04:38 996

原创 zookeeper集群搭建

环境:win10下的vmware12虚拟机,centos7(简易版)一、前期准备    1、jdk1.8安装,我的另外一篇文章有讲解。    2、下载安装包,我下载的是    3、三台虚拟机的ip是192.168.136.130,192.168.136.131,192.168.136.132二、安装    1、将安装包拷贝到centos中,使用的是SSH连接的centos,拷贝到/usr/loca...

2018-04-18 10:02:02 150

原创 win10 上vmware12虚拟机centos7安装jdk

环境:win10 上vmware12虚拟机centos7简易版本Jdk: jdk-8u11-linux-x64.tar(网站 --》https://download.csdn.net/download/qq1137623160/10046280)工具:ssh (用来拷贝文件)步骤:1、  在/usr/下新建文件夹java,使用ssh将jdk拷贝到/usr/java/目录下2、  cd /usr/j...

2018-04-13 11:06:20 421

原创 C++往string数据前添加四个字节的首部表示数据长度

采用移位的形式实现:int realLength = dataLength + sizeof(int);//dataLength是数据的长度char *sendData = new char[realLength];//sendData是最后得到的数据 memset(sendData, 0, realLength*sizeof(char));//sendData初始化int num

2018-01-07 08:16:47 1296

原创 Linux下C++动态库

本人是刚毕业的大学生一枚,这是写的第一篇博客,若有不对的地方,恳请指正!由于工作原因,不得已在Linux下开发项目,而且还是用C++,对于C++,本人是有一些白痴的。项目完成,在此做一下总结,给自己一个交代。首先先对动态库方面的只是做一个总结      1、动态库的简单介绍                 首先,动态库就是动态链接库,本人有些懒,一下都成为动态库。在Linux下,动

2017-01-25 15:00:32 454

c++primer高清中文版-第5版.zip

C++是一门强大、难学、令人痛苦,但又是如此美妙的编程语言,在工业界和学术界都可以使用,《C++ Primer(第5版)》即针对初学者,也同样适用于有一定编程经验的读者,第5版配备了C++11新标准,是C++粉丝们书架上必备的一本经典著作。一书在手,架构无忧;三十位一线架构师真知实践;百位架构师献计献策;十万文字尽显架构精华。

2019-07-15

java Date工具类

最近由于项目需要写了一些关于操作Date的代码,建议把经常需要的工具类保存下来,以备不时之需

2018-05-25

notepad++json插件

notepad++64位,json插件有些不好找,32位的话直接用plugin Manager下载就可以,但是64只能手动下载,此压缩包中32位和64位json插件都有。

2018-05-25

网络调试工具NetAssist

网络调试小工具,支持TCP和UDP,非常好用,短小而精悍,欢迎使用。

2018-04-20

Linux下C++动态库

Linux下C++动态库的小Demo,本人亲测,完全没问题,包含源代码、makefile文件以及测试代码,很齐全哦!

2017-01-25

空空如也

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

TA关注的人

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