自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cheng_913的博客

大家好,由于本人是初学者,如有错误之处,请评论留言指正。

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

原创 Java 8语法学习

文章目录1. Lambda表达式2. 方法引用与构造器引用方法引用构造器引用和数组引用3. Stream API创建Stream中间操作终止操作4. Optional类1. Lambda表达式格式:-> :lambda操作符 或箭头操作符左边:lambda形参列表,其实就是借口中的抽象方法的形参列表右边:malbda体,气死就是重写的抽象方法的方法体lambda表达式的使用总结:左边:lambda形参列表的参数类型可以省略(类型推断);如果lambda形参列表只有一个参数

2020-09-20 23:15:37 231

转载 mac下国内安装Homebrew教程

mac下国内安装Homebrew教程Homebrew是一款包管理工具,目前支持macOS和linux系统。主要有四个部分组成: brew、homebrew-core 、homebrew-cask、homebrew-bottles。名称说明brewHomebrew 源代码仓库homebrew-coreHomebrew 核心源homebrew-cask提供 macOS 应用和大型二进制文件的安装homebrew-bottles预编译二进制软件包本文主要介绍

2020-11-12 22:40:42 945

转载 VIM使用

转载地址:https://www.runoob.com/linux/linux-vim.html 1、什么是 vim? Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是...

2020-09-30 16:12:28 671

原创 Jenkins安装与使用(二)

文章目录3. 添加项目3.1 添加凭证-配置git3.1.1 添加凭证3.1.2 验证3.2 添加全局变量-配置jdk和maven3.2.1 添加配置3.2.2 验证3.3 发布3.3.1 项目配置3.3.2 验证3.4 总结Jenkins安装与使用(二)3. 添加项目首先,我们捋一遍持续集成的流程:开发人员提交代码,到git仓库;jenkins作为持续集成工具,使用git工具到git仓库拉取代码到服务器上;配合jdk,maven等工具完成代码的编译,测试,打包等工作;jenkins把生成

2020-09-23 23:14:08 495

原创 @RequestParam @RequestBody @PathVariable用法小结

@RequestParam@RequestParam接收的参数是来自于RequestHeader中,即请求头。@RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。一般用于Get请求,常见的URL:http://localhost:8080/test/findByIdAndName?id=1&name=zhangsan”后端: @RequestMapp

2020-08-29 17:59:48 1020

原创 Jenkins安装与使用(一)

1. 持续集成1.1 什么是持续集成持续集成( Continuous integration , 简称 CI )指的是,频繁地将代码集成到主干。 持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。通过持续集成, 团队可以快速的从一个功能到另一个功能,简而言之,敏捷软件开发很大一部分都要归 功于持续集成。1.2 jenkins简介​ Jenkins是一款流行的开源的持续集成工具,是基于

2020-08-24 21:36:54 411

转载 Centos7安装mysql

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1 下载并安装MySQL官方的 Yum Repository[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可

2020-08-23 17:24:53 111

原创 win10同时安装两个jdk版本切换问题

前提通常童鞋们安装的jdk版本应该都是1.8,由于工作需要用到jdk1.7,安装之后,发现配置了环境变量没有生效,但是又不想卸载了重新安装,看了网上很多的博客,在此将自己的操作过程整理出来。操作过程首先已经安装过jdk1.8并配置好环境变量了;在此基础上再安装jdk1.7并配置环境变量。进入cmd在控制台输入java -version显示的仍然是jdk1.8;删除环境变量中最前面的C:\ProgramData\Oracle\Java\javapath;。在安装jdk8的时候,安装过程中会在系

2020-08-23 16:15:26 2058

原创 Spring Boot文件上传和下载

1. 文件上传前端HTML代码<form method="POST" action="/uploadFile" enctype="multipart/form-data"> <input type="file" id="file_input"name="file" /><br/><br/> <input type="su...

2019-09-01 12:05:27 160

原创 【MySQL】事务,隔离级别,锁,并发性

MySQL事务,隔离级别,锁,并发性数据库语言类型事务并发一致性问题封锁封锁粒度封锁类型封锁协议事务的隔离级别多版本并发控制(MVCC)实现过程快照读与当前读InnoDB如何解决幻读问题?数据库语言类型数据查询语言(DQL)select数据操作语言(DML) insert,update,delete主要用来对数据库的数据进行操作数据库定义语言(DDL)create,alter,drop用...

2018-10-07 21:56:56 702

原创 LeetCode 547 Friend Circles(朋友圈问题)

题目描述: 班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道,输出所有学生中的已知的朋友圈总...

2018-08-25 17:46:36 1621

转载 动态规划专题之--- Unique Binary Search Trees

动态规划专题之— Unique Binary Search Trees ...

2018-08-21 14:53:18 251

原创 【python】字符串翻转

python中常见的字符串反转的方法s = &quot;abcdef&quot;#1. 切片操作def string_reverse1(string): print(string[::-1])s1 = string_reverse1(s)#2. 使用列表的reverse函数def string_reverse2(string): li = list(string) li.r...

2018-08-10 23:16:46 345

原创 【C++】强制类型转换

C++中四种强制类型转换:static_cast, reinterpret_cast, const_cast, dynamic_cast1. static_cast(编译时类型检查)用于非多态类型之间的转换(静态转换),任何标准类型之间都可以用它,但它不能用于不相关类型之间的转换。主要有以下几种用法:用于基本的数据类型之间的转换,例如把int转换为char,把int转换为enum,但...

2018-07-28 16:25:51 182

原创 数字和Sum的方案数

题目描述 给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入描述: 输入为两行: 第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000) 第二行为n个正整数Ai,以空格隔开。 输出描述: 输出所...

