自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大闲人柴毛毛

博观而约取,厚积而薄发

  • 博客(16)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 分享我的经历,你以为你很努力

昨天看了罗胖的视频《如何成为一名高手》之后恍然大悟,学习是大脑重复记忆的过程,学习过程大脑处于非舒适状态。也就是说,学习并不是一件快乐的事,如果你长期处于舒适状态,或许你自认为每天都在学习,但实际上你一直在原地踏步。由此联想到我做项目的经历。大二刚开始接触编程,我还是一个毛头小孩,对编程世界充满好奇但又知之甚少,学习了理论知识后,我便决定加入一家公司参与人生的第一个项目。加入项目组后才发现自己学识浅

2016-08-29 10:51:30 3465 14

原创 Java8新特性——StreamAPI(二)

1. 收集器简介收集器用来将经过筛选、映射的流进行最后的整理,可以使得最后的结果以不同的形式展现。collect方法即为收集器,它接收Collector接口的实现作为具体收集器的收集方法。Collector接口提供了很多默认实现的方法,我们可以直接使用它们格式化流的结果;也可以自定义Collector接口的实现,从而定制自己的收集器。这里先介绍Collector常用默认静态方法的使用,自定义收集器会

2016-08-28 17:06:20 21152 4

原创 Java8新特性——StreamAPI(一)

1. 流的基本概念1.1 什么是流?流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而流是以声明的形式操作集合,它就像SQL语句,我们只需告诉流需要对集合进行什么操作,它就会自动进行操作,并将执行结果交给你,无需我们自己手写代码。因此,流的集合操作对我们来说是透明的,我们只需向流下达命令,它

2016-08-28 11:41:53 89832 23

原创 Java8新特性——Lambda表达式(一)

1. 预备知识在了解Lambda表达式之前首先需要了解以下预备知识。1.1 如何成为一名高级码农?如果老板让你写一个用于毁灭地球的函数,而你写了一个毁灭行星的函数,若要毁灭地球只需将毁灭地球的过程传递给“毁灭行星”。能做到这一点,你就是一名高级码农。以上这个问题体现了程序可扩展性的思想。总结一下,要成为一名高级码农,在编码的时候要以发展的眼光看待问题。一个具体问题到来的时候,你需要基于当前问题抽象出

2016-08-27 11:49:54 8487 4

原创 Docker入门实战(三)——用Dockerfile构建镜像

