Spring中单例Bean与原型Bean的区别

1 单例Bean和原型Bean分别是什么? 在面向对象编程中,单例是指当前进程、当前生命周期中只存在一个对象实例(主观),单例Bean就是某个Bean始终是单例,由Spring IOC容器维护,不管是使用@AutoWired还是@Resource注解,注入的对象都是容器实例化的同一个对象。 单例Bean默认是在加载配置文件或配置类时创建,但可以给@Compo...

Read More

JAVA注解详解

Java的注解是JDK1.5之后引入的新特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解,作用如下: 编写文档: 通过代码里的标识生成Java Doc文档; 编译检查: 通过代码里的标识让编译器对代码实现基本的检查; 代码分析: 通过代码里的标识让编译器对代码进行基本的分析; 编译时动态处理: 编译时通过代码里的元数据进行动态...

Read More

Git merge fast-forward/–no–off/–squah的区别

fast-forward 未添加任何参数使用git merge合并分支时即为fast-forward模式,这种模式不是在被合并分支上显示被合并的分支,只保留单条分支记录。在合并时间,GIT直接将HEAD指针指向合并分支的头,完成合并,这是一种”快进"方式的合并。 在这种情况下,删除分支,则分支丢失,只在被合并分支上看到commit提交信息,但并不知...

Read More

Git合并多次Commit

在使用Git时,经常会碰到需要美化提交的场景,虽然多数是出于错误的测试开发流程,或者错误的GIT管理流程,但放任一些临时或者随意的commit就会污染Git History,为后续的代码管理代理不便。 合并多次提交,只需要使用git rebase就可以 示例: commit e1a7dfa9dfea8e63ad079dba37c61d8e80ffbe1b A...

Read More

C++仿函数

仿函数(Functor)又叫函数对象(Function Object), 这是一个很有趣的编程能力,它来源于编程语言的操作符重载的特性,只要允许操作符重载的语言都可以实现仿函数的特性用法,比如c++,甚至一些本身并不包含函数特性的语言,例如java、c#。 我们知道C++允许很多操作符重载,其中就包含()即函数调用操作符,如果将一个类的()操作符进行重载,在...

Read More

C++中的左值和右值

左值是可以取地址的表达式,右值是不可以取地址的表达式。左值通常代表可修改的西乡,右值代表不可修改的常量或临时对象。 左值有: 变量、数据匀速、结构体成员 右值有: 字面值、字符串字面值、表达式结果。 左值自C就有之, 但自c++11始才引入右值概念,这么做是为了优化代码,提高程序的性能。右值引用可以绑定到一个临时对象上,并且可以将其作为参数传递给函数。通过使...

Read More