自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mac Homebrew安装、卸载与更新慢等问题

最近用homebrew安装gradle,发现update特别慢,而且下载的gradle不是最新版,而且多次执行brew命令时会出现如下错误:Error: Another active Homebrew update process is already in progress.Please wait for it to finish or terminate it to continue....

2019-09-04 23:48:59 1233

原创 git应用详解十:git diff

可以通过git diff命令来对比文件的修改点。linux的diff命令在介绍git diff命令之前,先看看linux提供的diff命令。比如现在桌面上有a.txt,b.txt两个文件,比较两个文件的不同点:diff -u a.txt b.txt --- a.txt 2019-08-11 16:59:07.000000000 +0800 ...

2019-08-11 17:31:13 806

原创 git应用详解九:git stash命令

git stashgit stash命令用来暂存工作区,不多说,下面看例子:同样查看当前git状态:下面开始:先创建一个新分支,不切换分支,依然在master分支上做一个新的提交:然后切换分支,到新分支上做修改:此时尝试切回master分支:git提示修改会被覆盖,在切回分支前要先提交。提交之后再切换分支是肯定可以的,当还有另一种方法,使用stash命令:git stas...

2019-08-09 08:45:05 268

原创 git应用详解八:checkout命令

关于checkout命令前面陆陆续续写了不少,比如用来丢弃工作区的修改、切换分支、创建并切换分支等。下面继续将checkout的其他用法。先看当前git的状态:总共有三次提交,每次提交对应新增一行。下面使用如下命令:git checkout d75echeckout后面跟上提交的commit id,输入命令中为第二次提交的commit id。输入命令后git提示当前位于游离的H...

2019-08-09 08:00:34 990

原创 git应用详解七:版本回退

在使用版本回退前,先看看当前的提交日志:看一下文件内容:每次提交对应新增一行。下面开始版本回退:使用命令:git reset --hard HEAD^回退到上一个版本如果要回退到上上个版本,使用命令:git reset --hard HEAD^^使用两个 ^^ 即可。如果要回退到前10个提交,当然写10个 ^ 也是可以的,但git有一种更简洁的方式:git reset...

2019-08-01 23:32:00 144

原创 git应用详解六:git分支

目录分支基本操作分支基本操作查看当前所在分支以及当前版本库中的所有分支:git branch图片所示,*表示的是当前分支,当前版本库中只有一个master分支。创建新分支:git branch new_branch切换分支:git checkout new_branch 可以查看一下新分支中有哪些内容:可以看到,新分支与原分支的内容完全相同。git在创建分支时新...

2019-07-21 00:20:46 233

原创 git应用详解五:.gitignore文件的使用

在实际使用git的过程中,与遇到项目中有些文件不应该加入版本库,比如一些IDE的配置文件,引入的jar包等,当然可以在写git命令的时候将需要的文件一个一个加入版本库,当这样做及其不方便,首先,工作区永远是不干净的,git会一直提示将文件加入版本库,第二个是当不要用加入版库的文件较多时,很容易出现混乱,再者就是一个一个写文件名太过繁琐,不能使用"git add ." 命令将所有的文件加入版本库。...

2019-07-20 23:00:46 402

原创 git应用详解四:git日志

目录修改提交消息修改提交消息先修改工作区,并将修改加入暂存区下面进行提交,假设提交消息写错了使用git log命令看一下日志:下面修改这条提交消息:git commit --amend -m '修正后的消息'看一下日志:可以看到,原来的错误消息已经没有了,替换成了修正后的消息。...

2019-07-20 11:07:52 269

原创 git应用详解三:添加、修改与删除

目录丢弃工作区中的修改删除暂存区的修改丢弃工作区中的修改接着上篇文章,首先确定工作区中是干净的,查看工作区的文件以及文件的内容:下面在test.txt中新增一行:echo 'line 3' >> test.txtcat test.txt 当然也可以使用vi打开文件编辑,如果只是简单的往文件末尾追加一行的话,使用这个命令更快捷。下面查看状态:git 提示有修改没有...

