Java中interface中定义变量都是"public static final" 类型的,也就是常量,因此很多人在interface定义常用的常量,除此之外单独定义一个class来保存常量也是一个选择,对于这两种方式哪一种好呢?
在《Effective Java》中,Joshua Bloch 写了 9 个关于如何在 Java 中处理异常的技巧。这些技巧已经成为 Java 异常处理的事实上的标准。在这篇文章中,我列出了一些开源项目中Java异常处理的一些例子,并按照异常处理的9个技巧来评论用法。
- VO:展示用的数据,不管展示方式是网页,还是客户端,还是APP,只要是这个东西是让人看到的,这就叫VO;
- DTO:用来接收页面的入参,也就是在Controller里面定义的参数;
- BO:BO是一个业务对象,一类业务就会对应一个BO;
- PO:数据表记录对象,我一般把多表联查的记录返回为PO实例记录;
- Entiy:数据表记录对象,我一般把单表查询的记录返回为Entiy实例记录;
Java 8是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda,给我们操作集合(Collection)提供了极大的便利。
在 Linux 下手写一个命令和拷贝 html 页面文本域中的命令执行结果完全不同,后者的命令无法被 Linux 识别。
拦截器它是链式调用,一个应用中可以同时存在多个拦截器Interceptor
, 一个请求也可以触发多个拦截器 ,而每个拦截器的调用会依据它的声明顺序依次执行。
这个很重要,注意在shiro或者springsecurity配置安全相关的时候,如果异常无法捕获,往往就是web请求顺序导致的,
比如你配置了全局异常,但是异常请求如果没有到达controller层,那么全局异常依然无法捕捉到这类异常,因为请求都没有发到控制层(servlet那一层),
在Filter层已经报权限不足异常那么直接就返回了,所以在前后端分离传递jwt配置的token校验时,如果异常返回的403无法以想要的json3段式或者4段式返回。
同样AOP日志也是无法捕获的,包括各种增强,连环绕增强都无法捕获这个安全框架的403异常
Result
如果您只想将a的内容(即文本)String
与a的StringBuilder
进行比较CharSequence
,而不必关心类型,则可以使用String.contentEquals()
。
如果您还想确保除内容之外的类型相同,请使用String.equals()
。
- CharSequence类是java.lang包下的一个接口,此接口对多种不同的对char访问的统一接口,像String、StringBuffer、StringBuilder类都是CharSequence的子接口;
- CharSequence类和String类都可以定义字符串,但是String定义的字符串只能读,CharSequence定义的字符串是可读可写的;
- 对于抽象类或者接口来说不可以直接使用new的方式创建对象,但是可以直接给它赋值;
CharSequence b = "s";