Hexo管理多个blog站点

在使用Hexo博客框架是,可能存在同时管理多个站点的情况。本文记录如何使用Hexo同时向两个github账号上部署站点的情况,主要包括两个步骤:

1.设置ssh连接多个github账号
2.设置站点配置文件

本文的环境为windows 7

使用Hexo及GitHub搭建个人博客记录

记录本人使用Hexo框架在GitHub平台上搭建个人博客的过程。Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。GitHub是一个利用Git进行版本控制、专门用于存放软件代码与内容的共享虚拟主机服务。Hexo在本地可以一键轻松建立站点,并通过简单的配置,将站点部署到GitHub平台上。本文系统为WIN7 32位,需要用到以下环境:

Java 容器

在实际问题中我们经常需要处理数据,单纯依靠数组来存储数据对开发来说非常困难,java提供了一套容器来方便我们编程。对java容器有一个整体的了解对我们来说非常重要,这样在需要特定容器时,不会手忙脚乱,本文主要介绍java的一些基本容器,而不要仅知道使用ArrayList。

Java多线程 线程同步

如果你正在写一个变量,它可能接下来将被另一个线程读取,或者正在读取一个上一次已经被另一个线程写过的变量,那么你需要使用同步,并且,读写线程都必须用相同的监视器锁同步。–Brain同步规则

synchronized

1.所有对象都自动含有单一的锁,当在调用一个对象的任意synchronized方法时,此对象将被加锁。
2.对于某个特定对象来说,所有的synchronized方法共享同一个锁。所以某个线程在访问对象的一个synchronized方法时,其他线程访问该对象的任何synchronized方法都将被阻塞。
3.一个任务可以多次获得对象锁,如在调用对象的一个方法时,该方法又调用了其他的方法。JVM负责跟踪对象被加锁的次数,这也是锁的可重入性,不可重入的锁可能造成死锁。
4.每个类也有一个锁,每个类都是一个class对象,synchronized static方法可以防止对static数据的并发访问
5.在使用并发时,最好将字段设置为private,防止线程直接访问字段。

Java多线程 线程池

实现一个线程需要实现Runnable接口,或继承Thread类并实现run()方法。在run()方法中定义你需要线程完成的任务。
线程的一些操作和特征:

1.从线程中返回值,可以实现Callable接口,并重写call方法。
2.线程休眠TimeUnit.MILLISECONDS.sleep(),TimeUnit是一个枚举类
3.线程可以设置优先级
4.线程让步yield()
5.后台线程daemon,非后台线程结束时,后台线程将被杀死

FindBugs检测器实现(2)

在FindBugs检测器实现(1)中提到,FindBugs 主要有5类检测器,这篇日志介绍下FindBugs在类、方法、字段结构上的检测器实现。前面提到基于栈和简单的字节码模式要继承OpcodeStackDetector类,并实现sawOpcode方法用来检测每一个字节码。

一般在写检测器之前,我们应该有一个自己想要检测的代码模式,但作为学习,这里使用一些简单的模式作为例子:

1.重写了equals函数,却没有重写hashCode函数。
2.经hashCode函数拼写为hashcode。

FindBugs检测器实现(1)

FindBugs的检测器大多以下面五种方式来实现,且这五种实现方式findbugs都提供了接口:

1.检查类、方法、字段结构
2.微模式,简单的字节码模式
3.基于栈的模式
4.数据流分析
5.内部过程的分析

本文将介绍findbugs中stack-based pattern的实现过程和需要用到的接口。在这之前,我们必须要有一些必备的java知识,如JVM栈内存、JVM字节码指令、class文件结构。

Java深入学习之 IO

现实世界中我们总要处理不同的数据源:

1.字节数组。
2.String对象
3.文件。
4.“管道”,工作方式与实际管道相似。
5.一个有其他种类组成的序列。
6.其他数据源,如Interent连接等。 –From 《Java编程思想》

对于以上的数据源,Java io都提供了相对应的流处理类,如读取文件数据源FileInputStream,FileOutputStream,这些类都继承了InputStream这个抽象类,并重新实现了主要的接口。作为Java io的学习篇,这里主要分析了面向字节的io和面向字符的io。

借助BCEL

BCEL是一个java字节码引擎库,有了他我们可以方便的表示出class文件的数据,另外BCEL还支持动态的创建和改变java class文件。这里我仅是初略的了解BCEL解释class文件的功能,为我后面学习FindBugs工具做准备,需要深入学习BCEL的创建、改变class文件的功能,可以查看官方文档。
bcel class file