- 博客(13)
- 问答 (2)
- 收藏
- 关注
原创 设计模式之观察者模式
观察者模式 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。举例 现在有一个气象站,需要发布发布天气,气象站只提供数据,需要编写程序将天气发布给每一个用户,用户接收也可能有多种模式,有的是当前天气状况也有的是天气预报。 这时候就可以使用观察者模式,进行一对多推送,观察者模式主要就是订阅、发布过程,用户订阅了天气信息,气象站对用户及
2016-12-25 18:13:46 280
原创 设计模式之策略模式
策略模式 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。三个准则找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起针对接口编程,而不是针对实现编程多用组合,少用继承 举个例子,比如说有个抽象类Duck,每一个继承它的具体类代表一种特定的鸭子,这里的鸭子不一定是显示中的,还可能是模型鸭子等。我们试想,每一
2016-12-17 16:12:08 308
原创 Java用自定义的类型作为HashMap的key
需要重写hashCode()和equals()方法才可以实现自定义键在HashMap中的查找。public class PhoneNumber{ private int prefix; //区号 private int phoneNumber; //电话号 public PhoneNumber(int prefix, int phoneNumber) {
2016-12-16 18:34:28 2211 1
原创 常用Linux命令
cd:改变目录如cd /即可改变到根目录ls:显示文件名可以结合cd使用,ls可以显示当前目录下的文件名pwd:显示当前工作路径rm:删除文件cat:显示文本文件内容less:分屏显示文件cp:复制文件mv:移动文件位置,也可用来更改文件名head:显示文件头部tail:显示文件尾部|:实现进程间的通信echo:显示文本gzip:压缩文件tar:打包和解压文件ps:显示进程信息ps -ef |
2016-12-15 16:08:08 225
原创 Git中.gitignore文件的使用
在我们使用git的时候,有时候就不想传一些与代码无关的文件到远程仓库中,比如说编译后的文件,.gitignore就可以帮助我们处理这些文件。生成.gitignore文件 在git bash中使用命令touch .gitignore,就可以在当前目录下生成.gitignore文件编译.gitignore文件 在git bash中,使用vi .gitignore就可以编辑此文件,编辑结束后按Es
2016-12-02 15:53:43 11559 1
原创 Java字符串之String与StringBuilder
String与SringBuiler的一些比较 在Java中,我们会大量使用字符串,但是String究竟是怎样工作的我们可能没有想过太多,其实在String类中,每一个看起来会修改String值的方法都是创建了一个全新的String对象。 我们可以想想,在使用+连接字符串的时候究竟发生了什么,先看一段代码。public class Test1{ public String meth
2016-12-01 20:20:50 438
原创 Java实现二叉树的前序、中序、后序遍历(非递归方法)
在上一篇博客中,实现了Java中二叉树的三种遍历方式的递归实现,接下来,在此实现Java中非递归实现二叉树的前序、中序、后序遍历,在非递归实现中,借助了栈来帮助实现遍历。前序和中序比较类似,也简单一些,但是后序遍历需要两个栈来进行辅助,稍微复杂一些。 同样是那棵二叉树前序遍历:4 2 1 3 6 5 7 8 10中序遍历:1 2 3 4 5 6 7 8 10后序遍历:1 3 2 5 10 8
2016-11-29 12:05:22 330
原创 Java实现二叉树的前序、中序、后序遍历(递归方法)
在数据结构中,二叉树是树中我们见得最多的,二叉查找树可以加速我们查找的效率,那么输出一个二叉树也变得尤为重要了。 二叉树的遍历方法分为三种,分别为前序遍历、中序遍历、后序遍历。下图即为一个二叉树。 前序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树。 结果为:4 2 1 3 6 5 7 8 10 中序遍历:先遍历左子树,然后遍历根结点,最后遍历右子树。 结果为:1 2 3 4 5 6
2016-11-22 16:05:48 567
原创 Java内部类之匿名内部类
我们都知道Java中可以使用内部类,将一个类的定义放在另一个类的定义的内部,这就是内部类,但是匿名内部类往往使我们摸不着头脑,因为它并没有特定的名称,那么该如何使用它呢?定义一个匿名内部类public interface Contents{ int value();}public class Test1{ private Contents contents() {
2016-11-08 10:36:29 260
原创 linux目录下各文件夹作用
作为一个程序员,我们难免会接触到linux系统,特别是后台程序员,因为现在项目的部署环境基本都是在linux系统上进行的,所以了解linux系统是十分重要的,虽然我接触了linux系统已经有一段时间了,但是我基本知识完成了一些部署,并没有很深入地了解它,所以从现在开始,我们就一起来学习一下linux系统,推荐看《鸟哥的Linux私房菜-基础学习篇》这本书,可以了解到很多关于linux的知识,我平时使
2016-11-07 09:50:56 470
原创 初识markdown以及markdown的常用语法
一直都听说markdown可以写作变得更加方便,但是总没有去了解一下,今天下载了一个markdown编辑器,感受了一下markdown的魅力,发现对于程序员写博客之类的,markdown带来了很大的便捷性,免得我们一会儿鼠标一会儿键盘的,而且markdown支持html的语法,对于前端工程师来说,这无疑是很便捷的,我在windows上使用的是markdownpad pro2,下面闲话不多说,我们来学
2016-11-04 09:46:22 430
原创 在Java中,String、StringBuffer、StringBuilder之间的区别
今天在刷leetcode的时候看到了StringBuffer,并且使用到了它做字符串反转,就来查了下StringBuffer的用法,并且看到了它与String以及StringBuilder之间的区别,在此写下自己的学习体会。1、在java中,String为字符串常量,但是StringBuffer以及StringBuilder都是字符串变量。2、三者在速度上的比较 StringBuilder
2016-08-27 22:01:15 326
空空如也
jruby和pdfbox一起使用,前端发送请求后显示pdfbox中一个方法不存在
2017-10-12
Java中有多个线程在执行任务,这时候关闭Tomcat,线程任务会立即结束么?
2017-03-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人