2019-07-17 00:09:45 334

原创 git应用详解二:git入门

git基础在git中文件有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)在工作区中修改文件,修改后文件的状态为已修改状态,随后对已修改的文件进行git暂存操作,将文件存入暂存区,最后再将已暂存的文件进行git提交操作,将文件存入版本库,这所有的操作都是在本人电脑上操作,不涉及远程,即使电脑没有联网也能完成这些操作。创建git版本库首先在桌面上创...

2019-07-15 00:34:15 343

原创 git应用详解一:准备工作

目录git安装Mac上git安装Windows上git安装环境准备git安装Mac上git安装通过XCode安装Mac上安装Xcode包括git的安装,安装好后在mac控制台输入git --version输出git的版本说明安装成功官网安装进入git官网,https://www.git-scm.com/ 下载相应的版本安装,安装后同样在控制台查看git版本来查看git是否安...

2019-07-14 10:58:36 140

原创 Echarts实时获取后台数据之三:Ajax实时获取数据

使用Ajax之后,效果就是图会根据后台数据实时变化,不会有加载动画。首先,本人没用使用任何前端框架,用的是原始的Ajax,不需要导入任何文件。代码如下:function userAjax() { var dom = document.getElementById("userContainer"); var myChart = echarts.init(dom); var app = {...

2019-01-23 19:41:35 4056

原创 Echarts实时获取后台数据之二:获取后台数据

前台去获取后台数据,如果在jsp文件中,可以使用el表达式遍历,如果在js文件中,又不想使用json,那么传过去的就是字符串了,需要自己处理,自己两种都尝试了。建议还是使用json格式。字符串形式在js中获取后台数据有很多中方式,这里只提供两种方式,一是将js代码和html放在同一文件中,二是将js代码放在单独的文件中。如果将js文件放在html代码中,只需要这样:var data = '...

2019-01-23 18:18:02 4037

原创 Echarts实时获取后台数据之一:Echarts新手入门

最近接触了Echarts,具体就不多加介绍了,可以到官网查看,不过不知道为什么有时候进不去https://echarts.baidu.com/这个网址,但换个WIFI却可以,这个不是很理解。Echarts入门最基本的就是在自己的电脑上跑起来,首先在官网上下载,我是直接下载的完整版,下载下来的文件是echart.min.js,这是一个js文件,直接引入到自己的代码中即可。然后到它的官方示例中选一个...

2019-01-23 16:43:50 5225 3

原创 Linux常用命令及技巧

Linux版本:ubuntu-16.04.2-desktop-amd641.图形界面与命令行模式之间的切换linux共有七个控制台,1-6为命令行模式,第7个为图形化界面。同时按下Control+Alt+Fn //Fn是指F1到F7,对应7个控制台可以通过在命令行输入tty查看当前位于哪一个控制台。2.history命令在控制台输入history命...

2018-12-29 14:13:01 225

原创 数据库事务四大特性及事务隔离级别在mysql中的具体体现

事务的四大特性原子性 指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性 指事务必须使数据库从一个一致性状态转换到另一个一致性状态。拿转账来说,不管如何转账,钱的总数不变。隔离性 指多个用户访问数据库时,用户为每个数据库开启的事务,不能被其他事务的操作数据干扰,多个并发事务之间要相互隔离。永久性 指一个数据一旦提交,它对数据库中数据的改变是永久的。...

2018-02-27 11:06:27 470

原创 Mac上安装Mysql配置文件的添加及修改配置文件

安装Mysql默认安装在/usr/local目录下,这个目录可以通过command+shift+G进入: 进入后选择mysql安装文件夹。配置文件Mac上Mysql默认没有配置文件,需要自己添加,可以support-file 文件目录下的my-default.cnf复制一份到桌面上,可以把文件中的内容全部替换为一下内容# Example MySQL config file for small

2017-11-26 13:48:28 33272

原创 RTTI

RTTI,英文全称Run-Time Type Identification,即运行时类型识别,我们常用的多态就是基于RTTI实现的。RTTI的功能主要有Class类实现。 在Java中,所有的类都是在对其第一次使用时,动态加载到JVM中的。当程序创建第一个对类的静态成员的引用是,就会加载这个类,所以构造器也是静态的,即使它并没有声明成static。 在程序运行时,类加载器会先检查这个类的Clas

2017-10-24 18:03:55 608

原创 正则表达式

通过static Pattern.complie(String regex)方法来编译正则表达式,它会根据传入的String类型的正则表达式生成一个Pattern对象,然后将想要检索的字符串传入Pattern对象的matcher()方法,生成一个Matcher对象,通过该Matcher对象的一些方法对字符串进行处理:boolean matches() 判断整个字符串是否都匹配boolean lo

2017-10-24 15:54:23 390

原创 匿名内部类

匿名内部类只能访问final局部变量,但可以访问外部类的普通成员变量。public class InnerClass { public static void main(String[] args) { Outer o = new Outer(); Inner i = o.method(1); i.print(); }}class Ou

2017-10-05 16:08:07 270

原创 Java中的初始化过程

Java中变量初始化顺序:1.静态变量在类加载时初始化2.将分配给对象的存储空间初始化成二进制的0,即先将所有的非静态成员变量初始化成03.如果有父类,先调用父类构造方法4.按照声明的顺序调用初始化成员变量5.调用导出类的构造方法主体具体例子可以看下面这段代码:public class InitOrder { public static void main(String[] args

2017-10-05 14:21:44 363

原创 协变返回类型

Java进行方法重写有一下几个要求: 1、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。 2、重写方法不能使用比被重写的方法更严格的访问权限。 但在Java SE5中添加了协变返回类型,它表示子类中的重写方法可以返回基类方法返回类型的子类。public class CovariantReturn { /* * 协变返回类型: * 表示在

2017-09-27 21:02:30 443

原创 final关键字

数据final关键字用于数据时,代表这个数据是一个常量,不可改变,这个数据通常属于基本数据类型。但有几点需要注意: 当final修饰引用数据时,代表的是引用不变,一旦引用指向一个对象,就无法把他改为指向另一个对象,然而对象自身是可以更改的。

2017-09-26 19:57:58 260

原创 精通正则表达式八:多选结构是匹配优先还是忽略优先

记得在前面测试引擎的类型的时候用正则表达式‘nfa|nfa not’来匹配文本‘nfa not’,因为DFA和POSIX NFA不支持忽略优先量词,所以如果匹配到的是‘nfa’,则是NFA: 对于NFA而言,会逐个按顺序尝试多选结构的分支,哪个先匹配到返回的就是哪个: 对于DFA而言,却总是返回匹配长度最长的文本: test.txt中的文本是‘nfa not’,其实这也跟它的文本主

2017-09-19 17:24:38 1558

原创 精通正则表达式七:占有优先量词和固化分组

定义占有优先量词:?+ *+ ++ {m,n}+占有优先量词与匹配优先量词很相似,只是它们从来不会交还已经匹配的字符。 固化分组:(?>...) ...是指具体内容固化分组的内容与正常的匹配并无区别,只是当匹配完括号中的内容后,括号中的备用状态会全部舍去。例子将所有的小数保留三位,规则如下:如果小数位数第三位不为0保留三位,如果小数位数少于三位或第三位为0,保留两位小数。 首先可以用

2017-09-18 17:23:05 2319

原创 匹配优先可能遇到的问题

简单的问题其实在精通正则表达式六:匹配优先与忽略优先中已经看到了匹配优先的问题,比如我想匹配一段文本中引号中的内容,用匹配优先就会出现问题: 原本希望匹配的是”Welcome”和”hosted”,然而却得到了错误的结果,上篇文章已经写过,这里就不多加赘述。现在来说说如何解决这个问题,首先可以用忽略优先量词: 还可以用排除型字符组: 用排除法时注意,‘^’只要用在‘[]’的里面才是排除,

2017-09-13 15:52:12 713

原创 精通正则表达式六:匹配优先与忽略优先

定义匹配优先:尽可能多的匹配 忽略优先:尽可能少的匹配 我们刚开始接触的都是匹配优先:* + ?{num,num}忽略优先只需要在原本的匹配优先量词后加一个问号即可:*? +? ?? {num,num}?要注意的是,DFA不支持忽略优先。实例来看下面两个例子: 匹配优先: 忽略优先: 原因是什么呢?上面说过,匹配优先总是尽可能多的匹配,所以‘\w+’先匹配所有的文本,然后为了匹配‘

2017-09-12 10:38:13 5114 3

原创 精通正则表达式五:NFA与DFA

定义NFA与DFA是正则表达式引擎所使用的两种基本技术:NFA:非确定型有穷自动机DFA:确定型有穷自动机作者用用电动机来比喻DFA,用汽油机来比喻NFA,他们确实有许多相似之处: 1.汽油机的历史更长,NFA的历史也比DFA长 2.汽油机应用更加广泛,NFA的应用也比DFA更加广泛 3.汽油机可分为达到加利福尼亚州的尾气排放标准(更严格)和没有达到两种,NFA也分为POSIX NFA和传统

2017-09-11 20:47:34 3358

原创 逆置栈中的内容

问题: 给定一个栈,逆置栈中的内容,要求只能只用栈操作push和pop,不能用数组、栈、队列等做过渡。基本思路: 用递归,先将原来栈中的元素递归出栈,直至栈为空,然后在每次递归向上步骤时,将上一步中出栈的元素插入栈底,具体代码如下:import java.util.Stack;public class ReverseStack { /* * 给定一个栈,将其中的内容逆置

2017-09-11 16:40:51 2113

原创 matlab如何让横坐标竖直排列

在用matlab画图的时候,会遇到一种情况是横坐标比较长,正常排列不下,这是就要将横坐标竖直排列。 基本思想是将原本的坐标去掉,然后用text函数来重新标出坐标,网上的如下:http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=94787,具体如下:clear,clc;KS=[0.6215 0.6411 0.6306 0.6105];

2017-09-08 16:09:49 14958

原创 精通正则表达式四:环视功能

环视功能的介绍环视有下面四种类型(?=...) 肯定顺序环视,子表达式能匹配右侧的文本(?!...) 否定顺序环视,子表达式不能匹配右侧的文本(?<=...) 肯定逆序环视,子表达式能匹配左侧的文本(?<!...) 否定逆序环视,子表达式不能匹配左侧的文本同样,先举例子: 这是一个肯定顺序环视,如果a的右侧是数字,那么就能匹配到a。再来看一下否定顺序环视,其实根据上面就很好理

2017-07-04 15:43:44 3462 1

原创 精通正则表达式三:非捕获型括号

在精通正则表达式一中讲到了反向引用,其中的括号就是捕获型括号,它具有分组和捕获的作用,但是,有时候我们需要用到非捕获型括号,比如我已经写好了一个程序,现在我要扩展正则表达式的功能,比如加一个‘(…)?’,这样并没有影响原来的功能而且能匹配比原来跟多的东西,但是,它打乱了原来的组的反向引用顺序,如果恰好这个分组是你用不到的,那么就可以就可以用上非捕获型括号:(?: )因为它不用捕获,还能提高匹配效率,

2017-07-04 14:27:51 1236

原创 精通正则表达式二:Perl中正则表达式的基本应用

本书的第二章主要讲的是在Perl语言中运用正则表达式,虽然以前没有接触过Perl语言,但作者的前提就是假设读者不会Perl语言,所以对于有一定编程基础的人来说读起来没有太大困难,关于Perl语言的简单入门,除了书上讲的,可以参考这篇:http://blog.csdn.net/zhangjikuan/article/details/52199059,本篇文章主要写一些与正则表达式有关的部分。1.匹配m

2017-07-03 16:45:49 3132

原创 关于匹配行的结束符‘$’的一些思考

今天突然想到一个问题,我用‘′来匹配行的结束的时候,为什么不用先匹配换行符‘\n′?是‘’来匹配行的结束的时候,为什么不用先匹配换行符‘\n’? 是‘’中包括了换行符吗? 我做了如下实验: 这个肯定是没有任何问题的,然后加上换行符 这时候一个都没有匹配到,然后我换行 这时候又匹配到了第一个abc 然后我又在空行内写东西: 所以,是网站对文本设置的不同导致的吗?也到网上

2017-07-02 00:14:25 617

原创 精通正则表达式一:元字符

在正则表达式中,有一些特殊的字符,例如‘* ?’等,他们有特殊的意义,‘*’代表出现0至多次,‘?’代表1次或0次,称他们为元字符。行起始和结束字符^ 匹配行的起始$ 匹配行的结束例如,在http://regexr.com/中: 这里只匹配了倒数两行中的http,但倒数第三行中的http并没有匹配到,这就是元字符“^”起到的作用,注意:确保你在匹配的时候点选了flags中的multi

2017-06-30 16:10:32 515

原创 精通正则表达式:开篇

第一次接触正则表达式是在大二上学期学Java的时候,初次学习感觉这个东西很有意思,功能很强大,后来才发现,自己接触到的只是正则表达式的皮毛而已。在一次随手练习一个小程序时,它的强大再次震撼到了我,那是一个关于拉丁猪文字游戏的例子,基本规则是将一个英语单词的第一个辅音音素的字母移动到词尾并且加上后缀-ay(譬如“banana”会变成“anana-bay”):除了a、e、i、o、u,其余都是辅音,如果不

2017-06-29 11:05:47 611

原创 Huffman文件压缩

Huffman文件压缩是一种经典的无损压缩方式,刚做完Huffman图片压缩实验不久,写一篇文章总结一下。所用环境为VS2013.原理1、所有文件都可以转化为一个一个的字节,例如Java中有字节流,就是通过字节的方式读写文件,C++中也是如此,这也就提供了统计文件中字节权重的方式。 2、可以通过统计到的字节的权重构建Huffman树,从而得到Huffman编码。 3、每个字节是八位二进制,而得到

2017-05-06 23:42:26 574

原创 二叉树求两个结点的父节点及一个结点的所有祖先结点

求两个结点的父节点有一个比较简单的方法是遍历二叉树数,判断结点的左右结点是否为给出结点。这里采用另外一种方法:public static<T> BinaryTreeNode<T> LCA(BinaryTreeNode<T> root, BinaryTreeNode<T> a, BinaryTreeNode<T> b){ // 查找a,b结点的父结点 BinaryTre

2017-05-05 16:09:47 1948

原创 求二叉树深度的递归和非递归算法

递归算法public static<T> int heightOfBinaryTreeInRecursion(BinaryTreeNode<T> root){ // 求二叉树的深度递归算法 int leftHeight,rightHeight; if(root == null) return 0; leftHeight = he

2017-04-11 09:47:44 2516

原创 获取二叉树叶子节点个数的递归及非递归算法

递归算法public static<T> int numOfLeavesInRecursion(BinaryTreeNode<T> root){ // 获取二叉树叶子节点的个数的递归算法 if(root == null) return 0; if(root.getLeft() == null && root.getRight() == null

2017-04-11 09:20:59 9367

空空如也

空空如也

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

TA关注的人

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