1 Markown简介
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档, 然后转换成格式丰富的HTML页面.
2.语法
2.1 标题
在Markdown中,标题总共有六级. 只需要在文本前加上#即可,增加#时,标题字号相应降低.
# 一级标题
## 二级标题
### 三级标题
......
###### 六级标题
2.2链接和图片
在Markdown中,插入链接不需要其他按钮,你只需要使用[显示文本](链接地址)
这样的语法.eg:
[游民星空](http://www.gamersky.com/)
显示效果: 游民星空
在Markdown中,插入图片不需要其他按钮, 你只需要 这样的语法即可.
eg:

显示效果:
Markdown支持自动链接形式来处理网址和电子邮件信箱,只要是用尖括号包起来, Markdown就会自动把它转成链接.
例如: <http:www.baidu.com>
显示效果:
http:www.baidu.com
2.3 粗体和斜体
用两个*
包含一段文本就是粗体的语法, 用一个 *
包含一段文本就是斜体的语法.
eg:
得即*高歌*失即休,多愁多恨亦悠悠,**今朝有酒今朝醉**,明日愁来明日忧.
显示效果:
得即高歌 失即休,多愁多恨亦悠悠,今朝有酒今朝醉,明日愁来明日忧 .
2.4 中文首行缩进
有两种方法可以实现:
- 在段落开头的时候,先输入 :
    然后紧跟着输入文本即可
- 把输入法由半角改为全角. 两次空格之后就能够有两个汉字的缩进.
eg:首行缩进:
得到的
2.5 代码块
将要显示的代码块放在 3对反引号 中间, 优快云提供的编译器支持不同的语法高亮, 只要在反引号后注明语言, 例如:
package com.qx.aspectj.annotation;
import org.springframework.stereotype.Service;
@Service("userService")
public class UserServiceImpl implements UserService {
@Override
public void addUser() {
// TODO Auto-generated method stub
// System.out.println(1/0);
System.out.println("addUser");
}
@Override
public int deleteUser() {
// TODO Auto-generated method stub
System.out.println("deleteUser");
return 0;
}
}
2.6 引用
在你希望引用的文字前面加上>就好了.
eg:
>Fate系列Saber壁纸(1/16) 关闭 播放 ZOL桌面壁纸有部分资源来源于互联网,图片版权归原作者所有,若有侵权问题敬请告知,我们会立即处理。本站图片资源如果没有特殊...
显示效果:
Fate系列Saber壁纸(1/16) 关闭 播放 ZOL桌面壁纸有部分资源来源于互联网,图片版权归原作者所有,若有侵权问题敬请告知,我们会立即处理。本站图片资源如果没有特殊…
2.7 水平滚动条
在代码块内,当一行的内容显示不下时,会自动显示水平滚动条
package com.qx.demo05.jdk;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class MyBeanFactory {
public static UserService createService(){
//创建目标类对象
UserService userService=new UserServiceImpl();
//切面类---我感觉它仅仅是个增强类
MyAspect myAdpect=new MyAspect();
/**
* 使用jdk动态代理,创建代理类对象
* 参1 ClassLoader loader: 类加载器
* MyBeanFactory.class.getClassLoader()
* userService.getClass.getClassLoader()
* 参2 Class<?>[] interfaces:代理类实现的接口
* userService.getClass().getInterfaces()
* 参3 InvocationHandler h: 匿名内部类,给目标方法添加事务
*
*/
/**
* 动态代理
* 在java动态代理中有一个重要的接口InvocationHandler和一个类Proxy.
*
* 当我们调用具体被代理类的方法时,会转由这个接口中的invoke方法进行调用.我们可以理解为理类获得要调用的方法名和参数,交给InvocationHandler, 并由InvocationHandler中的invoke方法调用具体被代理类中相对应的方法.
* 参1: ClassLoader loader-定义代理类的类加载器
* 参2: Class<?>[] interfaces-代理类要实现的接口列表
* 参3: InvocationHandler h-指派方法调用的调用处理程序
* 返回值: 一个由指定的类加载器定义,并实现指定的接口的代理类的实例
*/
UserService usService=(UserService) Proxy.newProxyInstance(userService.getClass().getClassLoader(),
userService.getClass().getInterfaces(),new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO Auto-generated method stub
myAdpect.before();
Object obj=method.invoke(userService, args);
myAdpect.after();
// System.out.println(proxy instanceof UserService);//true
// System.out.println(proxy instanceof InvocationHandler);//false
// System.out.println(obj instanceof InvocationHandler);//false
System.out.println(obj);
return obj;
}
});
return usService; //应该返回代理对象usService, 而不要返回被代理对象userService
}
}