2018-07-28 15:11:15 669

原创 1+2+3+...+n

题目:计算1+2+3+…+n,要求:不使用if, while, for, switch, case等关键字及三目运算符。看到题目要求不能使用这么多关键字,那么可以考虑用递归。int Sum_Solution(int n, int&amp; sum){ n&amp;&amp;Sum(n - 1, sum); return sum += n;}void test()...

2018-07-26 16:45:00 1070

转载 01背包问题(动态规划)

总结——01背包问题 (动态规划算法) 0-1 背包问题:给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?分析一波,面对每个物品,我们只有选择拿取或者...

2018-07-24 21:37:20 347

原创 浅析C++中的explicit, mutable

explicitexplict用来声明构造函数,防止隐式的类型转换,避免不必要的错误。 当类的构造函数的参数只有一个的时候,或者所有的参数都有缺省值的情况下,我们可以利用一个内置类型去赋值一个类对象,就像下面的例子:class A{public : A(int a, int b = 10) : _a(a) , _b(b) {}priv...

2018-07-22 11:06:20 211

原创 青蛙跳台阶

青蛙跳台阶一只青蛙可以一次跳1层台阶,也可以一次跳2层台阶,问青蛙跳上n层台阶有多少种跳法? 思路:首先,考虑特殊情况: 当n等于0的时候,0层台阶,f(0)=0; 当n等于1的时候,1层台阶,也就1种跳法,f(1)=1; 当n等于2的时候,2层台阶,可以一次跳两层,也可以一层一层跳,两种跳法,f(2)=2; 当n等于3的时候,青蛙的第一跳有两种情况,跳一层...

2018-07-18 22:57:09 436

原创 【C++】设计一个类,只能在栈(堆)上创建对象

设计一个类,只能在栈上创建对象使用new运算符,对象会建立在堆上,也就是说只要不用new去创建对象就可以实现,我们知道new和delete分别调用了operator new和operator delete,如果我们把这两个函数声明为私有的,操作符new就不能用了。class A{public: A() { cout &lt;&lt; "A()" &lt;...

2018-07-17 16:30:32 337

原创 【C++】设计一个不能被继承的类

设计一个类,不能被继承在继承体系中: 基类public成员 基类protected成员 基类private成员 概括 public继承 仍为public成员 仍为protected成员 不可见 非私有成员访问属性不变 protected继承 变为protected成员 变为protected成员 不可见 非私有成员...

2018-07-14 15:08:05 1327 1

原创 Shell脚本工作原理

我们知道Shell脚本是一种解释性的语言,是不用编译的,那么它是如何执行程序的呢?chmod u+x test.sh./test.sh Shell会fork()一个子进程,然后调用exec()执行,exec()会用把子进程的代码段替换成test.sh程序的代码段,然后开始执行,父进程等待子进程终止; 但是由于test.sh是一个文本文件,并没有代码段和_start函数,这是...

2018-07-11 22:21:02 4018 2

原创 IO多路转接之select

五种IO模型阻塞IO,在内核将数据准备好之前,系统会一直在等待,所有的套接字,默认都是阻塞方式非阻塞IO:如果内核还没有将数据准备好,系统会调用仍然直接返回,并且返回EWOULDBLOCK错误码,非阻塞IO需要程序员循环的方式反复尝试读写文件描述符,看数据是否准备好,这个过程称为轮询,,这对CPU来说是很大的浪费信号驱动IO:内核将数据准备好的时候,使用SIGIO信号通知应用程序进行IO...

2018-07-09 23:43:30 177

原创 正则表达式

grep工具grep是Linux中常用的文本过滤工具,按照关键字或者正则表达式进行过滤,它是按行匹配的,通常是Linux中处理文本的第一步。grep工具采用的是贪婪匹配,即:匹配当前行中所有的匹配内容。grep工具如果匹配到了,它的退出码是0,如果没有匹配到,它的退出码是1。选项-i 忽略大小写的不同-n 同时输出行号-v 反向选择,显示出没有'搜寻字符串'内容的一行-o ...

2018-07-08 10:37:46 460

原创 Shell基本语法练习

Shell脚本语法练习1. 计算1+2+3+4+…+100#!/bin/bashi=1sum=0while [ $i -le 100 ]do let sum+=i let i++doneecho $sum2. 计算1+2+3+4+…+100,并将执行过程打出#!/bin/bashi=1sum=0echostr=''while [ $i -le ...

2018-07-05 16:46:00 373

原创 Shell脚本中的$()和``及eval

1. ``和$()有什么区别?在shell脚本中,``和$()是用来完成命令替换的,先执行反引号或括号里面的内容,将结果代换到当前命令。 例如: 区别:对于转义字符的处理有些不同 ``中的转义没有成功,$()中\将$转义成普通字符``中两个\\将$转义成了普通字符,$()中\\的输出结果是\,和一般的转义结果一样$()中的转义字符和我们平时使用的是一样的,``中...

2018-07-04 17:27:43 5945

原创 Shell截取字符串

Shell脚本中截取字符串的方法一共有8种,分别如下:1.#*n截取,删除左起第一个n及其以左的字符, 2.##*n表示删除左起最后一个n及其以左的字符(n表示字符串中的某一个字符) 3.%n*截取,删除右起第一个n及其以右的字符, 4.%%n*表示删除右起最后一个n及其以右的字符 5.${str:n:m}表示截取,左起从第n个字符开始,共m个字符 6.${str:n}表...

2018-07-04 17:13:47 1639

转载 Word Ladder

LeetCode[127. Word Ladder] 题解 难度[medium] 题目: Given two words (beginWord and endWord), and a dictionary’s word list, find the length of shortest transformation sequence fromb...

2018-07-02 22:31:45 334 1

原创 【MySQL】表的内连外连和索引、事务及视图

表的内连和外连内连接(inner join on)  内连接就是多表查询中where子句对笛卡尔积的筛选,我们前面学习的都是内连接。 语法:select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件; 例如:显示SMITH的名字和部门名称 外连接左外连接:联合查询中,左侧的表完全显示,就是左外连接。 语法:select 字段 from ...

2018-06-19 00:03:39 493

原创 【MySQL】多表查询

首先,为了方便说明问题,创建两个表emp(雇员信息)和dept(雇员部门信息),其数据如下: 在之前的博客中,我们分享了单表查询的方法,但是在实际应用中,我们要查的数据很可能不在同一个表中,而是来自于不同的表。多表查询如果不加任何条件,得到的结果称为笛卡尔积。 例如,查找雇员名、雇员工资以及部门所在的名字。 可以发现,结果是这样的,从第一个表中选出第一条记录,和第二个表中的所有所有记...

2018-06-18 00:00:22 31378 6

原创 【STL】模拟实现二级空间配置器

二级空间配置器的实现原理  二级空间配置器,当配置空间大于128字节时,调用一级空间配置器;当配置空间小于128字节时,采用了复杂的内存池整理方式,又称为次层配置:每次配置一大块内存,并维护16个自由链表(free list),下次再使用相同大小的内存时,则直接从free list中得到。如果用户释放了小块空间,free list还负责回收。同时,为了方便管理,16个自由链表维护的空间大小均是...

2018-06-09 22:31:19 275

原创 UDP协议与TCP协议的对比

UDP协议的特点(1)无连接,就像发短信一样,不需要建立连接,直接传输 (2)UDP尽最大努力交付,不保证可靠性,没有确认机制,没有重传机制 (3)UDP是面向报文的,应用层交付给UDP的报文,UDP原样发送,不会拆分和合并 (4)UDP首部只有8个字节,开销小 (5)UDP支持一对一、一对多、多对多的交互通信 (6)如果校验和出错,直接丢弃 (7)UDP没有真正意义上的发送缓冲区...

2018-06-06 23:41:52 371

原创 【Linux】环境变量

环境变量环境变量是指在操作系统中用来指定操作系统运行环境的一些参数,它具有某些特殊用途,通常在系统中具有全局性。例如:在编程C语言代码,在链接的时候,我们从来没有关心过程序所链接的动态库静态库在哪里,但是却可以连接成功,这就是因为有相关的环境变量帮助编译器查找库。查看环境变量的方法:echo $NAME //NAME环境变量的名字 常见的环境变量:PATH:存放系统搜索...

2018-05-28 00:08:50 362

原创 找到数组中出现次数超过数组长度一半的元素

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字,否则返回0。比如长度为9的数组{1,2,3,2,2,2,5,4,2},数组中2出现了5次,超过数组长度的一半,因此输出2。方法1:因为这个数字超过了数组长度的一半,所以,我首先想到的是将数组排序,排序后中间的元素就是我们要找的数据,然后再判断它出现的次数是不是超过了数组长度的一半。#include &amp;amp;lt;algorith...

2018-05-26 00:41:44 6636 1

原创 【Linux】进程概念

操作系统:任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。操作系统包括:内核(进程管理,内存管理,文件管理,驱动管理)其他程序(函数库,Shell程序等)什么是进程?从用户的角度看:进程是程序的一次动态执行过程,正在执行的程序。从内核的角度看:进程是操作系统分配资源的基本单位进程有自己的状态和独立的地址空间,进程会被切换,有生命周期,动态运行,有PCB,状态 ...

2018-05-24 20:26:39 196

原创 【MySQL】基础学习——单表查询及常用函数

在数据库的学习和使用中,表的查询一直是使用非常多的一种操作,也是最为重要的一种操作。 首先,为了下面更好的举例说明,我们先创建一个表,并插入一些数据。 1. select指定查询内容,多个内容之间以逗号分隔; 例如:查找学生的id,姓名和数学成绩 2. 去重查询,在上面的七个数学成绩中,有两个90,去重查询,就是查到的数据中只有一个90; 3. 在select语句中进行运算并...

2018-05-20 23:43:49 1018

原创 【STL】模拟实现一级空间配置器

  STL的六大组件:容器、迭代器、适配器、仿函数、算法、空间配置器。   关于容器、迭代器、适配器、仿函数和算法,我们之前都有一定的了解。至于空间配置器,它是负责空间配置与管理,它是隐藏在一切组件背后的东西,因为STL的整个操作对象都在容器中,而容器的实现是一定需要空间配置器的。   为什么要用空间配置器,而不是malloc或者new呢?小块内存带来内存碎片的问题;小块内存频繁申请...

2018-05-19 22:39:45 207

原创 【MySQL】基础学习——表的约束及增删改

表的约束空属性两个值:null和not null,默认字段都是空,但是实际中尽可能保证字段非空。not null表示此列不允许为空,必须做数据插入。 将age设置为not null,所以在插入数据时,age必须有数据,否则就会报错。默认值如果某一属性,经常性出现,可以在一开始就指定数据;默认值配合not null一起使用;set和enum不允许设置默认值 a...

2018-05-15 18:55:31 248

原创 【Linux】网络编程套接字——TCP协议

上一次,我们介绍了套接字的概念及简单的UDP网络程序;今天,我们介绍一个简单的TCP网络程序。一. 地址转换函数在IPv4的socket网络编程中,sockaddr_in中的成员dtruct in_addr sin_addr表示的是32位的IP地址,但是我们通常却是用点分十进制的字符串表示。因此,我们在使用时,经常需要互相转换。 1. 字符串转in_addr的函数:#include ...

2018-05-14 22:20:56 294

原创 【数据结构】排序算法——快速排序

  快速排排序是效率非常高的排序算法之一。   它的基本思想是:首先选择一个基准值,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都小于基准值,另一部分所有数据都大于基准值,并且经过一趟排序,所选择基准值已经换到了在它应该在的正确位置。然后再通过此方法堆这两部分数据分别进行快速排序,整个排序过程可以递归实现。但是具体的将待排序的数据分为两个部分的方法,却有很多:    举...

2018-05-13 22:40:28 20799

空空如也

空空如也

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

TA关注的人

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