continue、break和标签

发布在 java

在任何迭代的主体部分都可以使用continue和break控制循环的流程,其中,break用于强行退出循环,不在执行循环中剩余的语句。continue则停止当前的迭代,然后退回循环起始处,开始下一次迭代。

在很多编程语言中,存在goto关键字,其含义是“如条件A成立,则跳到这里,否则跳到那里”。goto语句是在源码级上的跳转,若程序总是从一个地方跳到另外一个地方,程序的流程控制将很难识别,在大部分情况下不推荐使用goto,但是在极少情况下,goto是控制流程的极佳手段。

java中没有goto,但是java中提供了同样的机制:标签。大部分情况下我们都是直接使用continue或break控制循环,continue和break可以和标签一起使用,从而达到goto的效果。

阅读全文

Spring AOP实现缓存

发布在 java, spring

AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性、异常处理和透明的持续性也都是如此,这种散布在各处的无关的代码被称为横切(cross cutting),在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。

AOP技术恰恰相反,它利用一种称为”横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为”Aspect”,即切面。所谓”切面”,简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。

阅读全文

spring boot整合websocket

发布在 java, spring

在spring boot项目中使用websocket,网上查阅了一些资料,记录一下以备查阅。

使用websocket有两种方式,一种是sockJs,一种是H5方式,个人感觉H5方式更加简单。无论使用哪种方式,都需要引入的POM依赖如下

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

阅读全文
  • 第 1 页 共 1 页

忘语

热爱生活,享受code


一名虔诚的程序猿