自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 收藏
  • 关注

原创 mac 控制台显示当前项目分支

我发现其他人在mac系统的终端使用git时,可以默认是显示当前所在的分支名称!!!这么棒的功能,我竟然一直没有配置~然后网上查找资料,找到了解决办法,终于可以显示本地当前分支,现在分享如下:1 进入你的home目录cd ~2 编辑.bashrc文件vi .bashrc3 将下面的代码加入到文件的最后处function git_branch { br...

2019-07-17 19:08:43 2700 2

原创 JS,检测对象中是否存在某个属性

检测对象中属性的存在与否可以通过几种方法来判断。1.使用in关键字。该方法可以判断对象的自有属性和继承来的属性是否存在。var o={x:1};"x" in o; //true,自有属性存在"y" in o; //false"toString" in o; //true,是一个继承属性2.使用对象的hasOwnPro...

2019-04-18 20:36:04 776

转载 GitLab配置ssh key

一、背景  当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成ssh key,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户端生成ssh key,然后配置在g...

2019-04-11 17:38:32 634

转载 Node.js中package.json中库的版本号详解(^和~区别)

Node.js中package.json中库的版本号详解(^和~区别) 当我们查看package.json中已安装的库的时候,会发现他们的版本号之前都会加一个符号,有的是插入符号(^),有的是波浪符号(~)。那么他们到底有什么区别呢?先贴一个例子,对照例子来做解释: "dependencies": { "bluebird": "^3.3.4", "body-pa...

2019-04-08 15:24:52 298

转载 nodejs深入学(5)异步编程

nodejs深入学(5)异步编程前言上一章讲解了node如何通过事件循环实现异步,包括与各种IO多路复用搭配实现的异步IO已经与IO无关的异步API。以前,之所以异步IO在应用层面不太流行,是因为异步编程在流程控制中,业务表达并不太适合程序员开发。函数式编程函数式编程是js异步编程的基础。高阶函数在js中,函数的参数可以为基本数据类型、对象引用,甚至是一个函数(函数也是...

2019-03-20 15:48:58 277

转载 nodejs深入学(7)理解Buffer

nodejs深入学(7)理解Buffer前言因为在node中需要处理网络协议、操作数据库、处理图片、接受上传文件,因此,需要大量操作二进制数据,虽然js对于字符串支持良好,但是由于需要对于字符串进行序列化,因此,就有必要了解一下Buffer,对,没错,Buffer其实是二进制数据模块。另外,本章将不是ES的范畴,本章定义的内容都源于commonjs(二进制部分)。因此,这也不是前端开发...

2019-03-19 18:13:46 578

转载 nodejs深入学(9)Web应用

nodejs深入学(9)Web应用前言web到目前为止走过了1.0、2.0、移动互联网、本地应用化几个阶段,这使得js变得炙手可热,许多原来在server端实现的需求,现在可以在mv*的架构下在前端实现,加之node的大获成功,让前、后端的概念趋于一统。在后端,有各种框架,如structs、codeigniter、rails、django、web.py,在前端,也有backbone、k...

2019-03-19 16:51:26 493

转载 消息中间件—RocketMQ消息发送

消息中间件—RocketMQ消息发送摘要:使用客户端发送一条消息很Easy,在这背后RocketMQ完成了怎么样的操作呢?大道至简,消息队列可以简单概括为:“一发一存一收”,在这三个过程中消息发送最为简单,也比较容易入手,适合初中阶童鞋作为MQ研究和学习的切入点。因此,本篇主要从一条消息发送为切入点,详细阐述在RocketMQ这款分布式消息队列中发送一条普通消息的大致流程和细节。在阅读本篇之...

2019-03-18 15:29:08 1434

转载 nodejs深入学(8)网络编程

nodejs深入学(8)网络编程前言本章主要介绍如下知识,通过了解这些知识,进一步理解node为何适合在分布式网络中扮演各种角色。另外,由于node跟网络模型非常近似,我们可以通过学习node来更好的理解网络模型。本章,我们会仔细学习如下模块。模块 说明 net TCP dgram UDP http HTTP https HTTPS 构...

2019-03-15 18:12:21 455

转载 nodejs深入学(10)进程

nodejs深入学(10)进程前言通过前边的学习,大家应该已经充分理解了node的单线程只不过是js层面的单线程,是基于V8引擎的单线程,因为,V8的缘故,前后端的js执行模型基本上是类似的,但是node的内核机制依然是通过libuv调用epoll或者IOCP的多线程机制。换句话说,node从严格意义上讲,并非是真正的单线程架构,node内核自身有一定的IO线程和IO线程池,通过libuv...

2019-03-13 14:54:25 431

转载 nodejs深入学(6)内存控制

nodejs深入学(6)内存控制前言因为node绝大多数时间都是运行在后端的服务器程序,因此,需要精确控制内存。在以前,js程序员不需要控制内存的原因是因为他们操作的都是短时间执行的场景,如网页或者命令行工具,这类场景下,都是运行在用户机器上,并且,一定出现内存问题,用户自己直接关机重启就好了,根本不会出现严重问题,另外,因为运行时间短,因此,内存在运行完成后,自动释放,根本就没有内...

2019-03-12 18:12:40 1405

转载 LinearLayout的child中layout_weight的使用(会 绘制俩次)

linearLayout中包含有weight的child时,linearLayout会measure两次:第一次 测量 child 的 原始值:第二次 测量 child 的 比重值:然后将2次测量的值相加,得到child 的具体的宽 或 高。//---------------------------------------------------------------------...

2019-03-08 15:21:03 585

原创 深入理解ReentrantLock

深入理解ReentrantLock在Java中通常实现锁有两种方式,一种是synchronized关键字,另一种是Lock。二者其实并没有什么必然联系,但是各有各的特点,在使用中可以进行取舍的使用。首先我们先对比下两者。实现:首先最大的不同:synchronized是基于JVM层面实现的,而Lock是基于JDK层面实现的。曾经反复的找过synchronized的实现,可惜最终无果。但L...

2019-03-07 19:30:58 124

转载 Android官方MVVM框架实现组件化之整体结构

Android官方MVVM框架实现组件化之整体结构(一)的Android官方MVVM框架实现组件化之整体结构(二)的Android官方MVVM框架实现组件化之ARouter串联各模块目前的项目结构图置顶:Demo的Github地址:https://github.com/Dawish/GoogleArchitectureDemo0-演示项目MVVM组件化架构图一,谷歌官方M...

2019-03-07 18:37:25 915

转载 两张图看懂Android开发中MVC与MVP的区别

看了很多文章,没有很好的文章能简明扼要的说清楚Android开发中MVC和MVP的区别。MVC很早就出来了,之前广泛用于JavaWeb开发中,MVC也可以用来开发Android,但是有些水土不服!1、MVC结构示意图2、MVP结构示意图好用的在线UML工具:https://www.processon.com/2、MVP与MVC的区别(阅读时请不断对比上面的两张图)Acti...

2019-03-07 18:34:43 141

转载 Android Framework入门介绍

framework概述Android简介Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由AndyRubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟...

2019-03-06 18:54:35 485

转载 理解和使用ES6中的Symbol

理解和使用ES6中的SymbolES6中引入了一种新的基础数据类型:Symbol,不过很多开发者可能都不怎么了解它,或者觉得在实际的开发工作中并没有什么场景应用到它,那么今天我们来讲讲这个数据类型,并看看我们怎么来利用它来改进一下我们的代码。这是一种新的基础数据类型(primitive type)Symbol是由ES6规范引入的一项新特性,它的功能类似于一种标识唯一性的ID。通常情况下...

2019-02-27 14:46:19 342

转载 java中,什么是封装,继承,多态和抽象,好处与用法

Java的四大特性分别是封装,继承,多态与抽象。1.封装封装的概念:把对象的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口。封装的好处:(1):隐藏实现细节。好比你买了台电视机,你只需要怎么使用,并不用了解其实现原理。(2):安全性。比如你在程序中私有化了age属性,并提供了对外的get和set方法,当外界 使用set方              法为属...

2019-02-25 16:29:00 953

转载 HTML中的块级元素和内联元素

HTML中的块级元素和内联元素 块级元素(block level element)总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制宽度没有设置时,默认为100%可以包含某些块级元素和内联元素内联元素(inline element)内联元素允许其他内联元...

2019-01-25 14:30:14 119

转载 详解CSS float属性

基础知识float,顾名思义就是浮动,设置了float属性的元素会根据属性值向左或向右浮动,我们称设置了float属性的元素为浮动元素。浮动元素会从普通文档流中脱离,但浮动元素影响的不仅是自己,它会影响周围的元素对齐进行环绕。举例说明如下:Html代码:XHTML  1 2 3 4 5 6 <div cl...

2019-01-25 14:28:05 1177

转载 HTMl 中position位置属性介绍

今天在网上找了关于position用法的总结。position属性值的定义:1、static:默认值。没有定位,元素出现在正常的流中(忽略top,bottom,left,right或者z-index声明)。2、relative:生成相对定位的元素,通过top,bottom,left,right的设置相对于其正常位置进行定位。可通过z-index进行层次分级。3、absolute:生...

2019-01-25 14:25:15 666

转载 Dockerfile 语法

Docker简介Docker项目提供了构建在Linux内核功能之上,协同在一起的的高级工具。其目标是帮助开发和运维人员更容易地跨系统跨主机交付应用程序和他们的依赖。Docker通过Docker容器,一个安全的,基于轻量级容器的环境,来实现这个目标。这些容器由镜像创建,而镜像可以通过命令行手工创建或 者通过Dockerfile自动创建。DockerfileDockerfile是由一系列命...

2018-12-26 20:22:07 104

转载 docker容器中文件的上传与下载

docker容器中文件的上传与下载 1. 操作环境1. CentOS:CentOS-7-x86_64-DVD-16112. Docker:Docker version 1.12.6, build 88a4867/1.12.63. busybox:latest2. 启动一个容器  启动一个容器,还是以之前我们所下载的busybox镜像为例来进行说明。  在doc...

2018-12-26 19:06:12 1089

转载 常用的Java Keytool Keystore命令

常用的Java Keytool Keystore命令 Java keytool是密钥和证书管理工具。它使用户能够管理自己的公司对象及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。一。密钥工具创建和导入命令创建密钥库和密钥对生成Java密钥库和密钥对keytool -ge...

2018-12-20 10:42:24 938

转载 dcoker入门,使用docker部署NodeJs应用

docker简介 转载:https://www.cnblogs.com/pass245939319/p/8473861.html  docker是一个开源的应用容器引擎,可以为我们提供安全、可移植、可重复的自动化部署的方式。docker采用虚拟化的技术来虚拟化出应用程序的运行环境。如上图一样。docker就像一艘轮船。而轮船上面的每个小箱子可以看成我们需要部署的一个个应用。使用doc...

2018-12-17 18:40:53 215

转载 ES6新特性

ES6语法转载:https://www.jianshu.com/p/87008f4f8513const 与 let 变量使用var带来的麻烦:function getClothing(isCold) { if (isCold) { var freezing = 'Grab a jacket!'; } else { var hot = 'It's a sho...

2018-12-07 18:15:45 1178

转载 深入理解javascript原型和闭包(15)——系列文章

深入理解javascript原型和闭包(15)——闭包前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础。至于“闭包”这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住。但是你只需要知道应用的两种情况即可——函数作为返回值,函数作为参数传递。第一,函数作为返回值如上代码,bar函数作为返回值,赋值给f1变量。执行f1(15)时,...

2018-12-06 17:45:17 145

转载 Javascript闭包和闭包的几种写法及用途

全面理解Javascript闭包和闭包的几种写法及用途  好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了。好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法、用法和用途。 一、什么是闭包和闭包的几种写法和用法1、什么是闭包闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函...

2018-12-06 17:43:25 156

转载 nodejs模块中exports和module.exports的区别

nodejs模块中exports和module.exports的区别 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ ,这些核心模块被编译成二进制文件,可以require('模块名')去获取;核心模块具有最高的加载优先级(有模块与核心模块同名时会体现),如:var fs=require('fs');var htt...

2018-12-05 20:39:28 117

原创 nodejs之=>函数

基本用法: ES6中允许使用“箭头”(=>)定义函数var f = v => v; 上面代码相当于:var function(v){ return v;}根据箭头函数有参数和无参数来区分 1、无参数的箭头函数var f = ()=>5;等同于var function(){ return 5;}2、有参数的箭头...

2018-12-05 19:55:59 5096 1

转载 APT注解处理器,让你的代码变得更简单

APT注解处理器,让你的代码变得更简单本篇来自 带心情去旅行 的投稿,分享了Android APT的内容带心情去旅行  的博客地址:https://www.jianshu.com/u/769d3d3a9d4b 介绍 APT(Annotation Processing Tool)即注解处理器,是一种处理注解的工具,确切的说它是javac的一个工具,它用来在编译时扫描和...

2018-11-27 17:13:09 501

转载 解决hash冲突的三个方法

目录开放定址法 线性探测再散列 二次探测再散列 伪随机探测再散列 再哈希法 链地址法 建立公共溢出区 优缺点 开放散列(open hashing)/ 拉链法(针对桶链结构) 封闭散列(closed hashing)/ 开放定址法 通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题。创建哈希表和查找哈希表都会...

2018-11-27 11:15:34 245

转载 链表的应用——多重链表

多重链表 1、什么是多重链表,就是链表里的结点可能隶属多个链表,最常见的就是十字链表,每个结点都有多个指针域,对应于多个链表嘛,但是反过来说,拥有多个指针域的结点的链表就是多重链表是不准确的,因为循环链表的结点都有2个指针域一个前驱一个后继,但是它就不是多重链表 2、多重链表有什么用途呢,比如存储树或者图等等复杂数据结构,所以学好各类线性表的操作是很有必要的,因为之后的很多复杂数据结构的存...

2018-11-26 14:44:18 7831

转载 B树,B-树和B+树的区别

B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,...

2018-11-22 16:01:42 17956 7

转载 初学node.js有感三

WebStorm下的node.js一、回顾与继续   在前面,我们知道了node.js的基本框架和思路,在这些原生环境下我们对node.js的设计思想有了比较深刻的认识,并且具有了编写大型程序的能力了,但是程序的代码可能会比较拉杂,因此,我们就需要用到现有的框架了,在我们的社会上,不需要造太多的轮子,而需要在更高层次上去设计‘车’,因此使用别人做好的模板去完成自己的业务是一个比较节省时间并...

2018-11-21 19:49:32 246

转载 初学node.js有感二

node.js进阶一、回顾与继续  对于一种语言的认识都是经历这样的一个过程的,首先从原生的环境(CMD)中开始学习,找到一门语言之间各种引用的本质和相互之间的调用方式,明澈各种依赖关系,在这个基础上我们可以进行一些比较简单的编程,但是却总是感觉到自己需要做很多底层的工作,开发的效率也比较低,因此在基本熟练的基础上,我们就需要使用IDE这种集成开发环境来进行大规模项目的开发和对接了。而no...

2018-11-21 19:43:43 865

转载 初学node.js有感一

Node.js感悟一、前言      很久以前就对node.js十分的好奇和感兴趣,因为种种原因没能去深入的认识了解和学习掌握这门技术,最近正好要做一些项目,其中就用到了node.js中的一些东西,所以借着使用的时间来对node.js进行一些剖析,每一种语言都有自己的理念和设计初衷,但是万变不离其宗,最终还是要归结到编译和执行,对于一门新的语言,我们不要急着去记忆语法,最好的方式就是通过问...

2018-11-21 19:39:32 397

转载 赫夫曼编码

算法导论--赫夫曼编码2017年06月01日 11:05:09 夜空霓虹 阅读数:178版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhang_xiaomeng/article/details/72828441贪心算法的原理: 赫夫曼编码可以很有效地压缩数据:通常可以节省20%~90%的空间。 根据每个字符的出现频率...

2018-11-13 12:36:11 1676 1

转载 赫夫曼(赫夫曼树、最优树、赫夫曼编码)

赫夫曼树,别名“哈夫曼树”、“最优树”以及“最优二叉树”。学习哈夫曼树之前,首先要了解几个名词。哈夫曼树相关的几个名词路径:在一棵树中,一个结点到另一个结点之间的通路,称为路径。图 1 中,从根结点到结点 a 之间的通路就是一条路径。路径长度:在一条路径中,每经过一个结点,路径长度都要加 1 。例如在一棵树中,规定根结点所在层数为1层,那么从根结点到第 i 层结点的路径长度为 i - 1...

2018-11-13 12:34:13 465

转载 java的动态代理机制详解

在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口...

2018-11-08 15:53:11 84

空空如也

空空如也

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

TA关注的人

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