Markdown笔记
标题123456# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题
水平分割线12---***
引用1>
目录(大纲)1[toc]
强调或突出1234*斜体* 或 _斜体_**粗体** 或 __粗体__~~删除线~~---下划线---
列表
有序列表
121. 有序列表2. 有序列表
无序列表
123- 无序列表* 无序列表+ 无序列表
链接1[链接文字](链接地址)
插入图片1
代码块123```java```
表格
姓名
1
2
3
年龄
11
22
33
1234567|姓名|1|2|3||:----|:----:|----:|:----:||年龄|11|22|33|// :---- 左对齐// :----: 居中// ----: 右对齐
公式
行内
$ f(x) = x $
1$ f(x) = x $
段落
$$ f(x) = x $$
1$$ f(x) = x $$
上标
$$ x^2 $$
1$$ x^2 ...
策略模式(Strategy Pattern)
策略模式是一种定义一系列算法的方法,从概念的角度来讲,算法所做的工作是相同的,只是实现不同而已,它可以用相同的方式调用所有算法,以减少算法类和算法调用类之间的耦合性。 策略模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为。继承可以析取出这些算法中的公共的功能。 策略模式主要应用需要在不同时间应用不同的业务规则。 任何的需求变更都需要成本,花最小的代价或的最大的收益就是我们要做的,也是学设计模式的目的。 策略模式JAVA语言实现:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package com.strategy;public class StrategyMode { public static void main(String[] args) { Context context; context = new Context(new Algonrith ...
IP与域名的相互转换
在编程中,知道域名是不能直接访问主机,需要将其转换为IP地址。 但是在某些业务需求中需要将一个IP地址转换为域名。 Linux下,IP与域名的相互转换的C语言实现:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netdb.h>#include <arpa/inet.h>//根据域名返回IPvoid getIpByHostName(char *hostname);//根据IP返回域名void getHontNameByIp(char *ip);/*** 域名结构体*/// typedef struct hostent {// c ...
Spring MVC与Socket
前几天做一个项目,项目需求服务器端与手机APP用HTTP协议,与硬件用Socket协议。 服务器后端基于Spring MVC + MyBatis框架,实现与手机APP的通信没问题,但是业务需求中与硬件的交互需要用到Spring的service层的一些东西,首先创建ServerSocket监听某一端口,所以不能用Spring的IOC容器,而且Spring也没有提供这方面的IOC(控制反转),其次在Socket线程中,直接DI(依赖注入)也是不可能的,,因为这个实例都不是IOC容器托管的。 具体解决方案如下: 首先实现一个监听类来创建ServerSocket线程: web.xml:
1234<!–注册ServerSocket监听器–><listener><listener-class>com.test.listener.SocketServiceLoader</listener-class></listener>
SocketServiceLoader:
123456789101112131415161718192021222 ...
简单工厂模式(Simple Factory Pattern)
简单工厂模式又叫静态工厂方法模式。目的也很简单,就是提供一个创建对象的接口。 在编程中,我们一般遵循“高内聚低耦合”的原则,工厂模式在一定程度上降低了程序间的耦合性,增加了程序的灵活性、可扩展性。 但由于所有实例逻辑都是由工厂类所创建,所以一旦工厂类出现问题,会导致所有客户端都会受到影响,而且每增加一个产品(客户端),工厂类总是很被动,在工厂类中增加相应的业务逻辑,也违背了开闭原则(对扩展开放、对修改封闭)。 简单工厂模式java实现:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106/** * SimpleFactory * @author Ansore * */public class SimpleFactory ...
身份证号码验证算法
一、18位身份证号码结构身份证号码由前十七位本体码和最后一位校验码组成
排列次序一次依次是:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码
二、校验值计算1.本体码加权求和
公式为:S = SUM(Ai*Bi);
-Ai为身份证上第i个数字
-Bi为第i个加权因子(加权因子:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2)
2.计算模
mode = S % 11;
3.查找相应校验码
校验码:1 0 X 9 8 7 6 5 4 3 2 (第mode个)
三、C语言实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include <stdio.h>/*** 身份证验证算法*/int main(int argc, char const *argv[]) { //获得校验码 char getValidateCode(char *id ...








