首页 >  软件开发 >  列表

号外:本站提供海外域名、VPS代购服务!


提供下列海外代购服务:NameSillo域名注册(免费送隐私保护)、班瓦工-BandwagonHost VPS(最低2.99美元/月)、Linode VPS(高性价比,最低5美元/月起)。

了解详情»


C语言Base64输出buffer大小计算


一、Base64编码过程

将3字节(3×8=24)分块成4字节(4×6=24,高位补0),即3个字节输入转换成4个字节输出。因此,输入字符串长度如果不是3的整数倍,则需要在末尾补1或2个=。

阅读全文 »


Java线程模型的规则与共享变量可见性


一、线程模型规则

1、线程对所有共享变量的操作必须在各自工作内存中进行,不能直接从主内存中读写。
2、不同线程之间无法直接访问其它线程工作内存中的变量,线程间变量值的传递需要通过主内存来完成。

阅读全文 »


Windows下msysgit最新下载地址


说明

由于msysgit官方提供的下载链接极其不稳定或速度慢,我将最新版本的msysgit放到了百度网盘,供国内不能翻外网的朋友们下载。
最新版本:1.9.5-preview20141217.exe
百度网盘下载地址:http://pan.baidu.com/s/1c0EQ3IC

阅读全文 »


Manven构建基本步骤


1.主要步骤

1, download and install maven。
2, mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app 创建新工程。
3, mvn package 将代码打包到输出到target目录。
4, mvn test 将测试代码到包输出到target目录。
5, mvn clean 清理target目录。
6, mvn install 将打包好的jar包安装到本地库中,一般没默认是在用户目录下的.m2\目录。
7, mvn deploy 发布到nexus远程仓库。

阅读全文 »


面向对像设计模式相关


一、设计原则

1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。(找出程序中会变化的方面,然后将其和固定不变的方面分离。)
即把会变化的部分取出并封装起来,以便以后可以轻易的改动或扩充此部分,而不影响不需要变化的其它部分。
2、针对接口编程,而不是针对实现编程。
即针对超类型编程,变量的声明类型应该是超类型,通常是一个抽象类或者是一个接口。意味着声明类时不用理会以后执行的真正对象类型。
3、多用组合,少用继承。
增强系统的弹性,不仅可将算法族封装成类,更可以”在运行时动态的改变行为“,只要组合的行为对象符合正确的接口标准即可。
4、类应该对扩展开放,对修改关闭。开闭原则。
5、要依赖抽象,不要依赖具体类。依赖倒置原则。
6、一个类应该只有一个引起变化的原则。(单一职责)
不让高层组件依赖低层组件,而且不管高层或低层组件,两者都应该依赖于抽象。

阅读全文 »


双重检查加锁单例


双重检查加锁单例,解决多线程访问和效率问题。

public class Singleton {
	private volatile static Singleton instance=null;
	private Singleton(){
	}
	
	public static Singleton getInstance(){
		if(null == instance) {
			synchronized(Singleton.class) {
				if(null==instance) {
					instance = new Singleton();
				}
			}
		}
		return instance;
	}
}

以上java 5及以上版本有效。

阅读全文 »


DES,ASE等常见算法网站


网址收藏:
http://embeddedsw.net/Cipher_Reference_Home.html
http://en.wikipedia.org/wiki/AES_implementations#C.2FASM_library

a byte-oriented aes-256 implementation
http://www.literatecode.com/aes256

AES Crypt
http://www.aescrypt.com/download/

阅读全文 »


synchronized方法、wait/notify与监视器


名词解释:wait等待某个条件发生,而改变这个条件超出了当前方法的控制能力,常由另一个任务来改变。而notify和notifyAll则表示感兴趣的事件发生了,于是唤醒wait之后动作执行。

阅读全文 »


三层架构是个啥?


1.软件体系架构中,一般分层结构:

表示层,业务逻辑层,数据访问层。目的在于提高程序设计及维护效率。

2.请求过程:

表示层接收到用户的数据和请求后,传递给业务逻辑层。
业务逻辑层接收到用户数据和请求后,先对数据和请求验证和审核,验证过后再将数据和请求传递给数据访问层,验证失败则直接将结果返回表示层。
数据访问层接收到数据和请求后,开始读取或保存数据。

阅读全文 »