在Docker中,构建一个自定义镜像共有两种方法,一是通过commit指令构建,二是通过Dockerfile文件构建。第一种方式在上篇博客中已经详细介绍(Docker入门实战(二)——Docker镜像操作),接下来介绍在Docker中更为常用的方法——使用Dockerfile构建镜像。用Dockerfile构建镜像的基本流程先来回顾下commit方式创建镜像的流程: 1. 首先需要有一个基础镜像(

2016-08-27 09:24:16 3887

原创 Docker入门实战(二)——Docker镜像操作

1. 什么是Docker镜像?从源码层面来讲,Docker镜像是一个个只读文件系统,对于源码这里不作深究。我们只从逻辑角度来看,Docker镜像是一个个装有特定软件的“阉割版”操作系统。之所以称其阉割版,那是因为镜像并非完整的操作系统,它无法独立运行,但在Docker提供的环境下运行起来后和普通操作系统完全一样。2. 什么是镜像仓库?什么是Registry?顾名思义,镜像仓库就是用来存放镜像的存储空

2016-08-23 14:59:07 3723

原创 Docker入门实战(一)——Docker常用命令

什么是Docker? Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed o

2016-08-20 11:46:40 8205 3

原创 Linux管道命令

1 什么是管道命令?管道命令能够将一个命令的执行结果经过筛选,只保留我们需要的信息。 如,/etc目录下会有大量的文件,如果使用ls很难找到需要的文件,因此可以使用管道命令将ls的结果进行一次筛选,只保留需要的信息。2 管道 和 数据流重定向 的区别?管道一词非常生动形象,原始数据经过管道后,管道会将一部分不需要的信息过滤掉,只保留用户所关注的信息。数据流重定向是指定数据在哪里显示,默认情况下

2016-08-12 14:24:47 11266

原创 Linux数据流重定向

1 什么是数据流重定向?Linux中,数据流的重定向被分为输入重定向 和 输出重定向。输出重定向 将原本应该输出到屏幕上的信息输出到文件中。 当执行一个命令后,该命令输出的结果本应该显示在屏幕上。但输出重定向能让命令的执行结果保存到文件中去。 此外,由于Linux中的设备都是以文件的形式存在,因此输出重定向还可以将命令执行的结果输出到指定设备上去。命令 > 文件命令的执行结果将会保存到>后

2016-08-12 12:53:05 1052

原创 Linux Shell(二)——Shell的环境配置

1 命令别名1.1 设置命令的别名将rm设为rm -i,这样只要输入rm就能拥有rm -i的功能,在删除的时候就会有提示:alias rm='rm -i'1.2 取消命令的别名unalias即可删除已创建的别名:unalias rm1.3 查看所有别名只输入一个alias即可查看所有已经设置的别名:[root@iZ28st035lsZ ~]# aliasalias cp='cp -i'alias

2016-08-11 21:31:05 2518

原创 Linux Shell(一)——Shell变量

1 变量的分类在Linux中,变量分为环境变量 和 局部变量。 环境变量能被子进程继承,而局部变量只能在当前进程中使用。 并且,不论是环境变量还是局部变量,他们又都可以分为系统变量 和 自定义变量。系统变量是系统启动时自动创建的变量,往往为系统运行提供支持;而自定义变量是用户自己定义的。一般而言,系统变量全为大写,自定义变量全为小写。1.1 常见的环境变量系统提供了一些默认的环境变量,如下:H

2016-08-11 15:40:33 1370

原创 Linux用户身份切换

为什么需要切换用户身份?在日常工作中,尽量使用普通用户账号操作,当需要root权限的时候再通过身份切换的方式切换至root管理员,这样能保证系统的安全性。使用普通账号的安全性主要体现在两个方面:防止因误操作而删除了系统重要文件;创建一些系统账户专门用来启动某些服务,这样即使该服务被攻陷,系统仍然是安全的。下面介绍两种Linux中切换用户身份的方式。身份切换方式一:su该命令可以将身份切换至指定

2016-08-09 19:37:07 13157

原创 Linux账号管理

Linux的账号管理包括用户与用户组,它们两者是多对多的关系,即一个用户可以属于多个用户组,且一个用户组可以包含多个用户。一个用户组中的用户具有相同的权限。 在Linux中,用户的账户信息和用户组信息都记录在指定的文件中,这些文件构成了Linux用户管理的基础。下面我们就详细介绍Linux用户管理相关的文件。Linux的账号文件1./etc/passwd这个文件虽然叫passwd,但实际存放Lin

2016-08-09 15:22:33 3442

原创 Linux系统服务——Daemon

什么是Daemon?Daemon是Linux的一些系统服务,它们是一些常驻内存的进程。Daemon分类Daemon拥有两种分类方式,按照“daemon是否可以在内存中独立启动”可以分为:stand alone和super daemon;按照“请求到来时是否能够立即运行”可分为:signal-control和interval-control。下面详细介绍两种分类方式。分类方式一:按照“是否可以独立启动

2016-08-08 21:13:56 5393

原创 Linux软件安装(二)——RPM与YUM

Linux软件管理程序上一篇文章介绍了使用源码编译的方式安装Linux软件,虽然操作比较简单,但仍有如下不足之处: 1. 源码需要经过编译成二进制文件后才能供系统运行,而编译过程相对比较繁琐; 2. 软件的管理比较散乱,软件的更新、卸载没有统一的管理者。 针对源码安装的缺点,Linux上出现了软件管理程序,统一管理所有软件的安装、更新、卸载。它将当前系统中所安装的软件信息存储起来,这些信息可供

2016-08-07 00:21:37 1393

原创 linux软件安装(一)——源码安装

Linux软件简介Linux上几乎所有的软件都经过了GPL授权,因此几乎所有的软件都会提供源码。 而一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上运行。软件编译过程将源码编译成可供Linux运行的二进制文件一共需要两步: 1. 使用gcc编译器将源码编译成目标文件 2. 再次使用gcc编译器将目标文件链接成二进制文件这过程看

2016-08-06 20:25:31 9063

剑指offer算法实现java版——面试题19二叉树的镜像

分析:所谓“镜像”就是从镜子里看到的样子。我们可以画一棵二叉树,然后画出该二叉树的镜像。画完图之后我们会发现,所谓“二叉树的镜像”就是把二叉树中所有子树的左孩子和右孩子进行交换。因此需要遍历二叉树所有的结点,在遍历的同时交换非叶子结点的左右子树。遍历我们可以使用先序遍历,首先判断当前根结点是否为叶子结点,若非叶子结点,则交换左右孩子,然后再分别对左右孩子进行相同的操作。

2016-03-14

剑指offer算法实现java版——面试题21包含min函数的栈

实现一个栈,要求使用O(1)时间获取栈中最小值,O(1)执行pop、push操作。

2016-03-14

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

TA关注的人

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